KickJava   Java API By Example, From Geeks To Geeks.

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


1 package jimm.datavision.gui.cmd;
2 import jimm.datavision.gui.Designer;
3 import jimm.datavision.gui.FieldWidget;
4 import jimm.datavision.gui.SectionWidget;
5 import jimm.util.I18N;
6 import java.util.*;
7
8 /**
9  * Deletes a list of field widgets.
10  *
11  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
12  */

13 public class DeleteCommand extends CommandAdapter {
14
15 protected Designer designer;
16 protected Collection fieldWidgets;
17
18 /**
19  * Constructor.
20  */

21 public DeleteCommand(Designer designer, ArrayList selectedFields) {
22     this(designer, selectedFields, I18N.get("DeleteCommand.name"));
23 }
24
25 /**
26  * The delegated constructor.
27  */

28 protected DeleteCommand(Designer designer, ArrayList selectedFields,
29             String JavaDoc name)
30 {
31     super(name);
32     this.designer = designer;
33     fieldWidgets = (ArrayList)selectedFields.clone();
34 }
35
36 public void perform() {
37     HashSet affectedSections = new HashSet();
38     designer.deselectAll();
39
40     for (Iterator iter = fieldWidgets.iterator(); iter.hasNext(); ) {
41     FieldWidget fw = (FieldWidget)iter.next();
42     fw.doDelete(); // Widget deletes itself and field from report
43
affectedSections.add(fw.getSectionWidget());
44     }
45
46     for (Iterator iter = affectedSections.iterator(); iter.hasNext(); )
47     ((SectionWidget)iter.next()).repaint();
48
49     designer.enableMenuItems();
50 }
51
52 public void undo() {
53     for (Iterator iter = fieldWidgets.iterator(); iter.hasNext(); ) {
54     FieldWidget fw = (FieldWidget)iter.next();
55     fw.moveToSection(fw.getSectionWidget());
56     designer.select(fw, true, false);
57     }
58     // Don't need to call Designer.enableMenuItems because each call
59
// to Designer.select already does that.
60
}
61
62 }
63
Popular Tags