1 package org.sape.carbon.services.console; 2 3 import java.awt.CardLayout ; 4 5 import javax.swing.JPanel ; 6 import javax.swing.tree.DefaultMutableTreeNode ; 7 import javax.swing.tree.TreePath ; 8 9 import org.sape.carbon.core.component.ComponentConfiguration; 10 import org.sape.carbon.core.config.Config; 11 12 16 public class ConfigurationWizard extends javax.swing.JDialog { 17 18 private String directoryPath = null; 19 private Configurator mainConsoleWindow; 20 21 private TreeView configTreeView; 22 private TreeView serviceTreeView; 23 private TreeView implTreeView; 24 25 26 public ConfigurationWizard(java.awt.Frame parent, boolean modal) { 27 super(parent, modal); 28 this.mainConsoleWindow = (Configurator) parent; 29 initComponents(); 30 setup(); 31 } 32 33 public void setDirectoryPath(String 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 51 } 52 53 58 private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; 60 61 cardedJPanel = new javax.swing.JPanel (); 62 selectConfig = new javax.swing.JPanel (); 63 jScrollPane1 = new javax.swing.JScrollPane (); 64 selectService = new javax.swing.JPanel (); 65 jScrollPane2 = new javax.swing.JScrollPane (); 66 selectImplementation = new javax.swing.JPanel (); 67 jScrollPane3 = new javax.swing.JScrollPane (); 68 bottomPanel = new javax.swing.JPanel (); 69 jPanel5 = new javax.swing.JPanel (); 70 jButton1 = new javax.swing.JButton (); 71 nextButton = new javax.swing.JButton (); 72 statusLabel = new javax.swing.JLabel (); 73 jPanel1 = new javax.swing.JPanel (); 74 jLabel1 = new javax.swing.JLabel (); 75 nameTextField = new javax.swing.JTextField (); 76 77 addWindowListener(new java.awt.event.WindowAdapter () { 78 public void windowClosing(java.awt.event.WindowEvent evt) { 79 closeDialog(evt); 80 } 81 }); 82 83 cardedJPanel.setLayout(new java.awt.CardLayout ()); 84 85 selectConfig.setLayout(new java.awt.BorderLayout ()); 86 87 selectConfig.setBorder(new javax.swing.border.TitledBorder ("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 ()); 93 94 selectService.setBorder(new javax.swing.border.TitledBorder ("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 ()); 100 101 selectImplementation.setBorder(new javax.swing.border.TitledBorder ("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 ()); 109 110 jPanel5.setLayout(new java.awt.GridBagLayout ()); 111 112 jButton1.setText("Cancel"); 113 gridBagConstraints = new java.awt.GridBagConstraints (); 114 gridBagConstraints.gridx = 1; 115 gridBagConstraints.gridy = 0; 116 gridBagConstraints.insets = new java.awt.Insets (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 () { 122 public void actionPerformed(java.awt.event.ActionEvent evt) { 123 nextButtonActionPerformed(evt); 124 } 125 }); 126 127 gridBagConstraints = new java.awt.GridBagConstraints (); 128 gridBagConstraints.gridx = 2; 129 gridBagConstraints.gridy = 0; 130 gridBagConstraints.insets = new java.awt.Insets (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 ("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 (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 (80, 20)); 148 jPanel1.add(nameTextField); 149 150 getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH); 151 152 pack(); 153 } 155 private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) { CardLayout layout = ((CardLayout )((JPanel )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 newName = this.directoryPath + "/" + this.nameTextField.getText(); 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 e) { 177 e.printStackTrace(); 178 } 179 this.closeDialog(null); 180 this.mainConsoleWindow.refreshConfigurations(); 181 } 182 } 184 private void configTreeViewPropertyChange(java.beans.PropertyChangeEvent evt) { Class configClass = this.getConfigClass(); 187 188 if (configClass != null) { 189 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 } 200 public Class getConfigClass() { 201 TreePath path = this.configTreeView.getSelectionPath(); 202 if (path == null) 203 return null; 204 DefaultMutableTreeNode treeNode = 205 (DefaultMutableTreeNode ) path.getLastPathComponent(); 206 Object 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 getServiceClass() { 216 TreePath path = this.serviceTreeView.getSelectionPath(); 217 if (path == null) 218 return null; 219 DefaultMutableTreeNode treeNode = 220 (DefaultMutableTreeNode ) path.getLastPathComponent(); 221 Object 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 getServiceImplClass() { 231 TreePath path = this.implTreeView.getSelectionPath(); 232 if (path == null) 233 return null; 234 DefaultMutableTreeNode treeNode = 235 (DefaultMutableTreeNode ) path.getLastPathComponent(); 236 Object 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 246 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 248 dispose(); 249 } 251 254 public static void main(String args[]) { 255 new ConfigurationWizard(new javax.swing.JFrame (), true).show(); 256 } 257 258 259 private javax.swing.JPanel selectService; 261 private javax.swing.JScrollPane jScrollPane1; 262 private javax.swing.JLabel jLabel1; 263 private javax.swing.JPanel cardedJPanel; 264 private javax.swing.JLabel statusLabel; 265 private javax.swing.JButton jButton1; 266 private javax.swing.JPanel jPanel5; 267 private javax.swing.JScrollPane jScrollPane2; 268 private javax.swing.JPanel selectConfig; 269 private javax.swing.JPanel jPanel1; 270 private javax.swing.JPanel selectImplementation; 271 private javax.swing.JTextField nameTextField; 272 private javax.swing.JScrollPane jScrollPane3; 273 private javax.swing.JButton nextButton; 274 private javax.swing.JPanel bottomPanel; 275 int step = 1; 277 } 278 | Popular Tags |