私はウィケットにかなり慣れていないので、メーリングリストに関する情報を保持する単純なウィケットツリーを作成しようとしています。このメーリングリストは、ある手紙に関連しています。
- メーリングリストDto 1
- ユーザー 1
- ユーザー 2
- メーリングリストDto 2
- ユーザー 3
- ユーザー 4
既存のレターを編集している場合、そのレターに関連するメーリングリストが取得さinto mailingListCollectionれ、ツリー上の対応するノードが選択されて展開されます。何らかの理由で、私はこれが機能していないようです。
選択および展開されたノードは、UI で選択または展開されたようには表示されませんが、たとえばプログラムで選択されたノードを調べてonAfterRender()、選択および展開された値をログに記録すると、ノードが展開されて選択されます。
tree = new TreeTable("treeTable", treeModel, treeColumns) {
@オーバーライド
public void onBeforeRender() {
super.onBeforeRender();
if (!mailingListCollection.isEmpty()) {
for (MailingListDto mailingList : mailingListCollection) {
tree.getTreeState().expandNode(mailingList);
tree.getTreeState().selectNode(mailingList, true);
}
}
tree.updateTree();
}
@オーバーライド
保護されたボイド onAfterRender() {
super.onAfterRender();
if (LOG.isDebugEnabled()) {
LOG.debug("onAfterRender: " + tree.getTreeState().getSelectedNodes().size());
for (Object obj : tree.getTreeState().getSelectedNodes()) {
LOG.debug(tree.getTreeState().isNodeSelected(obj) + " " + tree.getTreeState().isNodeExpanded(obj));
}
}
}
};
tree.setRootLess(真);
tree.getTreeState().setAllowSelectMultiple(true);
追加 (ツリー);