/** * Convenience method that updates changed portions on tree. You can call this method during * Ajax response, where calling {@link #updateTree(AjaxRequestTarget)} * would be appropriate, but you don't have the AjaxRequestTarget instance. However, it is also * safe to call this method outside Ajax response. */ public final void updateTree() { Optional<AjaxRequestTarget> target = getRequestCycle().find(AjaxRequestTarget.class); if (target.isPresent() == false) { throw new WicketRuntimeException( "No AjaxRequestTarget available to execute updateTree(ART target)"); } updateTree(target.get()); }
@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); }
@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); } });