将GWT小部件包装成SmartGWT

4
我正在使用SmartGWT TabSet,并希望在一个选项卡中显示来自另一个使用GWT开发的项目的Widget。
简而言之:
我想将com.google.gwt.user.client.ui.Widget添加到com.smartgwt.client.widgets.tab.Tab中。
但是,setPane()仅接受Canvas。
有没有办法将GWT开发的Widget与SmartGWT选项卡联系起来?
我尝试将Widget转换为Canvas,如下所示:
Canvas c = new Canvas();
c.addChild(w);
tab.setPane(c);

然而,这会抛出以下异常:
Uncaught JavaScript exception [uncaught exception: 
    java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list] in

谢谢!

2个回答

0

0

看起来你需要使用Canvas的子类作为单个选项卡的布局。也许可以使用Layout and addMember(Widget)之类的东西。

Layout layout = new VStack();
layout.addMember(w);
tab.setPane(layout);

看一下 VStack 和/或 DynamicForm,获取一些想法。你也可以在展示区查看代码。

祝好运。


不行 - 尝试了一段时间各种组合,都不起作用。似乎在将GWT组件嵌入SmartGWT选项卡时出现了一些问题。我甚至下载了SmartGWT的夜间构建版本。 - Jack Gibson
有趣的是 - 我实际上找到了如何解决这个问题,这真的很奇怪(可能是由于缺乏理解)。我只是删除了:RootPanel.get().add(xx); - Jack Gibson
我在你的代码中没有看到那个。RootPanel.get().add()在哪里?你是用它来添加小部件的吗?如果是这样,那么它被添加了两次。 - Chris Ruffalo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接