KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sape > carbon > services > console > ConfigurationWizard


1 package org.sape.carbon.services.console;
2
3 import java.awt.CardLayout JavaDoc;
4
5 import javax.swing.JPanel JavaDoc;
6 import javax.swing.tree.DefaultMutableTreeNode JavaDoc;
7 import javax.swing.tree.TreePath JavaDoc;
8
9 import org.sape.carbon.core.component.ComponentConfiguration;
10 import org.sape.carbon.core.config.Config;
11
12 /**
13  *
14  * @author Greg Hinkle
15  */

16 public class ConfigurationWizard extends javax.swing.JDialog JavaDoc {
17
18     private String JavaDoc directoryPath = null;
19     private Configurator mainConsoleWindow;
20     
21     private TreeView configTreeView;
22     private TreeView serviceTreeView;
23     private TreeView implTreeView;
24
25     /** Creates new form ConfigurationWizard */
26     public ConfigurationWizard(java.awt.Frame JavaDoc parent, boolean modal) {
27         super(parent, modal);
28         this.mainConsoleWindow = (Configurator) parent;
29         initComponents();
30         setup();
31     }
32     
33     public void setDirectoryPath(String JavaDoc path) {
34         this.directoryPath = path;
35     }
36
37
38     private void setup() {
39         
40         this.configTreeView = new TreeView();
41         this.jScrollPane1.setViewportView(this.configTreeView);
42         
43         this.serviceTreeView = new TreeView();
44         this.jScrollPane2.setViewportView(this.serviceTreeView);
45         
46         this.implTreeView = new TreeView();
47         this.jScrollPane3.setViewportView(this.implTreeView);
48             
49         //this.configTreeView.loadPackages(ComponentConfiguration.class,true,false);
50

51     }
52
53     /** This method is called from within the constructor to
54      * initialize the form.
55      * WARNING: Do NOT modify this code. The content of this method is
56      * always regenerated by the Form Editor.
57      */

58     private void initComponents() {//GEN-BEGIN:initComponents
59
java.awt.GridBagConstraints JavaDoc gridBagConstraints;
60
61         cardedJPanel = new javax.swing.JPanel JavaDoc();
62         selectConfig = new javax.swing.JPanel JavaDoc();
63         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
64         selectService = new javax.swing.JPanel JavaDoc();
65         jScrollPane2 = new javax.swing.JScrollPane JavaDoc();
66         selectImplementation = new javax.swing.JPanel JavaDoc();
67         jScrollPane3 = new javax.swing.JScrollPane JavaDoc();
68         bottomPanel = new javax.swing.JPanel JavaDoc();
69         jPanel5 = new javax.swing.JPanel JavaDoc();
70         jButton1 = new javax.swing.JButton JavaDoc();
71         nextButton = new javax.swing.JButton JavaDoc();
72         statusLabel = new javax.swing.JLabel JavaDoc();
73         jPanel1 = new javax.swing.JPanel JavaDoc();
74         jLabel1 = new javax.swing.JLabel JavaDoc();
75         nameTextField = new javax.swing.JTextField JavaDoc();
76
77         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
78             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
79                 closeDialog(evt);
80             }
81         });
82
83         cardedJPanel.setLayout(new java.awt.CardLayout JavaDoc());
84
85         selectConfig.setLayout(new java.awt.BorderLayout JavaDoc());
86
87         selectConfig.setBorder(new javax.swing.border.TitledBorder JavaDoc("1) Select Configuration"));
88         selectConfig.add(jScrollPane1, java.awt.BorderLayout.CENTER);
89
90         cardedJPanel.add(selectConfig, "card2");
91
92         selectService.setLayout(new java.awt.BorderLayout JavaDoc());
93
94         selectService.setBorder(new javax.swing.border.TitledBorder JavaDoc("2) Select Service Type"));
95         selectService.add(jScrollPane2, java.awt.BorderLayout.CENTER);
96
97         cardedJPanel.add(selectService, "card3");
98
99         selectImplementation.setLayout(new java.awt.BorderLayout JavaDoc());
100
101         selectImplementation.setBorder(new javax.swing.border.TitledBorder JavaDoc("3) Select Implementation"));
102         selectImplementation.add(jScrollPane3, java.awt.BorderLayout.CENTER);
103
104         cardedJPanel.add(selectImplementation, "card4");
105
106         getContentPane().add(cardedJPanel, java.awt.BorderLayout.CENTER);
107
108         bottomPanel.setLayout(new java.awt.BorderLayout JavaDoc());
109
110         jPanel5.setLayout(new java.awt.GridBagLayout JavaDoc());
111
112         jButton1.setText("Cancel");
113         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
114         gridBagConstraints.gridx = 1;
115         gridBagConstraints.gridy = 0;
116         gridBagConstraints.insets = new java.awt.Insets JavaDoc(13, 3, 13, 3);
117         jPanel5.add(jButton1, gridBagConstraints);
118
119         nextButton.setText("Next");
120         nextButton.setEnabled(false);
121         nextButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
122             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
123                 nextButtonActionPerformed(evt);
124             }
125         });
126
127         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
128         gridBagConstraints.gridx = 2;
129         gridBagConstraints.gridy = 0;
130         gridBagConstraints.insets = new java.awt.Insets JavaDoc(13, 8, 13, 8);
131         jPanel5.add(nextButton, gridBagConstraints);
132
133         bottomPanel.add(jPanel5, java.awt.BorderLayout.CENTER);
134
135         statusLabel.setFont(new java.awt.Font JavaDoc("Serif", 0, 12));
136         statusLabel.setText("Choose a configuration...");
137         bottomPanel.add(statusLabel, java.awt.BorderLayout.SOUTH);
138
139         getContentPane().add(bottomPanel, java.awt.BorderLayout.SOUTH);
140
141         jPanel1.setLayout(new java.awt.FlowLayout JavaDoc(java.awt.FlowLayout.LEFT));
142
143         jLabel1.setText("Configuration Name:");
144         jPanel1.add(jLabel1);
145
146         nameTextField.setColumns(20);
147         nameTextField.setMinimumSize(new java.awt.Dimension JavaDoc(80, 20));
148         jPanel1.add(nameTextField);
149
150         getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
151
152         pack();
153     }//GEN-END:initComponents
154

