0

我对检票口很陌生,我正在尝试创建一个简单的检票口树,其中包含有关邮件列表的信息。此邮件列表与某封信有关。

  • 邮件列表Dto 1
    • 用户 1
    • 用户 2
  • 邮件列表Dto 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);
    添加(树);
4

2 回答 2

0

仅展开树的根节点:

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

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

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

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

于 2012-09-07T13:17:01.010 回答
-1

检票口 1.5.10

检票口 6

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

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

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

FooExansionModel 模型 = 新的 FooExpansionModell()

树 = createTree(提供者,模型);

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

于 2014-02-14T20:08:31.460 回答