2010-01-08 11 views
6

Deseo clonar programáticamente un widget. Puedo clonar el Elemento dentro del Widget con Dom.clone, pero parece que no puedo crear un Widget a partir de este elemento clonado. es posible?GWT Clonar un widget usando 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); 

¿Hay alguna otra forma de clonar el widget?

Respuesta

9

buttonClone = Button.wrap(buttonCloneElement)

+1

supongo que tengo que aprender a Javadoc mejor búsqueda:/ –

+0

tengo dos widgets ListBox a través ** ** * @ UiBinder UiField ListBox lstHeaderSort; @UiField ListBox lstFooterSort; ** y yo convertí como ** lstFooterSort = ListBox.wrap (DOM.clone (lstHeaderSort.getElement(), true)); * pero recibí una excepción de puntero nulo. Por qué ? – Cataclysm

Cuestiones relacionadas