我在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',删除当前内容,并在其中加载表单。
问题在于,当我尝试在自定义窗口小部件中创建事件处理程序时,我无法弄清楚如何从入口点类添加和删除窗口小部件..
答案 0 :(得分:1)
在Header
类中创建getter;
在Entrypoint
课程中添加如下处理程序:
header.getbtnContribute().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//TODO
}
});
答案 1 :(得分:0)
在自定义窗口小部件中创建一个接受ClickHandler
的方法(例如addContributeClickHandler(ClickHandler handler)
。在此方法中,将给定的ClickHandler
添加到btnContribute
。
在您的EntryPoint中创建contentScrollPanel
后,请致电
header.addContributeClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
contentScrollPanel.clear();
//...
}
});
contentScrollPanel
必须是final
或其成员才能发挥作用。