2010-01-08 47 views
6

我希望以編程方式克隆小部件。我能夠用Dom.clone克隆Widget中的Element,但我似乎無法從此克隆的元素中創建Widget。這可能嗎?GWT使用DOM.clone克隆小部件

 //somewhere in onModuleLoad()...   
    Button button = new Button("Original"); 
    RootPanel.get().add(button); 

    //.....later on... 
    Element buttonCloneElement = DOM.clone(button.getElement(), true); 
    Widget buttonClone; 

    buttonClone = new Button(buttonCloneElement); //FAIL - No such constructor 
    buttonClone.setElement(buttonCloneElement); //FAIL - No such setter method 

    //This may work but looks messy to me 
    buttonClone.getElement().setInnerHTML(button.getElement().getInnerHTML()); 

    //add the clone to the root panel?? 
    RootPanel.get().add(buttonClone); 

有沒有克隆Widget的另一種方法?

回答

9

buttonClone = Button.wrap(buttonCloneElement)

+1

我想我需要學習如何尋找更好的Javadoc:/ – 2010-01-08 03:37:16

+0

我通過有兩個列表框控件** ** UiBinder的* @ UiField列表框lstHeaderSort; @UiField列表框lstFooterSort; **和我轉換爲** lstFooterSort = ListBox.wrap(DOM.clone(lstHeaderSort.getElement(),true)); *但我得到空指針異常。爲什麼? – Cataclysm 2014-01-15 12:29:29