GWT从DOM分离小部件并添加到Panel

时间:2013-11-24 07:04:41

标签: java gwt gwtquery

我需要能够从DOM分离节点,并在运行时使用HorizontalPanel将其附加到GwtQuery

我的代码如下所示:

    @PageShown
    public void pageReady() {
        horizontalPanel.add($("#bar1").widget());
        horizontalPanel.add($("#bar2").widget()); 
        horizontalPanel.add($("#bar3").widget());   
    }

#bar1等等。已经附加在DOM中,我需要做的是这3个条应该水平堆放,所以我需要将它们附加到Horizo​​ntalPanel。

更新

将DOM元素提升为Panel后,horizontalPanel仍为空:

<table cellspacing="0" cellpadding="0" data-field="navPanel"><tbody><tr></tr></tbody></table>

1 个答案:

答案 0 :(得分:1)

$("#bar1")应该是gwt-widget,否则gQuery的方法widget()将返回null。

但是,您可以使用gQuery将某些dom元素提升为小部件:

    // Promote 3 elements attached to the dom to 3 GWT Panel Widgets
    $("#bar1, #bar2, #bar3").as(Widgets).panel();

    horizontalPanel.add($("#bar1").widget());
    horizontalPanel.add($("#bar2").widget()); 
    horizontalPanel.add($("#bar3").widget());

除了panel()将元素提升为GWT Panel之外,gQuery Widgets插件还附带其他预定义方法,例如label() textBox() {{1 }和passwordBox()。但您可以编写自己的textArea()代码,通过WidgetFactory方法将任何dom元素提升为自定义小部件。

无论如何,如果您只想在页面中布局元素,更简单的方法就是使用css而不是将它们包装到小部件中。