user246114
user246114

Reputation: 51611

Wrapping pre-made elements using GWT?

I've been working with GWT for awhile, I can't find a way to integrate it with a preexisting website which is a real downer. My page content is already generated for me using jsp, like:

<div id='A'></div>
<div id='B'></div>
etc.

there is no way for me to do something like this though:

public void onModuleLoad() {

    SimplePanel spA = new SimplePanel( 
      Document.getElementById("A"));
    spA.add(new Label("hello"));


    SimplePanel spB = new SimplePanel( 
      Document.getElementById("B"));
    spB.setWidth("200px");

    etc ..
}

seems like there's no way to just wrap a pre-existing element. Is this true, or am I missing how to do this? I need be able to wrap a bunch of elements like this, to manipulate them later on. I see TextBox, Button, a few other classes have wrap() methods, however nothing like that exists for elements,

Thanks

Upvotes: 1

Views: 5525

Answers (2)

Yaroslav Lozynskyi
Yaroslav Lozynskyi

Reputation: 800

Use HTMLPanel:

class MyPanel extends HTMLPanel {
    private SimplePanel a = new SimplePanel();
    private SimplePanel b = new SimplePanel();

    public MyPanel() {
        super("<div id="a"></div><div id="b"></div>);
        addAndReplaceElement(a, "a");
        addAndReplaceElement(b, "b");
    }
}

Upvotes: 2

Jason Hall
Jason Hall

Reputation: 20920

There is a way to wrap existing DOM elements, like Label's wrap() method. For example:

Label label = Label.wrap(DOM.getElementById("A"));
label.setText("Foo!");

Other GWT classes can wrap DOM elements too, like Button, and CheckBox using its constructor.

Upvotes: 4

Related Questions