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

GWT中的treeitem clickhandler

gwt
  •  5
  • Federer  · 技术社区  · 15 年前

    对于标准的GWT2.0.3API,如何向TreeItem添加ClickHandler?我希望实现对服务器的异步调用,以检索扩展后的结果树项。

    不幸的是 FastTree 在gxt应用程序中不工作。因此,我回到了需要将处理程序附加到 TreeItem S!

    此代码是否有明显的下降:

    Tree.addSelectionHandler(new SelectionHandler<TreeItem>()
    {
        @Override
        public void onSelection(SelectionEvent event()
        {
            if(event.getSelectedItem == someTreeItem)
            {
                //Something
            }
        }
    });
    
    2 回复  |  直到 10 年前
        1
  •  12
  •   Matt McMinn    10 年前

    使用GWT的默认值 Tree ,没有特定的处理程序 TreeItem S,只有一个 SelectionHandler 对于整个树:

    tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
      @Override
      public void onSelection(SelectionEvent<TreeItem> event) {
        TreeItem item = event.getSelectedItem();
        // expand the selected item
      }
    });
    

    但是, GWT incubator FastTree 按照字面上的意思,只是为了你想做的事情而构建的,懒惰地在扩展项时加载树,所以我将从那里开始。如果你有问题,可以问更多的问题。

        2
  •  -1
  •   user1990349    12 年前
    // First create a new treeitem-class with a new method:
    public class TreeItemAdv extends TreeItem {
        protected void doSelectionAction() {
            // TODO: The child should overwrite this method!
            System.out.println("The child should overwrite this method!");
        }
    }
    

    ...
        // define your tree:
        Tree tree = new Tree();
        tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
            @Override
            public void onSelection(SelectionEvent<TreeItem> event) {               
                TreeItemAdv item = (TreeItemAdv) event.getSelectedItem();
                item.doSelectionAction(); // do item-specific stuff
            }
        });
    
        // define and add your items:
        TreeItemAdv ti1 = new TreeItemAdv() {
            @Override
            protected void doSelectionAction() {
                // TODO: Do some stuff.
                System.out.println("1: Here I am.");
            }           
        };      
        ti1.setText("Item 1");      
        tree.addItem(ti1);
        // and an other item:
        TreeItemAdv ti2 = new TreeItemAdv() {
            @Override
            protected void doSelectionAction() {
                // TODO: Do some stuff.
                System.out.println("2: Here I am.");
            }           
        };      
        ti2.setText("Item 2");      
        tree.addItem(ti2);
    ...