1 19 24 25 package org.netbeans.modules.j2ee.sun.ide.j2ee.ui; 26 27 import java.io.File ; 28 import java.util.HashSet ; 29 import java.util.Iterator ; 30 import java.util.Set ; 31 import javax.swing.ComboBoxModel ; 32 import javax.swing.JFileChooser ; 33 import javax.swing.SwingUtilities ; 34 import javax.swing.event.ChangeEvent ; 35 import javax.swing.event.ChangeListener ; 36 import javax.swing.event.DocumentEvent ; 37 import javax.swing.event.DocumentListener ; 38 import javax.swing.event.ListDataListener ; 39 import org.netbeans.modules.j2ee.sun.api.ServerLocationManager; 40 import org.openide.ErrorManager; 41 import org.openide.filesystems.FileUtil; 42 import org.openide.util.NbBundle; 43 import org.openide.util.RequestProcessor; 44 45 49 public class AddInstanceVisualPlatformPanel extends javax.swing.JPanel { 50 51 private Object type; 52 53 54 public AddInstanceVisualPlatformPanel(File defaultLoc) { 55 initComponents(); 56 platformField.getDocument().addDocumentListener(new DocumentListener () { 57 public void changedUpdate(DocumentEvent e) { 58 fireChangeEvent(); 59 } 60 public void insertUpdate(DocumentEvent e) { 61 fireChangeEvent(); 62 } 63 public void removeUpdate(DocumentEvent e) { 64 fireChangeEvent(); 65 } 66 }); 67 platformField.setText(defaultLoc.getAbsolutePath()); 68 if (defaultLoc.canWrite()) { 69 type = AddDomainWizardIterator.DEFAULT; 70 registerDefault.setSelected(true); 71 } else { 72 type = AddDomainWizardIterator.PERSONAL; 73 createPersonal.setSelected(true); 74 } 75 instanceSelector.setModel(new ComboBoxModel () { 76 public void addListDataListener(ListDataListener listDataListener) { 77 } 78 public Object getElementAt(int i) { 79 return null; 80 } 81 public Object getSelectedItem() { 82 return null; 83 } 84 public int getSize() { 85 return 0; 86 } 87 public void removeListDataListener(ListDataListener listDataListener) { 88 } 89 public void setSelectedItem(Object object) { 90 } 91 }); 92 } 93 94 Object getSelectedType() { 95 return type; 96 } 97 98 String getInstallLocation() { 99 return platformField.getText(); 100 } 101 102 void setDomainsList(Object [] domainsList) { 103 if (domainsList != null) { 104 instanceSelector.setModel(new javax.swing.DefaultComboBoxModel (domainsList)); 105 } else { 106 instanceSelector.setModel(new javax.swing.DefaultComboBoxModel ()); 107 } 108 } 109 110 String getDomainDir() { 111 String retVal = null; 112 boolean okay = true; 113 String tmp = (String ) instanceSelector.getSelectedItem(); 114 if (null != tmp) { 115 int firstParen = tmp.lastIndexOf('('); 116 int lastParen = tmp.lastIndexOf(')'); 117 if (firstParen < 0) { 118 ErrorManager.getDefault().log(ErrorManager.ERROR, 119 NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, 120 "ERRMSG_PARSE_DOMAIN_DIR", tmp)); 121 okay = false; 122 } 123 if (okay && lastParen < 0) { 124 ErrorManager.getDefault().log(ErrorManager.ERROR, 125 NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, 126 "ERRMSG_PARSE_DOMAIN_DIR", tmp)); 127 okay = false; 128 } 129 if (okay && lastParen < firstParen) { 130 ErrorManager.getDefault().log(ErrorManager.ERROR, 131 NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, 132 "ERRMSG_PARSE_DOMAIN_DIR", tmp)); 133 okay = false; 134 } 135 if (okay) { 136 retVal = tmp.substring(firstParen+1,lastParen); 137 } 138 } 139 return retVal; 140 } 141 142 public String getName() { 143 return NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, 144 "StepName_EnterPlatformDirectory"); } 146 147 private Set listenrs = new HashSet (); 150 151 void addChangeListener(ChangeListener l) { 152 synchronized (listenrs) { 153 listenrs.add(l); 154 } 155 } 156 157 void removeChangeListener(ChangeListener l ) { 158 synchronized (listenrs) { 159 listenrs.remove(l); 160 } 161 } 162 163 RequestProcessor.Task changeEvent = null; 164 165 private void fireChangeEvent() { 166 if (changeEvent == null) { 169 changeEvent = RequestProcessor.getDefault().post(new Runnable () { 170 public void run() { 171 SwingUtilities.invokeLater(new Runnable () { 172 public void run() { 173 Iterator it; 174 synchronized (listenrs) { 175 it = new HashSet (listenrs).iterator(); 176 } 177 ChangeEvent ev = new ChangeEvent (this); 178 while (it.hasNext()) { 179 ((ChangeListener )it.next()).stateChanged(ev); 180 } 181 } 182 }); 183 184 } 185 }, 100); 186 } else { 187 changeEvent.schedule(100); 188 } 189 } 190 191 void setSelectedType(Object t, java.awt.event.ItemEvent evt) { 192 if (evt.getStateChange() == evt.SELECTED) { 193 type = t; 194 fireChangeEvent(); 195 } 196 } 197 198 private String browseInstallLocation(){ 199 String insLocation = null; 200 JFileChooser chooser = new PlatformInstChooser(); 201 String fname = platformField.getText(); 202 Util.decorateChooser(chooser,fname, 203 NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, 204 "LBL_Choose_Install")); int returnValue = chooser.showDialog(this, 206 NbBundle.getMessage(AddInstanceVisualDirectoryPanel.class, 207 "LBL_Choose_Button")); 209 if(returnValue == JFileChooser.APPROVE_OPTION){ 210 insLocation = chooser.getSelectedFile().getAbsolutePath(); 211 } 212 return insLocation; 213 } 214 215 private class PlatformInstChooser extends JFileChooser { 216 public void approveSelection() { 217 File dir = FileUtil.normalizeFile(getSelectedFile()); 218 219 if ( ServerLocationManager.isGoodAppServerLocation(dir) ) { 220 super.approveSelection(); 221 } else { 222 setCurrentDirectory( dir ); 223 } 224 } 225 226 } 227 228 233 private void initComponents() { 235 java.awt.GridBagConstraints gridBagConstraints; 236 237 instanceTypeButtonGroup = new javax.swing.ButtonGroup (); 238 description = new javax.swing.JLabel (); 239 platformFieldLabel = new javax.swing.JLabel (); 240 platformField = new javax.swing.JTextField (); 241 openDirectoryCooser = new javax.swing.JButton (); 242 registerDefault = new javax.swing.JRadioButton (); 243 instanceSelector = new javax.swing.JComboBox (); 244 registerLocal = new javax.swing.JRadioButton (); 245 registerRemote = new javax.swing.JRadioButton (); 246 createPersonal = new javax.swing.JRadioButton (); 247 spacingHack = new javax.swing.JLabel (); 248 instanceSelectorLabel = new javax.swing.JLabel (); 249 250 setLayout(new java.awt.GridBagLayout ()); 251 252 java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/sun/ide/j2ee/ui/Bundle"); description.setText(bundle.getString("TXT_platformPanelDescription")); description.setFocusable(false); 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridwidth = 5; 257 gridBagConstraints.gridheight = 3; 258 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 259 gridBagConstraints.insets = new java.awt.Insets (0, 0, 5, 0); 260 add(description, gridBagConstraints); 261 262 platformFieldLabel.setLabelFor(platformField); 263 org.openide.awt.Mnemonics.setLocalizedText(platformFieldLabel, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "platformFieldLabel")); gridBagConstraints = new java.awt.GridBagConstraints (); 265 gridBagConstraints.gridx = 0; 266 gridBagConstraints.gridy = 3; 267 gridBagConstraints.gridwidth = 2; 268 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 269 gridBagConstraints.insets = new java.awt.Insets (6, 0, 5, 6); 270 add(platformFieldLabel, gridBagConstraints); 271 272 platformField.setColumns(21); 273 gridBagConstraints = new java.awt.GridBagConstraints (); 274 gridBagConstraints.gridx = 2; 275 gridBagConstraints.gridy = 3; 276 gridBagConstraints.gridwidth = 2; 277 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 278 gridBagConstraints.weightx = 1.0; 279 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 6); 280 add(platformField, gridBagConstraints); 281 platformField.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_platformField")); 283 org.openide.awt.Mnemonics.setLocalizedText(openDirectoryCooser, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_openDirectoryChooser")); openDirectoryCooser.addActionListener(new java.awt.event.ActionListener () { 285 public void actionPerformed(java.awt.event.ActionEvent evt) { 286 openDirectoryCooserActionPerformed(evt); 287 } 288 }); 289 gridBagConstraints = new java.awt.GridBagConstraints (); 290 gridBagConstraints.gridx = 4; 291 gridBagConstraints.gridy = 3; 292 gridBagConstraints.insets = new java.awt.Insets (6, 7, 5, 0); 293 add(openDirectoryCooser, gridBagConstraints); 294 openDirectoryCooser.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_openDirectoryChooser")); 296 instanceTypeButtonGroup.add(registerDefault); 297 org.openide.awt.Mnemonics.setLocalizedText(registerDefault, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerDeafult")); registerDefault.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 299 registerDefault.setMargin(new java.awt.Insets (0, 0, 0, 0)); 300 registerDefault.addItemListener(new java.awt.event.ItemListener () { 301 public void itemStateChanged(java.awt.event.ItemEvent evt) { 302 registerDefaultItemStateChanged(evt); 303 } 304 }); 305 gridBagConstraints = new java.awt.GridBagConstraints (); 306 gridBagConstraints.gridx = 0; 307 gridBagConstraints.gridy = 4; 308 gridBagConstraints.gridwidth = 3; 309 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 310 gridBagConstraints.insets = new java.awt.Insets (6, 1, 5, 1); 311 add(registerDefault, gridBagConstraints); 312 registerDefault.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerDefault")); 314 instanceSelector.setModel(new javax.swing.DefaultComboBoxModel (new String [] { "Item 1", "Item 2", "Item 3", "Item 4" })); 315 instanceSelector.addActionListener(new java.awt.event.ActionListener () { 316 public void actionPerformed(java.awt.event.ActionEvent evt) { 317 instanceSelectorActionPerformed(evt); 318 } 319 }); 320 gridBagConstraints = new java.awt.GridBagConstraints (); 321 gridBagConstraints.gridx = 1; 322 gridBagConstraints.gridy = 5; 323 gridBagConstraints.gridwidth = 4; 324 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 325 gridBagConstraints.insets = new java.awt.Insets (6, 11, 5, 0); 326 add(instanceSelector, gridBagConstraints); 327 instanceSelector.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "Domain_A11Y_DESC")); 329 instanceTypeButtonGroup.add(registerLocal); 330 org.openide.awt.Mnemonics.setLocalizedText(registerLocal, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerLocal")); registerLocal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 332 registerLocal.setMargin(new java.awt.Insets (0, 0, 0, 0)); 333 registerLocal.addItemListener(new java.awt.event.ItemListener () { 334 public void itemStateChanged(java.awt.event.ItemEvent evt) { 335 registerLocalItemStateChanged(evt); 336 } 337 }); 338 gridBagConstraints = new java.awt.GridBagConstraints (); 339 gridBagConstraints.gridx = 0; 340 gridBagConstraints.gridy = 6; 341 gridBagConstraints.gridwidth = 3; 342 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 343 gridBagConstraints.insets = new java.awt.Insets (6, 0, 5, 0); 344 add(registerLocal, gridBagConstraints); 345 registerLocal.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerLocal")); 347 instanceTypeButtonGroup.add(registerRemote); 348 org.openide.awt.Mnemonics.setLocalizedText(registerRemote, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerRemote")); registerRemote.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 350 registerRemote.setMargin(new java.awt.Insets (0, 0, 0, 0)); 351 registerRemote.addItemListener(new java.awt.event.ItemListener () { 352 public void itemStateChanged(java.awt.event.ItemEvent evt) { 353 registerRemoteItemStateChanged(evt); 354 } 355 }); 356 gridBagConstraints = new java.awt.GridBagConstraints (); 357 gridBagConstraints.gridx = 0; 358 gridBagConstraints.gridy = 7; 359 gridBagConstraints.gridwidth = 3; 360 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 361 gridBagConstraints.insets = new java.awt.Insets (6, 0, 5, 0); 362 add(registerRemote, gridBagConstraints); 363 registerRemote.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerRemote")); 365 instanceTypeButtonGroup.add(createPersonal); 366 org.openide.awt.Mnemonics.setLocalizedText(createPersonal, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_createPersonal")); createPersonal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 368 createPersonal.setMargin(new java.awt.Insets (0, 0, 0, 0)); 369 createPersonal.addItemListener(new java.awt.event.ItemListener () { 370 public void itemStateChanged(java.awt.event.ItemEvent evt) { 371 createPersonalItemStateChanged(evt); 372 } 373 }); 374 gridBagConstraints = new java.awt.GridBagConstraints (); 375 gridBagConstraints.gridx = 0; 376 gridBagConstraints.gridy = 8; 377 gridBagConstraints.gridwidth = 3; 378 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 379 gridBagConstraints.insets = new java.awt.Insets (6, 0, 0, 0); 380 add(createPersonal, gridBagConstraints); 381 createPersonal.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_createPersonal")); 383 spacingHack.setEnabled(false); 384 spacingHack.setFocusable(false); 385 gridBagConstraints = new java.awt.GridBagConstraints (); 386 gridBagConstraints.gridx = 0; 387 gridBagConstraints.gridy = 9; 388 gridBagConstraints.weighty = 1.0; 389 add(spacingHack, gridBagConstraints); 390 391 instanceSelectorLabel.setLabelFor(instanceSelector); 392 org.openide.awt.Mnemonics.setLocalizedText(instanceSelectorLabel, bundle.getString("LBL_instanceSelectorLabel2")); gridBagConstraints = new java.awt.GridBagConstraints (); 394 gridBagConstraints.gridx = 0; 395 gridBagConstraints.gridy = 5; 396 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 397 gridBagConstraints.insets = new java.awt.Insets (6, 23, 5, 6); 398 add(instanceSelectorLabel, gridBagConstraints); 399 instanceSelectorLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "Domain_A11Y_DESC")); } 402 private void instanceSelectorActionPerformed(java.awt.event.ActionEvent evt) { fireChangeEvent(); 404 } 406 private void createPersonalItemStateChanged(java.awt.event.ItemEvent evt) { setSelectedType(AddDomainWizardIterator.PERSONAL,evt); 408 } 410 private void registerRemoteItemStateChanged(java.awt.event.ItemEvent evt) { setSelectedType(AddDomainWizardIterator.REMOTE,evt); 412 } 414 private void registerLocalItemStateChanged(java.awt.event.ItemEvent evt) { setSelectedType(AddDomainWizardIterator.LOCAL,evt); 416 } 418 private void registerDefaultItemStateChanged(java.awt.event.ItemEvent evt) { setSelectedType(AddDomainWizardIterator.DEFAULT,evt); 420 } 422 private void openDirectoryCooserActionPerformed(java.awt.event.ActionEvent evt) { String val = browseInstallLocation(); 424 if (null != val && val.length() >=1) { 425 platformField.setText(val); 426 } 427 } 429 ComboBoxModel getDomainsListModel() { 430 return instanceSelector.getModel(); 431 } 432 433 434 private javax.swing.JRadioButton createPersonal; 436 private javax.swing.JLabel description; 437 private javax.swing.JComboBox instanceSelector; 438 private javax.swing.JLabel instanceSelectorLabel; 439 private javax.swing.ButtonGroup instanceTypeButtonGroup; 440 private javax.swing.JButton openDirectoryCooser; 441 private javax.swing.JTextField platformField; 442 private javax.swing.JLabel platformFieldLabel; 443 private javax.swing.JRadioButton registerDefault; 444 private javax.swing.JRadioButton registerLocal; 445 private javax.swing.JRadioButton registerRemote; 446 private javax.swing.JLabel spacingHack; 447 449 } 450 | Popular Tags |