1 16 17 package org.mc4j.console.connection.wizard; 18 19 import org.mc4j.console.connection.wizard.advanced.AdvancedPanel; 20 import org.mc4j.console.swing.ComponentBorder; 21 import org.mc4j.ems.connection.support.metadata.ConnectionTypeDescriptor; 22 import org.mc4j.ems.connection.ConnectionFactory; 23 import org.mc4j.ems.connection.settings.ConnectionSettings; 24 import org.openide.DialogDescriptor; 25 import org.openide.DialogDisplayer; 26 import org.openide.ErrorManager; 27 import org.openide.WizardDescriptor; 28 import org.openide.util.HelpCtx; 29 import org.openide.util.NbBundle; 30 31 import javax.swing.*; 32 import javax.swing.event.ChangeEvent ; 33 import javax.swing.event.ChangeListener ; 34 import java.awt.Color ; 35 import java.awt.Component ; 36 import java.awt.Dialog ; 37 import java.awt.event.ActionEvent ; 38 import java.awt.event.ActionListener ; 39 import java.net.MalformedURLException ; 40 import java.net.URL ; 41 import java.util.*; 42 43 52 public class ConnectionVisualPanel extends ComponentBorder implements WizardDescriptor.Panel { 53 54 59 private final ConnectionDescriptor connectionDescriptor; 60 61 private Properties advancedProperties; 62 63 64 65 66 public ConnectionVisualPanel(ConnectionDescriptor connectionDescriptor) { 67 super(new JComboBox(new Vector(ConnectionFactory.getConnectionTypes())), Color.darkGray, 2); 68 69 initComponents(); 70 setName(NbBundle.getMessage(ConnectionVisualPanel.class, "TITLE_WizardPanel")); 72 73 this.connectionDescriptor = connectionDescriptor; 74 75 ((JComboBox)getTitledComponent()).addActionListener( 76 new ActionListener () { 77 public void actionPerformed(ActionEvent evt) { 78 ConnectionTypeDescriptor type = (ConnectionTypeDescriptor) ((JComboBox)getTitledComponent()).getSelectedItem(); 79 prefill(type); 80 fireChangeEvent(); 81 } 82 }); 83 84 ((JComboBox)getTitledComponent()).setSelectedItem(connectionDescriptor.getSettings().getConnectionType()); 85 86 87 try { 91 putClientProperty("WizardPanel_helpURL", new URL ("nbresloc:/org/mc4j/console/connection/wizard/ConnectionVisualHelp.html")); } catch (MalformedURLException mfue) { 94 throw new IllegalStateException (mfue.toString()); 95 } 96 } 97 98 protected void prefill(ConnectionTypeDescriptor type) { 99 String dName = null, 100 dJndiName = null, 101 dInitialContext = null, 102 dServerUrl = null, 103 dPrinciple = null, 104 dCredentials = null, 105 dMessage = null; 106 107 Properties dAdvancedProperties = null; 108 109 dName = ""; 111 if (type != null) { 112 113 dJndiName = type.getDefaultJndiName(); 114 dInitialContext = type.getDefaultInitialContext(); 115 dServerUrl = type.getDefaultServerUrl(); 116 dPrinciple = type.getDefaultPrincipal(); 117 dCredentials = type.getDefaultCredentials(); 118 dMessage = type.getConnectionMessage(); 119 dAdvancedProperties = type.getDefaultAdvancedProperties(); 120 } 121 122 this.messageLabel.setText(dMessage); 123 124 this.jndiNameField.setEnabled(dJndiName != null); 125 this.jndiNameLabel.setEnabled(dJndiName != null); 126 this.jndiNameField.setText((dJndiName != null)?dJndiName:""); 127 128 129 this.initialContextFactoryComboBox.setEnabled(dInitialContext != null); 130 this.initialContextFactoryLabel.setEnabled(dInitialContext != null); 131 this.initialContextFactoryComboBox.setSelectedItem((dInitialContext != null)?dInitialContext:""); 132 133 this.serverURLComboBox.setEnabled(dServerUrl != null); 134 this.serverUrlLabel.setEnabled(dServerUrl != null); 135 this.serverURLComboBox.setSelectedItem((dServerUrl != null)?dServerUrl:""); 136 137 this.principleField.setEnabled(dPrinciple != null); 138 this.principleLabel.setEnabled(dPrinciple != null); 139 140 this.credentialsField.setEnabled(dCredentials != null); 141 this.credentialsLabel.setEnabled(dCredentials != null); 142 143 if (dAdvancedProperties != null) { 144 this.advancedProperties = dAdvancedProperties; 145 } 146 } 147 148 149 public void update() { 150 ConnectionSettings settings = this.connectionDescriptor.getSettings(); 151 settings.setConnectionType((ConnectionTypeDescriptor) ((JComboBox)getTitledComponent()).getSelectedItem()); 152 settings.setConnectionName(this.nameField.getText()); 153 settings.setJndiName(this.jndiNameField.getText()); 154 settings.setInitialContextName(this.initialContextFactoryComboBox.getSelectedItem().toString()); 155 settings.setServerUrl(this.serverURLComboBox.getSelectedItem().toString()); 156 settings.setPrincipal(this.principleField.getText()); 157 settings.setCredentials(this.credentialsField.getText()); 158 settings.setAdvancedProperties(this.advancedProperties); 159 } 160 161 public Component getComponent() { 162 return this; 163 } 164 165 public HelpCtx getHelp() { 166 return HelpCtx.DEFAULT_HELP; 168 } 171 172 public boolean isValid() { 173 return (this.nameField.getText().length() > 0); 175 } 179 180 private final Set listeners = new HashSet(1); public final void addChangeListener(ChangeListener l) { 182 synchronized (listeners) { 183 listeners.add(l); 184 } 185 } 186 public final void removeChangeListener(ChangeListener l) { 187 synchronized (listeners) { 188 listeners.remove(l); 189 } 190 } 191 protected final void fireChangeEvent() { 192 update(); 193 Iterator it; 194 synchronized (listeners) { 195 it = new HashSet(listeners).iterator(); 196 } 197 ChangeEvent ev = new ChangeEvent (this); 198 while (it.hasNext()) { 199 ((ChangeListener )it.next()).stateChanged(ev); 200 } 201 } 202 203 public void readSettings(Object settings) { 208 } 209 public void storeSettings(Object settings) { 210 update(); 211 } 212 213 218 private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; 220 221 serverTypeButtonGroup = new javax.swing.ButtonGroup (); 222 initialContextFactoryLabel = new javax.swing.JLabel (); 223 initialContextFactoryComboBox = new javax.swing.JComboBox (); 224 serverUrlLabel = new javax.swing.JLabel (); 225 serverURLComboBox = new javax.swing.JComboBox (); 226 principleLabel = new javax.swing.JLabel (); 227 credentialsLabel = new javax.swing.JLabel (); 228 principleField = new javax.swing.JTextField (); 229 credentialsField = new javax.swing.JPasswordField (); 230 nameField = new javax.swing.JTextField (); 231 nameLabel = new javax.swing.JLabel (); 232 jndiNameLabel = new javax.swing.JLabel (); 233 jndiNameField = new javax.swing.JTextField (); 234 messageLabel = new javax.swing.JTextArea (); 235 advancedButton = new javax.swing.JButton (); 236 jLabel1 = new javax.swing.JLabel (); 237 238 setLayout(new java.awt.GridBagLayout ()); 239 240 initialContextFactoryLabel.setText("Initial Context Factory"); 241 gridBagConstraints = new java.awt.GridBagConstraints (); 242 gridBagConstraints.gridx = 0; 243 gridBagConstraints.gridy = 4; 244 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 245 gridBagConstraints.weighty = 1.0; 246 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 247 add(initialContextFactoryLabel, gridBagConstraints); 248 249 initialContextFactoryComboBox.setEditable(true); 250 initialContextFactoryComboBox.setFont(new java.awt.Font ("Dialog", 0, 12)); 251 initialContextFactoryComboBox.setModel(new javax.swing.DefaultComboBoxModel (new String [] { "com.sun.jndi.rmi.registry.RegistryContextFactory", "weblogic.jndi.WLInitialContextFactory", "com.sun.jndi.cosnaming.CNCtxFactory", "org.jnp.interfaces.NamingContextFactory" })); 252 initialContextFactoryComboBox.setToolTipText("Select the initial context factory that will allow you to connect to the server's JNDI software."); 253 initialContextFactoryComboBox.setMinimumSize(new java.awt.Dimension (300, 20)); 254 initialContextFactoryComboBox.setPreferredSize(new java.awt.Dimension (300, 20)); 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridx = 1; 257 gridBagConstraints.gridy = 4; 258 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 259 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 260 gridBagConstraints.weightx = 1.0; 261 gridBagConstraints.weighty = 1.0; 262 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 263 add(initialContextFactoryComboBox, gridBagConstraints); 264 265 serverUrlLabel.setText("Server URL"); 266 gridBagConstraints = new java.awt.GridBagConstraints (); 267 gridBagConstraints.gridx = 0; 268 gridBagConstraints.gridy = 5; 269 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 270 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 271 add(serverUrlLabel, gridBagConstraints); 272 273 serverURLComboBox.setEditable(true); 274 serverURLComboBox.setFont(new java.awt.Font ("Dialog", 0, 12)); 275 serverURLComboBox.setModel(new javax.swing.DefaultComboBoxModel (new String [] { "rmi://localhost:1099", "t3://localhost:7001", "iiop://localhost:900", "jnp://localhost:1099" })); 276 serverURLComboBox.setMinimumSize(new java.awt.Dimension (120, 20)); 277 serverURLComboBox.setPreferredSize(new java.awt.Dimension (120, 20)); 278 gridBagConstraints = new java.awt.GridBagConstraints (); 279 gridBagConstraints.gridx = 1; 280 gridBagConstraints.gridy = 5; 281 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 282 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 283 gridBagConstraints.weightx = 1.0; 284 gridBagConstraints.weighty = 1.0; 285 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 286 add(serverURLComboBox, gridBagConstraints); 287 288 principleLabel.setText("Principle"); 289 gridBagConstraints = new java.awt.GridBagConstraints (); 290 gridBagConstraints.gridx = 0; 291 gridBagConstraints.gridy = 6; 292 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 293 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 294 add(principleLabel, gridBagConstraints); 295 296 credentialsLabel.setText("Credentials"); 297 gridBagConstraints = new java.awt.GridBagConstraints (); 298 gridBagConstraints.gridx = 0; 299 gridBagConstraints.gridy = 7; 300 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 301 gridBagConstraints.weighty = 0.2; 302 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 303 add(credentialsLabel, gridBagConstraints); 304 305 principleField.setToolTipText("Principle or User Name"); 306 gridBagConstraints = new java.awt.GridBagConstraints (); 307 gridBagConstraints.gridx = 1; 308 gridBagConstraints.gridy = 6; 309 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 310 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 311 gridBagConstraints.weightx = 1.0; 312 gridBagConstraints.weighty = 1.0; 313 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 314 add(principleField, gridBagConstraints); 315 316 credentialsField.setToolTipText("Credentials or password"); 317 gridBagConstraints = new java.awt.GridBagConstraints (); 318 gridBagConstraints.gridx = 1; 319 gridBagConstraints.gridy = 7; 320 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 321 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 322 gridBagConstraints.weightx = 1.0; 323 gridBagConstraints.weighty = 1.0; 324 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 325 add(credentialsField, gridBagConstraints); 326 327 nameField.addKeyListener(new java.awt.event.KeyAdapter () { 328 public void keyTyped(java.awt.event.KeyEvent evt) { 329 fireChangeEvent(evt); 330 } 331 }); 332 333 gridBagConstraints = new java.awt.GridBagConstraints (); 334 gridBagConstraints.gridx = 1; 335 gridBagConstraints.gridy = 2; 336 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 337 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 338 gridBagConstraints.weightx = 1.0; 339 gridBagConstraints.weighty = 1.0; 340 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 341 add(nameField, gridBagConstraints); 342 343 nameLabel.setText("Name"); 344 gridBagConstraints = new java.awt.GridBagConstraints (); 345 gridBagConstraints.gridx = 0; 346 gridBagConstraints.gridy = 2; 347 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 348 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 349 add(nameLabel, gridBagConstraints); 350 351 jndiNameLabel.setText("JNDI Name"); 352 gridBagConstraints = new java.awt.GridBagConstraints (); 353 gridBagConstraints.gridx = 0; 354 gridBagConstraints.gridy = 3; 355 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 356 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 357 add(jndiNameLabel, gridBagConstraints); 358 359 jndiNameField.setText("jrmp"); 360 gridBagConstraints = new java.awt.GridBagConstraints (); 361 gridBagConstraints.gridx = 1; 362 gridBagConstraints.gridy = 3; 363 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 364 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 365 gridBagConstraints.weightx = 1.0; 366 gridBagConstraints.weighty = 1.0; 367 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 368 add(jndiNameField, gridBagConstraints); 369 370 messageLabel.setEditable(false); 371 messageLabel.setForeground(new java.awt.Color (255, 0, 0)); 372 messageLabel.setLineWrap(true); 373 messageLabel.setRows(3); 374 messageLabel.setText("message text"); 375 messageLabel.setWrapStyleWord(true); 376 messageLabel.setOpaque(false); 377 gridBagConstraints = new java.awt.GridBagConstraints (); 378 gridBagConstraints.gridx = 0; 379 gridBagConstraints.gridy = 1; 380 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 381 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 382 gridBagConstraints.insets = new java.awt.Insets (5, 5, 5, 5); 383 add(messageLabel, gridBagConstraints); 384 385 advancedButton.setText("Advanced..."); 386 advancedButton.addActionListener(new java.awt.event.ActionListener () { 387 public void actionPerformed(java.awt.event.ActionEvent evt) { 388 advancedButtonActionPerformed(evt); 389 } 390 }); 391 392 gridBagConstraints = new java.awt.GridBagConstraints (); 393 gridBagConstraints.gridx = 1; 394 gridBagConstraints.gridy = 8; 395 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; 396 add(advancedButton, gridBagConstraints); 397 398 jLabel1.setText("Start by selecting your server connection type above"); 399 gridBagConstraints = new java.awt.GridBagConstraints (); 400 gridBagConstraints.gridx = 0; 401 gridBagConstraints.gridy = 0; 402 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 403 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 404 add(jLabel1, gridBagConstraints); 405 406 } 408 private void advancedButtonActionPerformed(java.awt.event.ActionEvent evt) { AdvancedPanel panel = new AdvancedPanel(this.advancedProperties); 410 411 DialogDescriptor descriptor = new DialogDescriptor(panel, "Advanced connection properties"); 412 413 final Dialog dialog = DialogDisplayer.getDefault().createDialog(descriptor); 414 415 try { 416 dialog.setVisible(true); 417 } catch (Exception e) { ErrorManager.getDefault().notify(e); 419 return; 420 } 421 422 if (descriptor.getValue() == WizardDescriptor.FINISH_OPTION) { 423 424 System.out.println("OK'ed the advanced props"); 425 this.advancedProperties = panel.getProperties(); 426 } 427 428 429 } 431 private void fireChangeEvent(java.awt.event.KeyEvent evt) { SwingUtilities.invokeLater(new Runnable () { 434 public void run() { 435 fireChangeEvent(); 436 } 437 }); 438 } 440 private javax.swing.JButton advancedButton; 442 private javax.swing.JTextField credentialsField; 443 private javax.swing.JLabel credentialsLabel; 444 private javax.swing.JComboBox initialContextFactoryComboBox; 445 private javax.swing.JLabel initialContextFactoryLabel; 446 private javax.swing.JLabel jLabel1; 447 private javax.swing.JTextField jndiNameField; 448 private javax.swing.JLabel jndiNameLabel; 449 private javax.swing.JTextArea messageLabel; 450 private javax.swing.JTextField nameField; 451 private javax.swing.JLabel nameLabel; 452 private javax.swing.JTextField principleField; 453 private javax.swing.JLabel principleLabel; 454 private javax.swing.ButtonGroup serverTypeButtonGroup; 455 private javax.swing.JComboBox serverURLComboBox; 456 private javax.swing.JLabel serverUrlLabel; 457 459 } 460 | Popular Tags |