KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > servers > ServersDialog


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 com.tc.servers;
5
6 import org.dijon.Button;
7 import org.dijon.ComboBox;
8 import org.dijon.ComboModel;
9 import org.dijon.Dialog;
10 import org.dijon.DialogResource;
11 import org.dijon.Frame;
12 import org.dijon.Label;
13
14 import com.tc.admin.common.XObjectTable;
15
16 import java.awt.event.ActionEvent JavaDoc;
17 import java.awt.event.ActionListener JavaDoc;
18 import java.lang.reflect.Method JavaDoc;
19 import java.util.Properties JavaDoc;
20
21 import javax.swing.ComboBoxModel JavaDoc;
22 import javax.swing.Icon JavaDoc;
23 import javax.swing.JButton JavaDoc;
24 import javax.swing.event.TableModelEvent JavaDoc;
25 import javax.swing.event.TableModelListener JavaDoc;
26 import javax.swing.table.TableCellEditor JavaDoc;
27
28 public class ServersDialog extends Dialog {
29   private ServerInfo[] m_servers;
30   private ComboBox m_selector;
31   private ServerEnvTableModel m_envTableModel;
32   private XObjectTable m_envTable;
33   private Label m_errorLabel;
34   private Icon JavaDoc m_errorIcon;
35   private Button m_restoreButton;
36   
37   public ServersDialog(Frame frame) {
38     super(frame, true);
39   }
40   
41   public void load(DialogResource dialogRes) {
42     super.load(dialogRes);
43     
44     m_selector = (ComboBox)findComponent("ServerSelector");
45     m_selector.addActionListener(new ActionListener JavaDoc() {
46       public void actionPerformed(ActionEvent JavaDoc ae) {
47         finishEditing();
48         updateEnvironmentTable();
49       }
50     });
51     
52     m_envTable = (XObjectTable)findComponent("ServerEnvironment");
53     m_envTable.setModel(m_envTableModel = new ServerEnvTableModel());
54     ((JButton JavaDoc)findComponent("CancelButton")).addActionListener(new ActionListener JavaDoc() {
55       public void actionPerformed(ActionEvent JavaDoc ae) {
56         setVisible(false);
57       }
58     });
59     m_envTableModel.addTableModelListener(new TableModelListener JavaDoc() {
60       public void tableChanged(TableModelEvent JavaDoc e) {
61         validateModel();
62       }
63     });
64
65     m_errorLabel = (Label)findComponent("ErrorLabel");
66     m_errorIcon = m_errorLabel.getIcon();
67     m_errorLabel.setIcon(null);
68     
69     try {
70       String JavaDoc methodName = "setAlwaysOnTop";
71       Class JavaDoc[] argTypes = new Class JavaDoc[] {Boolean JavaDoc.class};
72       Method JavaDoc method = getClass().getMethod(methodName, argTypes);
73       
74       if(method != null) {
75         method.invoke(this, new Object JavaDoc[] {Boolean.TRUE});
76       }
77     } catch(Exception JavaDoc e) {/**/}
78
79     m_restoreButton = (Button)findComponent("RestoreButton");
80     m_restoreButton.addActionListener(new ActionListener JavaDoc() {
81       public void actionPerformed(ActionEvent JavaDoc ae) {
82         int index = getSelectedServerIndex();
83         ServerInfo server = getSelectedServer();
84         Properties JavaDoc props = ServerSelection.getInstance().getDefaultProperties(index);
85
86         server.setProperties(props);
87         m_envTableModel.set(server.getProperties());
88       }
89     });
90   }
91   
92   public void addAcceptListener(ActionListener JavaDoc listener) {
93     ((JButton JavaDoc)findComponent("OKButton")).addActionListener(listener);
94   }
95   
96   public void setSelection(ServerSelection selection) {
97     setServers(selection.cloneServers());
98     m_selector.setSelectedIndex(selection.getSelectedServerIndex());
99   }
100   
101   private void updateEnvironmentTable() {
102     m_envTableModel.set(getSelectedServer().getProperties());
103   }
104   
105   private void setServers(ServerInfo[] servers) {
106     m_selector.setModel(new ComboModel(m_servers = servers));
107     updateEnvironmentTable();
108   }
109
110   public ServerInfo[] getServers() {
111     return m_servers;
112   }
113   
114   public int getSelectedServerIndex() {
115     return m_selector.getSelectedIndex();
116   }
117   
118   public ServerInfo getSelectedServer() {
119     return (ServerInfo)m_selector.getSelectedItem();
120   }
121   
122   public ServerInfo getServer(String JavaDoc name) {
123     ComboBoxModel JavaDoc model = m_selector.getModel();
124     ServerInfo server;
125     
126     for(int i = 0; i < model.getSize(); i++) {
127       server = (ServerInfo)model.getElementAt(i);
128       
129       if(server.getName().equals(name)) {
130         return server;
131       }
132     }
133     
134     return null;
135   }
136   
137   public Properties JavaDoc getServerProperties(String JavaDoc name) {
138     ServerInfo server = getServer(name);
139     return server != null ? server.toProperties() : null;
140   }
141
142   public void finishEditing() {
143     if(m_envTable.isEditing()) {
144       TableCellEditor JavaDoc editor = m_envTable.getCellEditor();
145       
146       if(!editor.stopCellEditing()) {
147         editor.cancelCellEditing();
148       }
149     }
150   }
151   
152   private void validateModel() {
153     ServerInfo server = getSelectedServer();
154     String JavaDoc[] messages = server.validateProperties();
155     String JavaDoc msg = null;
156     Icon JavaDoc icon = null;
157     
158     if(messages != null) {
159       msg = messages[0];
160       icon = m_errorIcon;
161     }
162     
163     m_errorLabel.setText(msg);
164     m_errorLabel.setIcon(icon);
165     
166   }
167 }
168
Popular Tags