我正在使用 ZK 6.5.1。
有时一棵树可能包含一些逻辑,比如当用户选择/取消选择一个项目时,这可以通过像这样的监听事件轻松完成。
@Listen("onSelect = #tree")
public void onSelect(SelectEvent<Treeitem, String> event) {
Treeitem ref = event.getReference();
if (ref.isSelected()) {
// do things when item is selected
} else {
// do things when item is deselected
}
}
另一方面,ZK 提供了用户可以在树上使用up, down, Page Up, Page Down, Home,来“移动选择”的功能。此操作还将发送有关新选定项目的选择事件,但不会发送取消选定项目的事件。因此,当用户使用这些键时,以前的代码片段不起作用。End
我的问题是:
- 我应该怎么做才能确切知道用户“移动选择”时取消选择了哪些项目?
- 如果没有,我可以禁用这些键吗?
如果有人想知道,这是一个 SSCCE 示例。或者在 ZKFiddle
作曲家:
public class TestComposer extends SelectorComposer<Div> {
@Listen("onSelect = #tree")
public void onSelect(SelectEvent<Treeitem, String> event) {
Treeitem ref = event.getReference();
if (ref.isSelected()) {
Clients.log("Selected " + ref.getLabel());
} else {
Clients.log("Deselected " + ref.getLabel());
}
}
}
祖尔:
<div apply="mytest.TestComposer">
<tree id="tree" multiple="true" checkmark="true">
<treechildren>
<treeitem label="A" />
<treeitem label="B" />
<treeitem label="C" />
</treechildren>
</tree>
</div>