KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > SuppressionProcWin


1 package jimm.datavision.gui;
2 import jimm.datavision.*;
3 import jimm.datavision.gui.cmd.SuppressionProcEditCommand;
4 import jimm.util.I18N;
5 import java.awt.BorderLayout JavaDoc;
6 import java.awt.Color JavaDoc;
7 import java.awt.event.ActionEvent JavaDoc;
8 import javax.swing.*;
9
10 /**
11  * An edit dialog for suppression procs.
12  *
13  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
14  * @see jimm.datavision.SuppressionProc
15  * @see jimm.datavision.Formula
16  * @see jimm.datavision.gui.cmd.SuppressionProcEditCommand
17  */

18 public class SuppressionProcWin extends ScriptEditorWin {
19
20 protected static final int CHECK_BOX_INDENT_WIDTH = 32;
21
22 protected SectionWidget sectionWidget;
23 protected JCheckBox hideCheckBox;
24
25 /**
26  * Constructor.
27  *
28  * @param designer the window to which this dialog belongs
29  * @param sectionWidget the section widget
30  */

31 public SuppressionProcWin(Designer designer, SectionWidget sectionWidget) {
32     super(designer, sectionWidget.getSection().getReport(),
33       sectionWidget.getSection().getSuppressionProc().getFormula()
34           .getEditableExpression(),
35       I18N.get("SuppressionProcWin.title"),
36       "SuppressionProcWin.error_unchanged",
37       "SuppressionProcWin.error_title");
38
39     // Finish GUI setup
40
hideCheckBox.setSelected(sectionWidget.getSection().getSuppressionProc()
41                  .isHidden());
42     enableEditBox();
43
44     this.sectionWidget = sectionWidget;
45     setLanguage(sectionWidget.getSection().getSuppressionProc().getFormula()
46         .getLanguage());
47 }
48
49 protected JComponent northPanel(Report report) {
50     hideCheckBox = new JCheckBox(I18N.get("SuppressionProcWin.always_hide"));
51     hideCheckBox.addActionListener(this);
52
53     Box box = Box.createHorizontalBox();
54     box.add(Box.createHorizontalStrut(CHECK_BOX_INDENT_WIDTH));
55     box.add(hideCheckBox);
56
57     JPanel northPanel = new JPanel();
58     northPanel.add(box, BorderLayout.WEST);
59     northPanel.add(super.northPanel(report), BorderLayout.EAST);
60
61     return northPanel;
62 }
63
64 /**
65  * Creates and executes a command that changes the formula's eval string.
66  * If there is an error, the command is cancelled (never sent to the
67  * design window).
68  *
69  * @param text the new eval string
70  */

71 public void save(String JavaDoc text) {
72     command = new SuppressionProcEditCommand(sectionWidget,
73                          hideCheckBox.isSelected(), text,
74                          getLanguage());
75 }
76
77 /**
78  * Listens for &quot;Always Hide&quot; actions; passes all others on to
79  * our superclass.
80  */

81 public void actionPerformed(ActionEvent JavaDoc e) {
82     String JavaDoc cmd = e.getActionCommand();
83     if (I18N.get("SuppressionProcWin.always_hide").equals(cmd))
84     enableEditBox();
85     else
86     super.actionPerformed(e);
87 }
88
89
90 /**
91  * Enables or disables code editor box based on state of &quot;Always
92  * Hide&quot; checkbox.
93  */

94 protected void enableEditBox() {
95     boolean hide = hideCheckBox.isSelected();
96     codeField.setEditable(!hide);
97     codeField.setBackground(hide ? Color.lightGray : Color.white);
98 }
99
100 }
101
Popular Tags