155     private void nextButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_nextButtonActionPerformed
156
// Add your handling code here:
157
CardLayout JavaDoc layout = ((CardLayout JavaDoc)((JPanel JavaDoc)this.cardedJPanel).getLayout());
158         layout.next(this.cardedJPanel);
159         if (this.step == 1) {
160             this.step = 2;
161             this.serviceTreeView.loadPackages(org.sape.carbon.core.component.FunctionalInterface.class,true,false);
162         } else if (this.step == 2) {
163             this.step = 3;
164             this.implTreeView.loadPackages(this.getServiceClass(),false,true);
165             this.nextButton.setText("Finish");
166         } else if (this.step == 3) {
167             String JavaDoc newName = this.directoryPath + "/" + this.nameTextField.getText(); // "/untitled";
168
ComponentConfiguration conf =
169                 (ComponentConfiguration)
170                 Config.getInstance().createConfiguration(this.getConfigClass());
171             conf.setFunctionalInterface(this.getServiceClass());
172             conf.setFunctionalImplementationClass(this.getServiceImplClass());
173
174             try {
175                 Config.getInstance().storeConfiguration(newName, conf);
176             } catch (Exception JavaDoc e) {
177                 e.printStackTrace();
178             }
179             this.closeDialog(null);
180             this.mainConsoleWindow.refreshConfigurations();
181         }
182     }//GEN-LAST:event_nextButtonActionPerformed
183

