I am trying to use smart Gwt, Listgrid.
I am using both com.google.gwt.user.client.ui and smart gwt. I have value in a ListGridRecords[] records.
I am unable to set the values in table.
this piece of code is in composite.
public TableDocument(Action action) {
initWidget(getTablePanel());
}
private HorizontalPanel getTablePanel() {
if (tablePanel == null) {
tablePanel = new HorizontalPanel();
tablePanel.setSize("144px", "75px");
addtable();
}
public void addtable() {
// TODO Auto-generated method stub
if(isDocumentPresent()==false){
tablePanel.add(getNoDocumentLabel());
}else{
tablePanel.remove(noDocumentLabel);
tablePanel.add(getDocumentTable()); <-- Error
}
}
private ListGrid getDocumentTable() {
if (documentTable == null) {
documentTable = new ListGrid();
documentTable.setSize("644px", "379px");
documentTable.setCanResizeFields(true);
documentTable.setFields(getStatus(),getIcon(),getName(),getSize(),getModifiedby(),getModifiedDate(),getMajorVersiosn());
addValuesToTable();
}
return documentTable;
}
public ListGridField getStatus() {
if (status == null) {
status = new ListGridField("statusIcon","");
}
return status;
}
public ListGridField getIcon() {
if (icon == null) {
icon = new ListGridField("documentIcon","");
}
return icon;
}
.
.
.// similar code for getSize(),getModifiedby(),getModifiedDate(),getMajorVersiosn()
private void addValuesToTable() {
documentTable.setData(documentsArray);//documentarray is records
}
----------
error
com.smartgwt.client.core.JsObject$SGWT_WARN: 12:15:47.778:WARN:ListGrid:isc_ListGrid_0:Unable to find clipHandle for drawn Canvas, elementId: isc_0
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.smartgwt.client.widgets.grid.ListGrid.create(ListGrid.java)
at com.smartgwt.client.widgets.BaseWidget.getOrCreateJsObj(BaseWidget.java:361)
at com.smartgwt.client.widgets.BaseWidget.getElement(BaseWidget.java:276)
at com.smartgwt.client.widgets.BaseWidget.getElement(BaseWidget.java:264)
at com.google.gwt.user.client.ui.ComplexPanel.add(ComplexPanel.java:94)
at com.google.gwt.user.client.ui.HorizontalPanel.add(HorizontalPanel.java:49)
at com.client.SmartGuI.TableDocument.addtable(TableDocument.java:158)
at com.client.GUI.TreeCmis$2.onSuccess(TreeCmis.java:157)
at com.client.GUI.TreeCmis$2.onSuccess(TreeCmis.java:1)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:232)
at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
at
I would suggest not mixed GWT UI and SmartGWT. Try using only SmartGWT and see if the problem goes away.
You could starting by replacing HorizontalLayout (wich I suppose is GWT) by HLayout (which is SmartGWT).
Quote from : http://forums.smartclient.com/showthread.php?t=8159
Smart GWT has interoperability support that allows a Smart GWT widget to be added to a GWT container and allows a GWT widget to be added to a Smart GWT container, and it's appropriate to use this for:
incremental migration to Smart GWT, such as introducing singular, sophisticated Smart GWT components like the Calendar or CubeGrid to an existing GWT application
using sophisticated third-party GWT widgets within Smart GWT, where Smart GWT doesn't have corresponding built-in functionality
However it does not make sense to freely intermix Smart GWT and GWT (or other) components, that is, for example, you should not place GWT widgets within a Smart GWT container that is in turn within a GWT container. In general, don't intermix widgets unless the need for a feature forces you to.
The reason for this is that there are limits to the maximum degree that two Ajax widget kits (including GWT) can interoperate - there are no standards that allow interoperability in the areas of management of tab order, zIndex management, pixel-perfect layout, section 508 accessibility and multi-level modality.
Note that "bugs" reported when intermixing GWT and Smart GWT inappropriately (that is, in contradiction to these guidelines) are generally going to be marked WONTFIX, although we will revisit this in the future if core GWT begins to support APIs that would allow better interoperability.
来源:https://stackoverflow.com/questions/10412060/set-the-values-in-listgrid-smartgwt