bhupesh117
21 Feb 2012, 9:37 AM
Hello All,
This is my very first project with GXT and I am stuck at populating ComboBox.I am trying to populate data into my ComboBox, by making a simple RpcProxy call to back-end server. In my back-end server, I have parsed XML documents and created a Java bean which I am trying to show on UI.
I am using following:
-GXT 2.2.5
-ComboBox
-ListStore
-RpcProxy
Below is the implementation of my ComboBox:
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ListLoader;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class myComboBox extends LayoutContainer {
ComboBox<MyBean> myComboBox = new ComboBox<MyBean>();
@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
final MyServiceAsync service = (MyServiceAsync)
Registry.get(TestAnalysisConstatns.MY_SERVICE);
try{
RpcProxy<MyBean> proxy = new RpcProxy<MyBean>() {
@Override
protected void load(Object loadConfig,
AsyncCallback<MyBean> callback) {
service.createNewReportCard(callback);
}
};
BeanModelReader reader = new BeanModelReader();
ListLoader<ListLoadResult<MyBean>> loader =
new BaseListLoader<ListLoadResult<MyBean>>( proxy);
ListStore<MyBean> comboStore = new ListStore<MyBean>(loader);
myComboBox.setStore(comboStore);
myComboBox.setDisplayField("name");
myComboBox.setValueField("name");
myComboBox.setEditable(false);
myComboBox.setWidth(150);
myComboBox.setTriggerAction(TriggerAction.ALL);
add(myComboBox);
loader.load();
}catch(Exception e){
e.printStackTrace();
}
}
}
One weird issue with the above code is that while creating loader, if I use both proxy and reader object I am getting "java.lang.AssertionError: Error converting data" exception. But If I use only proxy, I can see that my "MyBean" is getting populated from back-end but its not showing data on UI.
Below is the code for MyBean object:
import java.io.Serializable;
import com.extjs.gxt.ui.client.data.BaseModelData;
public class MyBean extends BaseModelData implements Serializable {
private String id;
private String name;
private String reportType;
private String catalogType;
private String catalogVersion;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getReportType() {
return reportType;
}
public void setReportType(String reportType) {
this.reportType = reportType;
}
public String getCatalogType() {
return catalogType;
}
public void setCatalogType(String catalogType) {
this.catalogType = catalogType;
}
public String getCatalogVersion() {
return catalogVersion;
}
public void setCatalogVersion(String catalogVersion) {
this.catalogVersion = catalogVersion;
}
}
I would really appreciate any help with this.!!
This is my very first project with GXT and I am stuck at populating ComboBox.I am trying to populate data into my ComboBox, by making a simple RpcProxy call to back-end server. In my back-end server, I have parsed XML documents and created a Java bean which I am trying to show on UI.
I am using following:
-GXT 2.2.5
-ComboBox
-ListStore
-RpcProxy
Below is the implementation of my ComboBox:
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ListLoader;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class myComboBox extends LayoutContainer {
ComboBox<MyBean> myComboBox = new ComboBox<MyBean>();
@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
final MyServiceAsync service = (MyServiceAsync)
Registry.get(TestAnalysisConstatns.MY_SERVICE);
try{
RpcProxy<MyBean> proxy = new RpcProxy<MyBean>() {
@Override
protected void load(Object loadConfig,
AsyncCallback<MyBean> callback) {
service.createNewReportCard(callback);
}
};
BeanModelReader reader = new BeanModelReader();
ListLoader<ListLoadResult<MyBean>> loader =
new BaseListLoader<ListLoadResult<MyBean>>( proxy);
ListStore<MyBean> comboStore = new ListStore<MyBean>(loader);
myComboBox.setStore(comboStore);
myComboBox.setDisplayField("name");
myComboBox.setValueField("name");
myComboBox.setEditable(false);
myComboBox.setWidth(150);
myComboBox.setTriggerAction(TriggerAction.ALL);
add(myComboBox);
loader.load();
}catch(Exception e){
e.printStackTrace();
}
}
}
One weird issue with the above code is that while creating loader, if I use both proxy and reader object I am getting "java.lang.AssertionError: Error converting data" exception. But If I use only proxy, I can see that my "MyBean" is getting populated from back-end but its not showing data on UI.
Below is the code for MyBean object:
import java.io.Serializable;
import com.extjs.gxt.ui.client.data.BaseModelData;
public class MyBean extends BaseModelData implements Serializable {
private String id;
private String name;
private String reportType;
private String catalogType;
private String catalogVersion;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getReportType() {
return reportType;
}
public void setReportType(String reportType) {
this.reportType = reportType;
}
public String getCatalogType() {
return catalogType;
}
public void setCatalogType(String catalogType) {
this.catalogType = catalogType;
}
public String getCatalogVersion() {
return catalogVersion;
}
public void setCatalogVersion(String catalogVersion) {
this.catalogVersion = catalogVersion;
}
}
I would really appreciate any help with this.!!