GWT从Custom Widget加载面板



我在GWT中创建了一个自定义小部件,如:

public class Header extends Composite {
    private Button btnContribute;
    public Header() {
        btnContribute = new Button("Contribute");
    }
} //This is only a sample - in actual there are few bundled widgets

在我的入口点类中,我使用这个自定义小部件作为dockLayoutPanel的北面板,如图所示:

public class MyClass implements EntryPoint {
private DockLayoutPanel dockLayoutPanel;
private ScrollPanel contentScrollPanel;
private Header header; //My custom widget
public void onModuleLoad() {
    RootPanel rootPanel = RootPanel.get();
    dockLayoutPanel = new DockLayoutPanel(Unit.EM); 
    rootPanel.add(dockLayoutPanel, 20, 10);
    header = new Header();
    dockLayoutPanel.addNorth(header, 7.7);
    dockLayoutPanel.addSouth(new HTML("south"), 7.7);
    dockLayoutPanel.addWest(new HTML("west"), 7.7);
    contentScrollPanel = new ScrollPanel();
    dockLayoutPanel.add(contentScrollPanel);
    htmlContent = new HTML("content", true);
    contentScrollPanel.setWidget(htmlContent);
    htmlContent.setSize("100%", "100%");
}
}

我想在我的自定义小部件"btnContribute"中的按钮上创建一个onClick事件处理程序,以便它动态更新"contentScrollPanel",删除当前内容,并在其中加载表单。

问题是,当我试图在我的自定义小部件中创建一个事件处理程序时,我无法弄清楚如何从入口点类中添加和删除小部件。。

Header类中创建getter;

Entrypoint类中添加如下处理程序:

header.getbtnContribute().addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            //TODO
        }
    });

在自定义小部件中创建一个接受ClickHandler(如addContributeClickHandler(ClickHandler handler))的方法。在该方法中,将给定的ClickHandler添加到btnContribute中。

在EntryPoint中创建contentScrollPanel后,调用

header.addContributeClickHandler(new ClickHandler(){
    @Override
    public void onClick(ClickEvent event) {
        contentScrollPanel.clear();
        //...
    }
});

contentScrollPanel必须是final或成员才能工作。

最新更新