/** * @see MarkupContainer#onDetach() */ @Override public void onDetach() { attached = false; super.onDetach(); if (getTreeState() instanceof IDetachable) { ((IDetachable)getTreeState()).detach(); } }
private MenuTreeNode getSelected() { if (!tree.getTreeState().getSelectedNodes().isEmpty()) { MenuTreeNode node = (MenuTreeNode) tree.getTreeState().getSelectedNodes().iterator().next(); return node; } else { return (MenuTreeNode) treeModel.getRoot(); } }
/** * Returns whether the given node is expanded. * * @param node * The node to inspect * @return true if the node is expanded, false otherwise */ protected final boolean isNodeExpanded(Object node) { // In root less mode the root node is always expanded if (isRootLess() && rootItem != null && rootItem.getModelObject().equals(node)) { return true; } return getTreeState().isNodeExpanded(node); }
@Override public void bind(Component component) { super.bind(component); if (component instanceof AbstractTree) { AbstractTree tree = (AbstractTree) component; tree.getTreeState().addTreeStateListener(new TreeStateListener()); } }
/** * Sets whether the root of the tree should be visible. * * @param rootLess * whether the root should be visible */ public void setRootLess(boolean rootLess) { if (this.rootLess != rootLess) { this.rootLess = rootLess; invalidateAll(); // if the tree is in rootless mode, make sure the root node is // expanded if (rootLess == true && getModelObject() != null) { getTreeState().expandNode(getModelObject().getRoot()); } } }
@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); }
List<Object> selection = new ArrayList<Object>(getTreeState().getSelectedNodes()); List<Object> removed = Arrays.asList(removalEvent.getChildren()); for (Object selectedNode : selection) getTreeState().selectNode(selectedNode, false);
@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); }
@Override public void onClick(AjaxRequestTarget target) { ChildEntry entry = new ChildEntry(getSelected().getEntry()); entry.setTitle(getString("newEntry")); getSelected().getEntry().getChildren().add(entry); MenuTreeNode node = new MenuTreeNode(entry); treeModel.nodeInserted(tree, getSelected(), node); tree.getTreeState().selectNode(node, true); tree.updateTree(target); }
@Override public void onClick(AjaxRequestTarget target) { MenuTreeNode parent = (MenuTreeNode) treeModel.getRoot(); ChildEntry entry = new ChildEntry(parent.getEntry()); entry.setTitle(getString("newEntry")); parent.getEntry().getChildren().add(entry); MenuTreeNode node = new MenuTreeNode(entry); treeModel.nodeInserted(tree, parent, node); tree.getTreeState().selectNode(node, true); tree.updateTree(target); } });
getTreeState().expandNode(parentNode);
tg.setContentHeight(34, SizeUnit.EM); tree.getTreeState().expandAll(); tree.getTreeState().setAllowSelectMultiple(false);