01: package org.netbeans.modules.reportgenerator.customization;
02:
03: import java.beans.PropertyChangeListener;
04: import java.beans.PropertyChangeSupport;
05: import javax.swing.JComponent;
06: import org.netbeans.spi.options.OptionsPanelController;
07: import org.openide.util.HelpCtx;
08: import org.openide.util.Lookup;
09:
10: final class ReportgeneratorOptionsPanelController extends
11: OptionsPanelController {
12:
13: private ReportgeneratorPanel panel;
14: private final PropertyChangeSupport pcs = new PropertyChangeSupport(
15: this );
16: private boolean changed;
17:
18: public void update() {
19: getPanel().load();
20: changed = false;
21: }
22:
23: public void applyChanges() {
24: getPanel().store();
25: changed = false;
26: }
27:
28: public void cancel() {
29: // need not do anything special, if no changes have been persisted yet
30: }
31:
32: public boolean isValid() {
33: return getPanel().valid();
34: }
35:
36: public boolean isChanged() {
37: return changed;
38: }
39:
40: public HelpCtx getHelpCtx() {
41: return null; // new HelpCtx("...ID") if you have a help set
42: }
43:
44: public JComponent getComponent(Lookup masterLookup) {
45: return getPanel();
46: }
47:
48: public void addPropertyChangeListener(PropertyChangeListener l) {
49: pcs.addPropertyChangeListener(l);
50: }
51:
52: public void removePropertyChangeListener(PropertyChangeListener l) {
53: pcs.removePropertyChangeListener(l);
54: }
55:
56: private ReportgeneratorPanel getPanel() {
57: if (panel == null) {
58: panel = new ReportgeneratorPanel(this );
59: }
60: return panel;
61: }
62:
63: void changed() {
64: if (!changed) {
65: changed = true;
66: pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED,
67: false, true);
68: }
69: pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null,
70: null);
71: }
72: }
|