184     private void configTreeViewPropertyChange(java.beans.PropertyChangeEvent JavaDoc evt) {//GEN-FIRST:event_configTreeViewPropertyChange
185
// Add your handling code here:
186
Class JavaDoc configClass = this.getConfigClass();
187
188         if (configClass != null) {
189             //this.nextButton.enable(true);
190
this.nextButton.setEnabled(true);
191             this.nextButton.repaint();
192             this.statusLabel.setText("Choosen configuration: " + configClass);
193         } else {
194             this.nextButton.setEnabled(false);
195             this.statusLabel.setText("Please choose a configuration class.");
196         }
197
198     }//GEN-LAST:event_configTreeViewPropertyChange
199

200     public Class JavaDoc getConfigClass() {
201         TreePath JavaDoc path = this.configTreeView.getSelectionPath();
202         if (path == null)
203             return null;
204         DefaultMutableTreeNode JavaDoc treeNode =
205             (DefaultMutableTreeNode JavaDoc) path.getLastPathComponent();
206         Object JavaDoc nodeValue = treeNode.getUserObject();
207
208         if (nodeValue instanceof TreeView.ClassNode) {
209             return ((TreeView.ClassNode)nodeValue).getHoldingClass();
210         } else {
211             return null;
212         }
213     }
214
215     public Class JavaDoc getServiceClass() {
216         TreePath JavaDoc path = this.serviceTreeView.getSelectionPath();
217         if (path == null)
218             return null;
219         DefaultMutableTreeNode JavaDoc treeNode =
220             (DefaultMutableTreeNode JavaDoc) path.getLastPathComponent();
221         Object JavaDoc nodeValue = treeNode.getUserObject();
222
223         if (nodeValue instanceof TreeView.ClassNode) {
224             return ((TreeView.ClassNode)nodeValue).getHoldingClass();
225         } else {
226             return null;
227         }
228     }
229
230     public Class JavaDoc getServiceImplClass() {
231         TreePath JavaDoc path = this.implTreeView.getSelectionPath();
232         if (path == null)
233             return null;
234         DefaultMutableTreeNode JavaDoc treeNode =
235             (DefaultMutableTreeNode JavaDoc) path.getLastPathComponent();
236         Object JavaDoc nodeValue = treeNode.getUserObject();
237
238         if (nodeValue instanceof TreeView.ClassNode) {
239             return ((TreeView.ClassNode)nodeValue).getHoldingClass();
240         } else {
241             return null;
242         }
243     }
244
245     /** Closes the dialog */
246     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
247
setVisible(false);
248         dispose();
249     }//GEN-LAST:event_closeDialog
250

251     /**
252      * @param args the command line arguments
253      */

254     public static void main(String JavaDoc args[]) {
255         new ConfigurationWizard(new javax.swing.JFrame JavaDoc(), true).show();
256     }
257
258
259     // Variables declaration - do not modify//GEN-BEGIN:variables
260
private javax.swing.JPanel JavaDoc selectService;
261     private javax.swing.JScrollPane JavaDoc jScrollPane1;
262     private javax.swing.JLabel JavaDoc jLabel1;
263     private javax.swing.JPanel JavaDoc cardedJPanel;
264     private javax.swing.JLabel JavaDoc statusLabel;
265     private javax.swing.JButton JavaDoc jButton1;
266     private javax.swing.JPanel JavaDoc jPanel5;
267     private javax.swing.JScrollPane JavaDoc jScrollPane2;
268     private javax.swing.JPanel JavaDoc selectConfig;
269     private javax.swing.JPanel JavaDoc jPanel1;
270     private javax.swing.JPanel JavaDoc selectImplementation;
271     private javax.swing.JTextField JavaDoc nameTextField;
272     private javax.swing.JScrollPane JavaDoc jScrollPane3;
273     private javax.swing.JButton JavaDoc nextButton;
274     private javax.swing.JPanel JavaDoc bottomPanel;
275     // End of variables declaration//GEN-END:variables
276
int step = 1;
277 }
278
Popular Tags