代码之家  ›  专栏  ›  技术社区  ›  Jla

GWT树,开放事件

  •  3
  • Jla  · 技术社区  · 16 年前

    我在GWT中使用树控件。我有一个自定义小部件,作为树项添加:

    Tree testTree = new Tree();
    testTree.addItem(myWidget);
    

    我想在节点打开事件上检索MyWidget实例。有可能吗?有人知道我应该使用哪个活动吗?

    我试过了 openHandler<TreeItem> 但我得到的是…树项目。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Jason Hall    16 年前

    在几乎所有使用GWT的情况下 Tree 你真的想用GWT孵化器 FastTree ,它有一个 addBeforeOpenHandler() 方法,它采用 BeforeOpenHandler<FastTreeItem> 通过A BeforeOpenEvent 到 onBeforeOpen() 提供 source (那是一口……)

    长话短说, 快速树 gt; 树 ,您想使用 AddBeforeOpenHandler()。 上 快速树 本身。

    向树中添加小部件(而不仅仅是 FastTreeItem s)您可以将小部件添加到 快件项目 或者只是子类 快件项目 做你想做的。

        2
  •  1
  •   Jla    16 年前

    我望向远方。

    回答我原来的问题: 我们在OpenHandler中检索的事件包含了我需要的所有信息。

    public void onOpen(OpenEvent<TreeItem> event) {
    // The TreeItem
    TreeItem ti = event.getTarget();
    
    // The widget added in the treeItem
    CustomWidget cw = (CustomWidget)event.getTarget().getWidget();
    }
    

    只是为了信息:

    我扩展了treeitem来创建自己的小部件,而不是在treeitem中添加一个小部件(我在其他任何地方都没有使用)。所以我只需要 event.getTarget() 访问它。

    关于FastTree:

    对于我所看到的,与GWT合作的人通常直接使用 FastTree 正如杰森所说,它提供了更多的可能性和更好的性能。 我在配置中运行fasttree时遇到了问题(即使是使用示例代码),处理它的时间也很短,所以这就是我贴上本机树小部件的原因。