KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > sun > ide > j2ee > ui > AddInstanceVisualPlatformPanel


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 /*
20  * AddInstanceVisualPlatformPanel.java
21  *
22  * Created on October 28, 2005, 9:30 PM
23  */

24
25 package org.netbeans.modules.j2ee.sun.ide.j2ee.ui;
26
27 import java.io.File JavaDoc;
28 import java.util.HashSet JavaDoc;
29 import java.util.Iterator JavaDoc;
30 import java.util.Set JavaDoc;
31 import javax.swing.ComboBoxModel JavaDoc;
32 import javax.swing.JFileChooser JavaDoc;
33 import javax.swing.SwingUtilities JavaDoc;
34 import javax.swing.event.ChangeEvent JavaDoc;
35 import javax.swing.event.ChangeListener JavaDoc;
36 import javax.swing.event.DocumentEvent JavaDoc;
37 import javax.swing.event.DocumentListener JavaDoc;
38 import javax.swing.event.ListDataListener JavaDoc;
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 /**
46  *
47  * @author vkraemer
48  */

49 public class AddInstanceVisualPlatformPanel extends javax.swing.JPanel JavaDoc {
50     
51     private Object JavaDoc type;
52     
53     /** Creates new form AddInstanceVisualPlatformPanel */
54     public AddInstanceVisualPlatformPanel(File JavaDoc defaultLoc) {
55         initComponents();
56         platformField.getDocument().addDocumentListener(new DocumentListener JavaDoc() {
57             public void changedUpdate(DocumentEvent JavaDoc e) {
58                 fireChangeEvent();
59             }
60             public void insertUpdate(DocumentEvent JavaDoc e) {
61                 fireChangeEvent();
62             }
63             public void removeUpdate(DocumentEvent JavaDoc 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 JavaDoc() {
76             public void addListDataListener(ListDataListener JavaDoc listDataListener) {
77             }
78             public Object JavaDoc getElementAt(int i) {
79                 return null;
80             }
81             public Object JavaDoc getSelectedItem() {
82                 return null;
83             }
84             public int getSize() {
85                 return 0;
86             }
87             public void removeListDataListener(ListDataListener JavaDoc listDataListener) {
88             }
89             public void setSelectedItem(Object JavaDoc object) {
90             }
91         });
92     }
93     
94     Object JavaDoc getSelectedType() {
95         return type;
96     }
97     
98     String JavaDoc getInstallLocation() {
99         return platformField.getText();
100     }
101     
102     void setDomainsList(Object JavaDoc[] domainsList) {
103         if (domainsList != null) {
104             instanceSelector.setModel(new javax.swing.DefaultComboBoxModel JavaDoc(domainsList));
105         } else {
106             instanceSelector.setModel(new javax.swing.DefaultComboBoxModel JavaDoc());
107         }
108     }
109     
110     String JavaDoc getDomainDir() {
111         String JavaDoc retVal = null;
112         boolean okay = true;
113         String JavaDoc tmp = (String JavaDoc) 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 JavaDoc getName() {
143         return NbBundle.getMessage(AddInstanceVisualPlatformPanel.class,
144                 "StepName_EnterPlatformDirectory"); // NOI18N
145
}
146     
147     // Event Handling
148
//
149
private Set JavaDoc/*<ChangeListener.*/ listenrs = new HashSet JavaDoc/*<Changelisteners.*/();
150     
151     void addChangeListener(ChangeListener JavaDoc l) {
152         synchronized (listenrs) {
153             listenrs.add(l);
154         }
155     }
156     
157     void removeChangeListener(ChangeListener JavaDoc l ) {
158         synchronized (listenrs) {
159             listenrs.remove(l);
160         }
161     }
162     
163     RequestProcessor.Task changeEvent = null;
164     
165     private void fireChangeEvent() {
166         // don't go so fast here, since this can get called a lot from the
167
// document listener
168
if (changeEvent == null) {
169             changeEvent = RequestProcessor.getDefault().post(new Runnable JavaDoc() {
170                 public void run() {
171                     SwingUtilities.invokeLater(new Runnable JavaDoc() {
172                         public void run() {
173                             Iterator JavaDoc it;
174                             synchronized (listenrs) {
175                                 it = new HashSet JavaDoc(listenrs).iterator();
176                             }
177                             ChangeEvent JavaDoc ev = new ChangeEvent JavaDoc(this);
178                             while (it.hasNext()) {
179                                 ((ChangeListener JavaDoc)it.next()).stateChanged(ev);
180                             }
181                         }
182                     });
183                     
184                 }
185             }, 100);
186         } else {
187             changeEvent.schedule(100);
188         }
189     }
190     
191     void setSelectedType(Object JavaDoc t, java.awt.event.ItemEvent JavaDoc evt) {
192         if (evt.getStateChange() == evt.SELECTED) {
193             type = t;
194             fireChangeEvent();
195         }
196     }
197     
198     private String JavaDoc browseInstallLocation(){
199         String JavaDoc insLocation = null;
200         JFileChooser JavaDoc chooser = new PlatformInstChooser();
201         String JavaDoc fname = platformField.getText();
202         Util.decorateChooser(chooser,fname,
203                 NbBundle.getMessage(AddInstanceVisualPlatformPanel.class,
204                 "LBL_Choose_Install")); //NOI18M
205
int returnValue = chooser.showDialog(this,
206                 NbBundle.getMessage(AddInstanceVisualDirectoryPanel.class,
207                 "LBL_Choose_Button")); //NOI18N
208

209         if(returnValue == JFileChooser.APPROVE_OPTION){
210             insLocation = chooser.getSelectedFile().getAbsolutePath();
211         }
212         return insLocation;
213     }
214     
215     private class PlatformInstChooser extends JFileChooser JavaDoc {
216         public void approveSelection() {
217             File JavaDoc dir = FileUtil.normalizeFile(getSelectedFile());
218             
219             if ( ServerLocationManager.isGoodAppServerLocation(dir) ) {
220                 super.approveSelection();
221             } else {
222                 setCurrentDirectory( dir );
223             }
224         }
225         
226     }
227     
228     /** This method is called from within the constructor to
229      * initialize the form.
230      * WARNING: Do NOT modify this code. The content of this method is
231      * always regenerated by the Form Editor.
232      */

233     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
234
private void initComponents() {
235         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
236
237         instanceTypeButtonGroup = new javax.swing.ButtonGroup JavaDoc();
238         description = new javax.swing.JLabel JavaDoc();
239         platformFieldLabel = new javax.swing.JLabel JavaDoc();
240         platformField = new javax.swing.JTextField JavaDoc();
241         openDirectoryCooser = new javax.swing.JButton JavaDoc();
242         registerDefault = new javax.swing.JRadioButton JavaDoc();
243         instanceSelector = new javax.swing.JComboBox JavaDoc();
244         registerLocal = new javax.swing.JRadioButton JavaDoc();
245         registerRemote = new javax.swing.JRadioButton JavaDoc();
246         createPersonal = new javax.swing.JRadioButton JavaDoc();
247         spacingHack = new javax.swing.JLabel JavaDoc();
248         instanceSelectorLabel = new javax.swing.JLabel JavaDoc();
249
250         setLayout(new java.awt.GridBagLayout JavaDoc());
251
252         java.util.ResourceBundle JavaDoc bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/sun/ide/j2ee/ui/Bundle"); // NOI18N
253
description.setText(bundle.getString("TXT_platformPanelDescription")); // NOI18N
254
description.setFocusable(false);
255         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
256         gridBagConstraints.gridwidth = 5;
257         gridBagConstraints.gridheight = 3;
258         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
259         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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")); // NOI18N
264
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 0, 5, 6);
270         add(platformFieldLabel, gridBagConstraints);
271
272         platformField.setColumns(21);
273         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 6, 5, 6);
280         add(platformField, gridBagConstraints);
281         platformField.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_platformField")); // NOI18N
282

283         org.openide.awt.Mnemonics.setLocalizedText(openDirectoryCooser, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_openDirectoryChooser")); // NOI18N
284
openDirectoryCooser.addActionListener(new java.awt.event.ActionListener JavaDoc() {
285             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
286                 openDirectoryCooserActionPerformed(evt);
287             }
288         });
289         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
290         gridBagConstraints.gridx = 4;
291         gridBagConstraints.gridy = 3;
292         gridBagConstraints.insets = new java.awt.Insets JavaDoc(6, 7, 5, 0);
293         add(openDirectoryCooser, gridBagConstraints);
294         openDirectoryCooser.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_openDirectoryChooser")); // NOI18N
295

296         instanceTypeButtonGroup.add(registerDefault);
297         org.openide.awt.Mnemonics.setLocalizedText(registerDefault, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerDeafult")); // NOI18N
298
registerDefault.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
299         registerDefault.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
300         registerDefault.addItemListener(new java.awt.event.ItemListener JavaDoc() {
301             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
302                 registerDefaultItemStateChanged(evt);
303             }
304         });
305         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 1, 5, 1);
311         add(registerDefault, gridBagConstraints);
312         registerDefault.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerDefault")); // NOI18N
313

314         instanceSelector.setModel(new javax.swing.DefaultComboBoxModel JavaDoc(new String JavaDoc[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
315         instanceSelector.addActionListener(new java.awt.event.ActionListener JavaDoc() {
316             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
317                 instanceSelectorActionPerformed(evt);
318             }
319         });
320         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 11, 5, 0);
326         add(instanceSelector, gridBagConstraints);
327         instanceSelector.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "Domain_A11Y_DESC")); // NOI18N
328

329         instanceTypeButtonGroup.add(registerLocal);
330         org.openide.awt.Mnemonics.setLocalizedText(registerLocal, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerLocal")); // NOI18N
331
registerLocal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
332         registerLocal.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
333         registerLocal.addItemListener(new java.awt.event.ItemListener JavaDoc() {
334             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
335                 registerLocalItemStateChanged(evt);
336             }
337         });
338         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 0, 5, 0);
344         add(registerLocal, gridBagConstraints);
345         registerLocal.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerLocal")); // NOI18N
346

