Search code examples
gwtgxt

Dynamic treegrid context menus


Is there a way using the treegrid in gwt-ext to have different context menus for different rows?

For example I would like my leaf rows to have different menu options then my non-leaf rows, or at least be able to disable menu options when they aren't revelent to the row that was right clicked.


Solution

  • I created a solution for this problem:

    When you create the leafs, you should set the property "type" to "leaf", and the others to "non-leaf".

    BaseTreeModel base = new BaseTreeModel(); base.set("type", "leaf");

    So, in the selectionChanged event of your tree, you put the verification, and create the menu only for your leafs.

      *treePanel.getSelectionModel().addListener(Events.SelectionChange, new      SelectionChangedListener<ModelData>() {
            @Override
            public void selectionChanged(SelectionChangedEvent<ModelData> data) {
                BaseTreeModel selected = (BaseTreeModel) data.getSelectedItem();
                if ("leaf".equals(selected .get("type").toString())) {
                // create the Menu and set it to contextMenu of your tree
                } else {
                    treePanel.setContextMenu(null);
                }*
    

    André.