tags:

views:

539

answers:

1

I wish to programatically clone a widget. I am able to clone the Element inside the Widget with Dom.clone but I don't seem to be able to create a Widget from this cloned element. Is this possible?

        //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);

Is there another way of cloning the Widget?

+4  A: 

buttonClone = Button.wrap(buttonCloneElement)

axtavt
I guess I need to learn how to search Javadoc better :/
Michael Dausmann