2012-12-09 67 views
0

我有一個<div>My.html文件:如何在RootPanel上顯示GWT小部件?

<html><head> 
<script type="text/javascript" language="javascript" src=" 
path/biz.path.nocache.js"></script></head> 
<div id = "div_test"> </div> 

現在,我寫了一個java類使用Dom其獲取test division

private void AddWidget() throws Exception{ 
_obj = new testWidget(this._session); 
_obj.setSize("100%", "100%"); 
_obj.AddTestWidget(); 
RootPanel rootpanel = getViewRootPanel(div_test); // returns the division id 
rootpanel.clear(); 
rootpanel.add(_obj); 
} 

和以下是TestWidget.java

public class TestWidget extends ContentContainer{ 
    HorizontalPanel _base = new HorizontalPanel(); 
    protected FlexTable _bill = new FlexTable(); 
    Label lblTitle; 

    public TestWidget(Session s) { 
    super(s); 
    _base.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); 
    _base.setWidth("100%"); 
    initWidget(_base); 
    this._session= s; 
    _inheritwidget = new InheritWidget(session); 
    } 
    public Widget AddTestWidget() { 
    System.out.println("In widget"); 
    lblTitle= new Label("Details"); 
    lblTitle.setStyleName(Resources.INSTANCE.cssElements().labelBig()); 
    lblTitle.getElement().getStyle().setPadding(3, Unit.PX); 
    _inheritwidget .setWidget(1, 0, lblBillingTitle); 
    _inheritwidget .setWidget(2, 0, billingWidget); 
    _base.add(_billing); 
return _base; 
} 
} 

其中InheritWidget類是從ContentContainer延長。 我也檢查控制檯,它顯示我In Widget。這意味着代碼流是正確的。 請告訴我該怎麼做才能加載AddTestWidget的內容在HTML div

有沒有我失蹤的部分?

+0

getViewRootPanel()做什麼? ContentContainer的層次結構是什麼?交叉檢查你的代碼片段可能會誤導其他拼寫檢查。如果我們可以複製粘貼代碼片段來運行而不是第二次猜測您的問題,那很容易。 – SSR

回答

4

什麼是ContentContainer?我無法在GWT庫中找到它。您的TestWidget不會擴展GWT Widget類。因此,您不能將其用作小部件。如果您必須爲您的編碼需求擴展ContentContainer,則可以實現GWT isWidget接口以讓GWT知道它是一個小部件。

0
RootPanel.get().add(Your widget) 
+1

我試過了,但沒有奏效 –