KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > cmd > FPDeleteCommand


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 /**
10  * Deletes something from the field picker tree.
11  *
12  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
13  */

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 /**
24  * Constructor.
25  */

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 /**
33  * The delegated constructor.
34  */

35 protected FPDeleteCommand(Report report, Designer designer,
36               FieldPickerTree tree, DefaultMutableTreeNode node,
37               String JavaDoc 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 JavaDoc 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     // Make leaf visible and make it the current selection
65
TreePath path = new TreePath(leafNode.getPath());
66     tree.scrollPathToVisible(path);
67     tree.setSelectionPath(path);
68     }
69 }
70
71 }
72
Popular Tags