package net.databinder.components.tree.hib; import javax.swing.tree.DefaultMutableTreeNode; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; /** * Add a new child to the selected tree node. * * @author Thomas Kappler */ public class DataTreeNewChildLink extends AjaxLink { private DataTree<?> tree; private DefaultMutableTreeNode parentNode; public DataTreeNewChildLink(String id, DataTree tree, DefaultMutableTreeNode node) { super(id); this.tree = tree; this.parentNode = node; } protected DefaultMutableTreeNode getParentNode() { return parentNode; } @Override public boolean isEnabled() { return getParentNode() != null; } @Override public void onClick(AjaxRequestTarget target) { DefaultMutableTreeNode newNode = tree.addNewChildNode(getParentNode()); tree.getTreeState().selectNode(newNode, true); tree.repaint(target); tree.updateDependentComponents(target, newNode); } public static class SingleSelection extends DataTreeNewChildLink { private SingleSelectionDataTree<?> tree; public SingleSelection(String id, SingleSelectionDataTree<?> tree) { super(id, tree, null); this.tree = tree; } @Override protected DefaultMutableTreeNode getParentNode() { return tree.getSelectedTreeNode(); } } }