有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从自定义SelectionEventManager访问GWT CellTree显示的对象层次结构?

我想创建一个自定义CellTree,它将使用基于复选框的单元格(我想使用三态复选框,因此必须编写一个自定义单元格)。我希望选择父节点以选择其所有子节点,并且如果选择了所有子节点,则父节点的复选框也应被选中。如果不是所有的子项都被选中,那么父项复选框应该处于所谓的“第三状态”

为了实现这一点,我创建了一个自定义public class TriStateSelectionEventManager extends DefaultSelectionEventManager<TopologyNodeRep>,并希望覆盖它的

public void doMultiSelection(MultiSelectionModel<? super TopologyNodeRep> selectionModel,
                                 HasData<TopologyNodeRep> display,
                                 int row,
                                 TopologyNodeRep rowValue,
                                 DefaultSelectionEventManager.SelectAction action,
                                 boolean selectRange,
                                 boolean clearOthers)

方法。我认为这是实现这一要求最合适的方法。我的问题是,通过这种方法,我无法访问树数据。收到的display对象包含所有必要的信息,但无法访问,因为它是CellTreeNodeView.NodeCellList实例,是包访问类的私有内部类..:-(

您知道如何在GWT中实现此要求吗


共 (1) 个答案

  1. # 1 楼答案

    你的TopologyNodeRep类是否分别引用了它的孩子和父母? 如果有,您可以检索特定选定TopologyNodeRep实例的子对象,并自动选择其子对象。 比如:

    List<TopologyNodeRep> childs = rowValue.getChilds();
    for (TopologyNodeRep child: childs) {
        selectionModel.setSelected(child,true);
    }