0

我正在尝试使用智能 Gwt,Listgrid。

我同时使用 com.google.gwt.user.client.ui 和 smart gwt。我在 ListGridRecords[] 记录中有价值。

我无法在表中设置值。

这段代码是复合的。

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 
4

1 回答 1

1

我建议不要混合 GWT UI 和 SmartGWT。尝试仅使用 SmartGWT 并查看问题是否消失。

您可以先用 HLayout(即 SmartGWT)替换 Horizo​​ntalLayout(我想是 GWT)。

引用自:http ://forums.smartclient.com/showthread.php?t=8159

Smart GWT 具有互操作性支持,允许将 Smart GWT 小部件添加到 GWT 容器中,并允许将 GWT 小部件添加到 Smart GWT 容器中,它适用于:

  • 向 Smart GWT 的增量迁移,例如将单个、复杂的 Smart GWT 组件(如 Calendar 或 CubeGrid)引入现有 GWT 应用程序

  • 在 Smart GWT 中使用复杂的第三方 GWT 小部件,其中 Smart GWT 没有相应的内置功能

但是,随意混合 Smart GWT 和 GWT(或其他)组件是没有意义的,也就是说,例如,您不应将 GWT 小部件放置在 Smart GWT 容器中,而 Smart GWT 容器又位于 GWT 容器中。一般来说,不要混合小部件,除非您需要某个功能。

这样做的原因是两个 Ajax 小部件工具包(包括 GWT)可以互操作的最大程度是有限的 - 在 tab 顺序管理、zIndex 管理、像素完美布局、部分等领域没有允许互操作性的标准508 可访问性和多级模式。

请注意,在不恰当地混合 GWT 和 Smart GWT 时报告的“错误”(即与这些指南相矛盾)通常会被标记为 WONTFIX,尽管如果核心 GWT 开始支持能够更好地实现 API 的 API,我们将在未来重新审视这一点互操作性。

于 2012-05-02T12:14:21.683 回答