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 DownHomeEnd
私の質問は次のとおりです。
- ユーザーが「選択を移動」したときにどのアイテムが選択解除されているかを正確に知るにはどうすればよいですか?
- そうでない場合、これらのキーを無効にすることはできますか?
誰かが知りたい場合の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>