347         instanceTypeButtonGroup.add(registerRemote);
348         org.openide.awt.Mnemonics.setLocalizedText(registerRemote, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_registerRemote")); // NOI18N
349
registerRemote.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
350         registerRemote.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
351         registerRemote.addItemListener(new java.awt.event.ItemListener JavaDoc() {
352             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
353                 registerRemoteItemStateChanged(evt);
354             }
355         });
356         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 0, 5, 0);
362         add(registerRemote, gridBagConstraints);
363         registerRemote.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_registerRemote")); // NOI18N
364

365         instanceTypeButtonGroup.add(createPersonal);
366         org.openide.awt.Mnemonics.setLocalizedText(createPersonal, org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "LBL_createPersonal")); // NOI18N
367
createPersonal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
368         createPersonal.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
369         createPersonal.addItemListener(new java.awt.event.ItemListener JavaDoc() {
370             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
371                 createPersonalItemStateChanged(evt);
372             }
373         });
374         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 0, 0, 0);
380         add(createPersonal, gridBagConstraints);
381         createPersonal.getAccessibleContext().setAccessibleDescription(bundle.getString("DSC_createPersonal")); // NOI18N
382

383         spacingHack.setEnabled(false);
384         spacingHack.setFocusable(false);
385         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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")); // NOI18N
393
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
394         gridBagConstraints.gridx = 0;
395         gridBagConstraints.gridy = 5;
396         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
397         gridBagConstraints.insets = new java.awt.Insets JavaDoc(6, 23, 5, 6);
398         add(instanceSelectorLabel, gridBagConstraints);
399         instanceSelectorLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AddInstanceVisualPlatformPanel.class, "Domain_A11Y_DESC")); // NOI18N
400
}// </editor-fold>//GEN-END:initComponents
401

