【发布时间】:2010-07-19 12:56:58
【问题描述】:
我对 wicket 很陌生,我正在尝试创建一个简单的 wicket 树,其中包含有关邮件列表的信息。此邮件列表与某封信有关。
- MailingListDto 1
- 用户 1
- 用户 2
- MailingListDto 2
- 用户 3
- 用户 4
如果我们正在编辑一个现有的信件,与该信件相关的邮件列表将被提取into mailingListCollection,并且应该选择并展开树上的相应节点。由于某种原因,我似乎没有得到这个工作。
选定和展开的节点不会在 UI 中显示为选定或展开,但如果我以编程方式浏览选定的节点,例如在 onAfterRender() 中并记录选定和展开的值,节点将被展开和选定。
tree = new TreeTable("treeTable", treeModel, treeColumns) {
@覆盖
公共无效 onBeforeRender() {
super.onBeforeRender();
if (!mailingListCollection.isEmpty()) {
for (MailingListDto mailingList : mailingListCollection) {
tree.getTreeState().expandNode(mailingList);
tree.getTreeState().selectNode(mailingList, true);
}
}
树.updateTree();
}
@覆盖
受保护的无效 onAfterRender() {
super.onAfterRender();
如果(LOG.isDebugEnabled()){
LOG.debug("onAfterRender:" + tree.getTreeState().getSelectedNodes().size());
for (对象 obj : tree.getTreeState().getSelectedNodes()) {
LOG.debug(tree.getTreeState().isNodeSelected(obj) + " " + tree.getTreeState().isNodeExpanded(obj));
}
}
}
};
tree.setRootLess(true);
tree.getTreeState().setAllowSelectMultiple(true);
添加(树);
【问题讨论】:
-
你可能想把它带到邮件列表——我从来没有使用过树组件,而且似乎很少有检票口用户使用 SO。
-
之后有没有想过解决这个问题?我也有类似的问题。
-
由于我们没有为 TreeTable 找到合适的解决方案,我们最终使用了完全不同的方法。
标签: java wicket expand treenode treetable