1 package jimm.datavision.gui.cmd; 2 import jimm.datavision.Report; 3 import jimm.datavision.gui.Designer; 4 import jimm.datavision.gui.FieldPickerTree; 5 import jimm.datavision.gui.FPLeafInfo; 6 import jimm.util.I18N; 7 import javax.swing.tree.*; 8 9 14 public class FPDeleteCommand extends CommandAdapter { 15 16 protected Report report; 17 protected Designer designer; 18 protected FieldPickerTree tree; 19 protected DefaultMutableTreeNode leafNode; 20 protected MutableTreeNode parentNode; 21 protected FPLeafInfo info; 22 23 26 public FPDeleteCommand(Report report, Designer designer, 27 FieldPickerTree tree, DefaultMutableTreeNode node) 28 { 29 this(report, designer, tree, node, I18N.get("FPDeleteCommand.name")); 30 } 31 32 35 protected FPDeleteCommand(Report report, Designer designer, 36 FieldPickerTree tree, DefaultMutableTreeNode node, 37 String name) 38 { 39 super(name); 40 this.report = report; 41 this.designer = designer; 42 this.tree = tree; 43 leafNode = node; 44 parentNode = (MutableTreeNode)node.getParent(); 45 Object obj = node.getUserObject(); 46 if (obj instanceof FPLeafInfo) 47 info = (FPLeafInfo)obj; 48 } 49 50 public void perform() { 51 if (info != null) { 52 report.remove(info.getLeaf()); 53 tree.removeCurrentNode(); 54 } 55 } 56 57 public void undo() { 58 if (info != null) { 59 report.add(info.getLeaf()); 60 61 ((DefaultTreeModel)tree.getModel()) 62 .insertNodeInto(leafNode, parentNode, parentNode.getChildCount()); 63 64 TreePath path = new TreePath(leafNode.getPath()); 66 tree.scrollPathToVisible(path); 67 tree.setSelectionPath(path); 68 } 69 } 70 71 } 72 | Popular Tags |