402     private void instanceSelectorActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_instanceSelectorActionPerformed
403
fireChangeEvent();
404     }//GEN-LAST:event_instanceSelectorActionPerformed
405

406     private void createPersonalItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_createPersonalItemStateChanged
407
setSelectedType(AddDomainWizardIterator.PERSONAL,evt);
408     }//GEN-LAST:event_createPersonalItemStateChanged
409

410     private void registerRemoteItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_registerRemoteItemStateChanged
411
setSelectedType(AddDomainWizardIterator.REMOTE,evt);
412     }//GEN-LAST:event_registerRemoteItemStateChanged
413

414     private void registerLocalItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_registerLocalItemStateChanged
415
setSelectedType(AddDomainWizardIterator.LOCAL,evt);
416     }//GEN-LAST:event_registerLocalItemStateChanged
417

418     private void registerDefaultItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_registerDefaultItemStateChanged
419
setSelectedType(AddDomainWizardIterator.DEFAULT,evt);
420     }//GEN-LAST:event_registerDefaultItemStateChanged
421

422     private void openDirectoryCooserActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_openDirectoryCooserActionPerformed
423
String JavaDoc val = browseInstallLocation();
424         if (null != val && val.length() >=1) {
425             platformField.setText(val);
426         }
427     }//GEN-LAST:event_openDirectoryCooserActionPerformed
428

429     ComboBoxModel JavaDoc getDomainsListModel() {
430         return instanceSelector.getModel();
431     }
432     
433     
434     // Variables declaration - do not modify//GEN-BEGIN:variables
435
private javax.swing.JRadioButton JavaDoc createPersonal;
436     private javax.swing.JLabel JavaDoc description;
437     private javax.swing.JComboBox JavaDoc instanceSelector;
438     private javax.swing.JLabel JavaDoc instanceSelectorLabel;
439     private javax.swing.ButtonGroup JavaDoc instanceTypeButtonGroup;
440     private javax.swing.JButton JavaDoc openDirectoryCooser;
441     private javax.swing.JTextField JavaDoc platformField;
442     private javax.swing.JLabel JavaDoc platformFieldLabel;
443     private javax.swing.JRadioButton JavaDoc registerDefault;
444     private javax.swing.JRadioButton JavaDoc registerLocal;
445     private javax.swing.JRadioButton JavaDoc registerRemote;
446     private javax.swing.JLabel JavaDoc spacingHack;
447     // End of variables declaration//GEN-END:variables
448

449 }
450
Popular Tags