【问题标题】:Expanding Wickets TreeTable nodes when initializing a tree初始化树时扩展 Wickets TreeTable 节点
【发布时间】: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


【解决方案1】:

仅展开树的根节点:

Object rootObj = myTree.getModelObject().getRoot();
myTree.getTreeState().expandNode(rootObj);

要扩展根节点的第一个子节点,请在前面添加以下行:

myTree.getTreeState().expandNode(myTree.getModelObject().getChild(rootObj, 0));

请注意,您必须展开“目标”节点的所有父节点,否则屏幕上的目标节点将因父节点折叠而被隐藏。

【讨论】:

    【解决方案2】:

    wicket 1.5.10

    wicket 6

    查看源代码。在类 FooExpansion.java 中有一个方法 expandAll()。

    FooExpansion.java 用于私有类 FooExpansionModel.java 用于 AdvancedTreePage.java。

    所以一个简单的解决方案,当初始化你的树时(在 AdvancedTreePage.java 中),可能是:

    FooExansionModel model = new FooExpansionModell()

    tree = createTree(provider, model);

    ((FooExpansion)model.getObject()).expandAll();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多