KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > editors > DsoServerDataPanel


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;
5
6 import org.dijon.ContainerResource;
7
8 import org.terracotta.dso.editors.xmlbeans.XmlObjectStructureChangeEvent;
9 import org.terracotta.dso.editors.xmlbeans.XmlObjectStructureListener;
10 import com.terracottatech.config.DsoServerData;
11 import com.terracottatech.config.Server;
12
13 import javax.swing.event.ChangeEvent JavaDoc;
14 import javax.swing.event.ChangeListener JavaDoc;
15
16 public class DsoServerDataPanel extends ConfigurationEditorPanel
17   implements ChangeListener JavaDoc,
18              XmlObjectStructureListener
19 {
20   private Server m_server;
21   private DsoServerData m_dsoServerData;
22   private GarbageCollectionPanel m_garbageCollectionPanel;
23   private PersistencePanel m_persistencePanel;
24   
25   public DsoServerDataPanel() {
26     super();
27   }
28   
29   public void load(ContainerResource containerRes) {
30     super.load(containerRes);
31     
32     m_garbageCollectionPanel =
33       (GarbageCollectionPanel)findComponent("GarbageCollectionPanel");
34     m_persistencePanel =
35       (PersistencePanel)findComponent("PersistencePanel");
36   }
37
38   public void ensureXmlObject() {
39     super.ensureXmlObject();
40
41     if(m_dsoServerData == null) {
42       removeListeners();
43       m_dsoServerData = m_server.addNewDso();
44       updateChildren();
45       addListeners();
46     }
47   }
48   
49   public boolean hasAnySet() {
50     return m_dsoServerData != null &&
51           (m_dsoServerData.isSetGarbageCollection() ||
52            m_dsoServerData.isSetPersistence());
53   }
54   
55   public void stateChanged(ChangeEvent e) {
56     setDirty();
57   }
58   
59   public void structureChanged(XmlObjectStructureChangeEvent e) {
60     syncModel();
61   }
62   
63   private void syncModel() {
64     if(!hasAnySet() && m_server.getDso() != null) {
65       m_server.unsetDso();
66       m_dsoServerData = null;
67       fireXmlObjectStructureChanged();
68       updateChildren();
69     }
70     else {
71       setDirty();
72     }
73   }
74
75   private void fireXmlObjectStructureChanged() {
76     fireXmlObjectStructureChanged(m_server);
77   }
78   
79   private void addListeners() {
80     m_garbageCollectionPanel.addXmlObjectStructureListener(this);
81     m_persistencePanel.addXmlObjectStructureListener(this);
82   }
83   
84   private void removeListeners() {
85     m_garbageCollectionPanel.removeXmlObjectStructureListener(this);
86     m_persistencePanel.removeXmlObjectStructureListener(this);
87   }
88
89   private void updateChildren() {
90     m_garbageCollectionPanel.setup(m_dsoServerData);
91     m_persistencePanel.setup(m_dsoServerData);
92   }
93
94   public void setup(Server server) {
95     setEnabled(true);
96     removeListeners();
97
98     m_server = server;
99     m_dsoServerData = m_server != null ? m_server.getDso() : null;
100     
101     updateChildren();
102     addListeners();
103   }
104   
105   public void tearDown() {
106     removeListeners();
107
108     m_server = null;
109     m_dsoServerData = null;
110     
111     m_garbageCollectionPanel.tearDown();
112     m_persistencePanel.tearDown();
113     
114     setEnabled(false);
115   }
116 }
117
Popular Tags