KickJava   Java API By Example, From Geeks To Geeks.

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


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.eclipse.core.resources.IFolder;
7 import org.eclipse.core.resources.IProject;
8
9 import org.dijon.Button;
10 import org.dijon.ContainerResource;
11 import org.dijon.Label;
12
13 import org.terracotta.dso.editors.chooser.ProjectFolderNavigator;
14 import org.terracotta.dso.editors.xmlbeans.XmlObjectStructureChangeEvent;
15 import org.terracotta.dso.editors.xmlbeans.XmlObjectStructureListener;
16 import org.terracotta.dso.editors.xmlbeans.XmlStringField;
17 import com.terracottatech.config.Server;
18
19 import java.awt.Frame JavaDoc;
20 import java.awt.event.ActionEvent JavaDoc;
21 import java.awt.event.ActionListener JavaDoc;
22 import java.awt.event.MouseAdapter JavaDoc;
23 import java.awt.event.MouseEvent JavaDoc;
24
25 public class ServerPanel extends ConfigurationEditorPanel
26   implements ActionListener JavaDoc,
27              XmlObjectStructureListener
28 {
29   private Server m_server;
30   private XmlStringField m_data;
31   private Label m_dataLabel;
32   private Button m_dataButton;
33   private XmlStringField m_logs;
34   private Label m_logsLabel;
35   private Button m_logsButton;
36   private DsoServerDataPanel m_dsoServerDataPanel;
37   private ProjectFolderNavigator m_folderNavigator;
38   
39   public ServerPanel() {
40     super();
41   }
42
43   public void load(ContainerResource containerRes) {
44     super.load(containerRes);
45
46     m_data = (XmlStringField)findComponent("Data");
47     m_data.init(Server.class, "data");
48     m_dataLabel = (Label)findComponent("DataLabel");
49     m_dataLabel.addMouseListener(new MouseAdapter JavaDoc() {
50       public void mouseClicked(MouseEvent JavaDoc me) {
51         if(me.getClickCount() == 1) {
52           m_data.unset();
53         }
54       }
55     });
56     m_dataButton = (Button)findComponent("DataButton");
57     m_dataButton.addActionListener(new ActionListener JavaDoc() {
58       public void actionPerformed(ActionEvent JavaDoc ae) {
59         Frame JavaDoc frame = (Frame JavaDoc)getAncestorOfClass(Frame JavaDoc.class);
60         ServersPanel serversPanel = (ServersPanel)getAncestorOfClass(ServersPanel.class);
61         IProject project = serversPanel.getProject();
62
63         if(m_folderNavigator == null) {
64           m_folderNavigator = new ProjectFolderNavigator(frame);
65         }
66         m_folderNavigator.init(project);
67         m_folderNavigator.setActionListener(new DataNavigatorListener());
68         m_folderNavigator.center(frame);
69         m_folderNavigator.setVisible(true);
70       }
71     });
72
73     m_logs = (XmlStringField)findComponent("Logs");
74     m_logs.init(Server.class, "logs");
75     m_logsLabel = (Label)findComponent("LogsLabel");
76     m_logsLabel.addMouseListener(new MouseAdapter JavaDoc() {
77       public void mouseClicked(MouseEvent JavaDoc me) {
78         if(me.getClickCount() == 1) {
79           m_logs.unset();
80         }
81       }
82     });
83     m_logsButton = (Button)findComponent("LogsButton");
84     m_logsButton.addActionListener(new ActionListener JavaDoc() {
85       public void actionPerformed(ActionEvent JavaDoc ae) {
86         Frame JavaDoc frame = (Frame JavaDoc)getAncestorOfClass(Frame JavaDoc.class);
87         ServersPanel serversPanel = (ServersPanel)getAncestorOfClass(ServersPanel.class);
88         IProject project = serversPanel.getProject();
89
90         if(m_folderNavigator == null) {
91           m_folderNavigator = new ProjectFolderNavigator(frame);
92         }
93         m_folderNavigator.init(project);
94         m_folderNavigator.setActionListener(new LogsNavigatorListener());
95         m_folderNavigator.center(frame);
96         m_folderNavigator.setVisible(true);
97       }
98     });
99
100     m_dsoServerDataPanel = (DsoServerDataPanel)findComponent("DsoServerData");
101   }
102
103   class DataNavigatorListener implements ActionListener JavaDoc {
104     public void actionPerformed(ActionEvent JavaDoc ae) {
105       IFolder folder = m_folderNavigator.getSelectedFolder();
106
107       if(folder != null) {
108         m_data.setText(folder.getProjectRelativePath().toString());
109         m_data.set();
110       }
111     }
112   }
113   
114   class LogsNavigatorListener implements ActionListener JavaDoc {
115     public void actionPerformed(ActionEvent JavaDoc ae) {
116       IFolder folder = m_folderNavigator.getSelectedFolder();
117
118       if(folder != null) {
119         m_logs.setText(folder.getProjectRelativePath().toString());
120         m_logs.set();
121       }
122     }
123   }
124
125   public void structureChanged(XmlObjectStructureChangeEvent e) {
126     syncModel();
127   }
128
129   public void actionPerformed(ActionEvent JavaDoc ae) {
130     setDirty();
131   }
132
133   private void syncModel() {
134     // One of our children has been added/removed,
135
// but we're required because of host.
136

137     setDirty();
138   }
139
140   public boolean hasAnySet() {
141     return m_server != null &&
142           (m_server.isSetData() ||
143            m_server.isSetLogs() ||
144            m_server.isSetDsoPort() ||
145            m_server.isSetDso());
146   }
147
148   private void addListeners() {
149     m_data.addActionListener(this);
150     m_data.addXmlObjectStructureListener(this);
151
152     m_logs.addActionListener(this);
153     m_logs.addXmlObjectStructureListener(this);
154
155     m_dsoServerDataPanel.addXmlObjectStructureListener(this);
156   }
157
158   private void removeListeners() {
159     m_data.removeActionListener(this);
160     m_data.removeXmlObjectStructureListener(this);
161
162     m_logs.removeActionListener(this);
163     m_logs.removeXmlObjectStructureListener(this);
164
165     m_dsoServerDataPanel.removeXmlObjectStructureListener(this);
166   }
167
168   private void updateChildren() {
169     m_data.setup(m_server);
170     m_logs.setup(m_server);
171     m_dsoServerDataPanel.setup(m_server);
172   }
173   
174   public void setup(Server server) {
175     setEnabled(true);
176     removeListeners();
177
178     m_server = server;
179
180     updateChildren();
181     addListeners();
182   }
183
184   public void tearDown() {
185     removeListeners();
186
187     m_server = null;
188
189     m_data.tearDown();
190     m_logs.tearDown();
191     m_dsoServerDataPanel.tearDown();
192
193     setEnabled(false);
194   }
195 }
196
Popular Tags