2011-06-13 93 views
4

我正在使用SmartGWT TabSet,並希望在其他項目中使用GWT開發的項目中顯示Widget。將GWT Widget封裝到SmartGWT

簡而言之:

我想一個com.google.gwt.user.client.ui.Widget添加到com.smartgwt.client.widgets.tab.Tab

setPane()但是隻帶一個畫布。

有沒有辦法將GWT開發的Widget連接到SmartGWT選項卡?

我想什麼是Widget的轉換成畫布,如:

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 

謝謝!

回答

0

看起來您需要使用Canvas的子類之一作爲您的單個選項卡的佈局。也許使用Layout and addMember(Widget)

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

看看VStack和/或DynamicForm的一些想法。您還可以查看the showcase中的代碼。

祝你好運。

+0

不 - 不工作 - 嘗試了一段時間的各種組合 似乎有一些麻煩嵌入GWT組件集成到SmartGWT的標籤。我甚至下載了SmartGWT的nightlybuild。 – 2011-06-13 20:43:27

+0

有趣的 - 我真的想出瞭如何擺脫這個真的很奇怪的問題(猜測由於缺乏理解)。我只是刪除: ''RootPanel.get()。add(xx);' – 2011-06-13 21:17:38

+0

我沒有看到你的代碼。 RootPanel.get()。add()在哪裏?你使用它來添加小部件嗎?如果是這樣,那麼它會被添加兩次。 – 2011-06-14 18:12:40