2010-01-08 48 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