KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > editors > xmlbeans > XmlBooleanToggle


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package org.terracotta.dso.editors.xmlbeans;
5
6 import org.apache.xmlbeans.XmlObject;
7
8 import com.tc.admin.common.XAbstractAction;
9 import com.tc.admin.common.XCheckBox;
10 import org.terracotta.dso.editors.ConfigurationEditorPanel;
11
12 import java.awt.event.ActionEvent JavaDoc;
13
14 public class XmlBooleanToggle extends XCheckBox
15   implements XmlObjectHolder
16 {
17   private XmlObjectHolderHelper m_helper;
18   private boolean m_listening;
19
20   public XmlBooleanToggle() {
21     super();
22     m_helper = new XmlObjectHolderHelper();
23     getActionMap().put(RESET, new ResetAction());
24     getInputMap().put(RESET_STROKE, RESET);
25   }
26
27   protected void ensureXmlObject() {
28     ConfigurationEditorPanel parent = (ConfigurationEditorPanel)
29       getAncestorOfClass(ConfigurationEditorPanel.class, this);
30     
31     if(parent != null) {
32       parent.ensureXmlObject();
33     }
34   }
35     
36   public void init(Class JavaDoc parentClass, String JavaDoc elementName) {
37     m_helper.init(parentClass, elementName);
38   }
39   
40   public void setup(XmlObject parent) {
41     m_listening = false;
42     m_helper.setup(parent);
43     setSelected(booleanValue());
44     if(isSet()) {
45       m_helper.validateXmlObject(this);
46     }
47     m_listening = true;
48   }
49
50   protected void fireActionPerformed(ActionEvent JavaDoc ae) {
51     if(m_listening) {
52       set();
53     }
54     super.fireActionPerformed(ae);
55   }
56   
57   public void tearDown() {
58     m_helper.tearDown();
59     m_listening = false;
60     setSelected(false);
61   }
62   
63   public boolean booleanValue() {
64     return isSet() ? m_helper.getBoolean() : m_helper.defaultBoolean();
65   }
66   
67   public boolean isRequired() {
68     return m_helper.isRequired();
69   }
70   
71   public boolean isSet() {
72     return m_helper.isSet();
73   }
74   
75   public void set() {
76     boolean isSelected = isSelected();
77     String JavaDoc s = Boolean.toString(isSelected);
78     
79     ensureXmlObject();
80     m_helper.set(s);
81     setSelected(isSelected);
82     m_helper.validateXmlObject(this);
83   }
84   
85   public void unset() {
86     if(!isRequired()) {
87       m_listening = false;
88       m_helper.unset();
89       setSelected(m_helper.defaultBoolean());
90       m_listening = true;
91     }
92   }
93   
94   public synchronized void addXmlObjectStructureListener(XmlObjectStructureListener listener) {
95     m_helper.addXmlObjectStructureListener(listener);
96   }
97
98   public synchronized void removeXmlObjectStructureListener(XmlObjectStructureListener listener) {
99     m_helper.removeXmlObjectStructureListener(listener);
100   }
101
102   class ResetAction extends XAbstractAction {
103     ResetAction() {
104       super("Reset");
105       setShortDescription("Reset to default value");
106     }
107     
108     public void actionPerformed(ActionEvent JavaDoc ae) {
109       unset();
110     }
111   }
112 }
113
Popular Tags