使用GWT包装预制元素?

时间:2010-05-04 19:13:23

标签: gwt

我已经和GWT合作了一段时间,我找不到将它与预先存在的网站集成的方法。我的页面内容已经使用jsp为我生成,例如:

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

虽然我没办法做这样的事情:

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 ..
}

似乎没有办法只包装一个预先存在的元素。这是真的,还是我想念怎么做?我需要能够包装这样的一堆元素,以便稍后操作它们。我看到TextBox,Button,其他几个类都有wrap()方法,但是对于元素来说却没有类似的东西,

由于

2 个答案:

答案 0 :(得分:4)

有一种方法可以包装现有的DOM元素,例如Label的{​​{3}}方法。例如:

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

其他GWT类也可以使用其构造函数包装DOM元素,如ButtonCheckBox

答案 1 :(得分:1)

使用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");
    }
}