2
我知道如果我使用匹配的id定義onClick $ id方法,我可以捕獲特定的按鈕或文本字段。我想要有一個通用的onClick-something和onChange-當任何按鈕被點擊或任何文本字段被更新時被調用的方法。 ZK框架可能嗎?在ZK中,我的GenericForwardComposer類中,如何捕獲所有onClick和onChange事件?
我知道如果我使用匹配的id定義onClick $ id方法,我可以捕獲特定的按鈕或文本字段。我想要有一個通用的onClick-something和onChange-當任何按鈕被點擊或任何文本字段被更新時被調用的方法。 ZK框架可能嗎?在ZK中,我的GenericForwardComposer類中,如何捕獲所有onClick和onChange事件?
你可以用兩種方法做到這一點。
1)定義控制器上的單個事件處理程序,並將所有其他組件事件轉發給該事件處理程序。例如。考慮具有3個按鈕部件
<zk>
<window id="mainwin" border="normal" title="hello" apply="pkg.TestComposer">
<button id="btn1" label="Click Me 1" forward="mainwin.onClick" />
<button id="btn2" label="Click Me 2" forward="mainwin.onClick" />
<button id="btn3" label="Click Me 3" forward="mainwin.onClick" />
</window>
</zk>
在施加到包含駕駛室定義單個onClick事件處理程序如下
public void onClick() throws Exception {
Messagebox.show("Someone clicked!!!");
}
這些3個按鈕組件的窗口組件控制器
即時此示例ZUML文件每個Button都可以使用forward屬性並定義目標組件以及要按以下格式forward =「event-name = target-component.target-event」處理的事件。有關更多詳細信息,請參閱前向屬性參考here。
2)在ZK 6中,使用SelectorComposer和註解來定義事件處理程序的方式更加優雅。對於例如
@Listen("onClick = window > button")
public void onClickAnyButton() {
// ...
}
請參考this smalltalk的更多詳細信息SelectorComposer