public Object getParent(AbstractTree tree, Object node) { return tree.getParentNode(node); }
@Override public boolean isEnabled() { int index = getIndex(getSelected()); MenuTreeNode parent = (MenuTreeNode) tree.getParentNode(getSelected()); return parent != null && index < parent.getChildren().size() - 1; } }.add(new DisabledClassAppender()));
private int getIndex(MenuTreeNode node) { MenuTreeNode parent = (MenuTreeNode) tree.getParentNode(node); if (parent == null) { return -1; } else { return parent.getChildren().indexOf(node); } }
/** * Returns whether the given node is visible, e.g. all it's parents are expanded. * * @param node * The node to inspect * @return true if the node is visible, false otherwise */ private boolean isNodeVisible(Object node) { if (node == null) { return false; } Object parent = getParentNode(node); while (parent != null) { if (isNodeExpanded(parent) == false) { return false; } parent = getParentNode(parent); } return true; }
@Override public void onClick(AjaxRequestTarget target) { MenuTreeNode selected = getSelected(); MenuTreeNode parent = (MenuTreeNode) tree.getParentNode(selected); boolean editing = tg.isItemEdited(new Model<MenuTreeNode>(selected)); int index = parent.getChildren().indexOf(selected); treeModel.nodeDeleted(tree, selected); parent.getEntry().getChildren().remove(selected.getEntry()); if (index > parent.getChildren().size() - 1) { --index; } MenuTreeNode newSelected = (MenuTreeNode) ((index >= 0) ? parent.getChildren().get(index) : parent); if (newSelected.equals(treeModel.getRoot()) == false) { tree.getTreeState().selectNode(newSelected, true); tg.setItemEdit(new Model<MenuTreeNode>(newSelected), editing); } tree.updateTree(target); }
@Override public void onClick(AjaxRequestTarget target) { MenuTreeNode selected = getSelected(); MenuTreeNode parent = (MenuTreeNode) tree.getParentNode(selected); int index = getIndex(selected); if (index < parent.getChildren().size() - 1) { boolean editing = tg.isItemEdited(new Model<MenuTreeNode>(selected)); treeModel.nodeDeleted(tree, selected); parent.getEntry().getChildren().remove(selected.getEntry()); parent.getEntry().getChildren().add(index + 1, (ChildEntry) selected.getEntry()); treeModel.nodeInserted(tree, parent, selected); tree.getTreeState().selectNode(selected, true); tg.setItemEdit(new Model<MenuTreeNode>(selected), editing); tree.updateTree(target); } target.add(links); }
@Override public void onClick(AjaxRequestTarget target) { MenuTreeNode selected = getSelected(); int index = getIndex(selected); if (index > 0) { boolean editing = tg.isItemEdited(new Model<MenuTreeNode>(selected)); MenuTreeNode parent = (MenuTreeNode) tree.getParentNode(selected); treeModel.nodeDeleted(tree, selected); parent.getEntry().getChildren().remove(selected.getEntry()); parent.getEntry().getChildren().add(index - 1, (ChildEntry) selected.getEntry()); treeModel.nodeInserted(tree, parent, selected); tree.getTreeState().selectNode(selected, true); tg.setItemEdit(new Model<MenuTreeNode>(selected), editing); tree.updateTree(target); } target.add(links); }
Object grandparentNode = getParentNode(parentNode); boolean addingToHiddedRootSon = grandparentNode != null && getParentNode(grandparentNode) == null && isRootLess();