KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > clientproject > ui > customizer > CustomizerRun


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 package org.netbeans.modules.j2ee.clientproject.ui.customizer;
21
22 import java.awt.Dialog JavaDoc;
23 import java.awt.event.ActionEvent JavaDoc;
24 import java.awt.event.ActionListener JavaDoc;
25 import java.awt.event.MouseEvent JavaDoc;
26 import java.io.File JavaDoc;
27 import javax.swing.JButton JavaDoc;
28 import javax.swing.JFileChooser JavaDoc;
29 import javax.swing.JPanel JavaDoc;
30 import javax.swing.JTextField JavaDoc;
31 import javax.swing.event.ChangeEvent JavaDoc;
32 import javax.swing.event.ChangeListener JavaDoc;
33 import org.netbeans.modules.j2ee.clientproject.AppClientProject;
34 import org.netbeans.modules.j2ee.clientproject.SourceRoots;
35 import org.openide.DialogDescriptor;
36 import org.openide.DialogDisplayer;
37 import org.openide.awt.MouseUtils;
38 import org.openide.filesystems.FileUtil;
39 import org.openide.util.HelpCtx;
40 import org.openide.util.NbBundle;
41
42 /**
43  *
44  * @author phrebejk
45  */

46 public class CustomizerRun extends JPanel JavaDoc implements HelpCtx.Provider {
47     
48     private AppClientProject project;
49     
50     public CustomizerRun( AppClientProjectProperties uiProperties ) {
51         initComponents();
52         
53         this.project = uiProperties.getProject();
54         
55         jTextFieldMainClass.setDocument( uiProperties.MAIN_CLASS_MODEL );
56         jTextFieldArgs.setDocument( uiProperties.APPLICATION_ARGS_MODEL );
57         jTextVMOptions.setDocument( uiProperties.RUN_JVM_ARGS_MODEL );
58         jTextWorkingDirectory.setDocument( uiProperties.RUN_WORK_DIR_MODEL );
59         
60         jButtonMainClass.addActionListener( new MainClassListener( project.getSourceRoots(), jTextFieldMainClass ) );
61         
62         jComboBoxJ2eeSpecVersion.setModel (uiProperties.J2EE_PLATFORM_MODEL );
63         jComboBoxServer.setModel (uiProperties.J2EE_SERVER_INSTANCE_MODEL );
64     }
65     
66     public HelpCtx getHelpCtx() {
67         return new HelpCtx( CustomizerRun.class );
68     }
69     
70     /** This method is called from within the constructor to
71      * initialize the form.
72      * WARNING: Do NOT modify this code. The content of this method is
73      * always regenerated by the Form Editor.
74      */

75     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
76
private void initComponents() {
77         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
78
79         jLabelMainClass = new javax.swing.JLabel JavaDoc();
80         jTextFieldMainClass = new javax.swing.JTextField JavaDoc();
81         jButtonMainClass = new javax.swing.JButton JavaDoc();
82         jLabelArgs = new javax.swing.JLabel JavaDoc();
83         jTextFieldArgs = new javax.swing.JTextField JavaDoc();
84         jLabelWorkingDirectory = new javax.swing.JLabel JavaDoc();
85         jTextWorkingDirectory = new javax.swing.JTextField JavaDoc();
86         jButtonWorkingDirectoryBrowse = new javax.swing.JButton JavaDoc();
87         jLabelVMOptions = new javax.swing.JLabel JavaDoc();
88         jTextVMOptions = new javax.swing.JTextField JavaDoc();
89         jLabelVMOptionsExample = new javax.swing.JLabel JavaDoc();
90         jLabelServer = new javax.swing.JLabel JavaDoc();
91         jComboBoxServer = new javax.swing.JComboBox JavaDoc();
92         jLabelJ2EE = new javax.swing.JLabel JavaDoc();
93         jComboBoxJ2eeSpecVersion = new javax.swing.JComboBox JavaDoc();
94         jLabelWarnDdChange = new javax.swing.JLabel JavaDoc();
95
96         setLayout(new java.awt.GridBagLayout JavaDoc());
97
98         jLabelMainClass.setLabelFor(jTextFieldMainClass);
99         org.openide.awt.Mnemonics.setLocalizedText(jLabelMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JLabel")); // NOI18N
100
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
101         gridBagConstraints.gridy = 2;
102         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
103         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 5, 0);
104         add(jLabelMainClass, gridBagConstraints);
105         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
106         gridBagConstraints.gridy = 2;
107         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
108         gridBagConstraints.weightx = 1.0;
109         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 5, 0);
110         add(jTextFieldMainClass, gridBagConstraints);
111         jTextFieldMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerRun.class, "AD_jTextFieldMainClass")); // NOI18N
112

113         org.openide.awt.Mnemonics.setLocalizedText(jButtonMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JButton")); // NOI18N
114
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
115         gridBagConstraints.gridy = 2;
116         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
117         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
118         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 6, 5, 0);
119         add(jButtonMainClass, gridBagConstraints);
120         jButtonMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jButtonMainClass")); // NOI18N
121

122         jLabelArgs.setLabelFor(jTextFieldArgs);
123         org.openide.awt.Mnemonics.setLocalizedText(jLabelArgs, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Args_JLabel")); // NOI18N
124
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
125         gridBagConstraints.gridy = 3;
126         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
127         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 12, 0);
128         add(jLabelArgs, gridBagConstraints);
129         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
130         gridBagConstraints.gridy = 3;
131         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
132         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
133         gridBagConstraints.weightx = 1.0;
134         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 12, 0);
135         add(jTextFieldArgs, gridBagConstraints);
136         jTextFieldArgs.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jTextFieldArgs")); // NOI18N
137

138         jLabelWorkingDirectory.setLabelFor(jTextWorkingDirectory);
139         org.openide.awt.Mnemonics.setLocalizedText(jLabelWorkingDirectory, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory")); // NOI18N
140
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
141         gridBagConstraints.gridy = 4;
142         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
143         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 5, 0);
144         add(jLabelWorkingDirectory, gridBagConstraints);
145         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
146         gridBagConstraints.gridy = 4;
147         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
148         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
149         gridBagConstraints.weightx = 1.0;
150         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 5, 0);
151         add(jTextWorkingDirectory, gridBagConstraints);
152         jTextWorkingDirectory.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerRun.class, "AD_CustomizeRun_Run_Working_Directory")); // NOI18N
153

154         org.openide.awt.Mnemonics.setLocalizedText(jButtonWorkingDirectoryBrowse, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory_Browse")); // NOI18N
155
jButtonWorkingDirectoryBrowse.addActionListener(new java.awt.event.ActionListener JavaDoc() {
156             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
157                 jButtonWorkingDirectoryBrowseActionPerformed(evt);
158             }
159         });
160         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
161         gridBagConstraints.gridy = 4;
162         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
163         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
164         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 6, 5, 0);
165         add(jButtonWorkingDirectoryBrowse, gridBagConstraints);
166         jButtonWorkingDirectoryBrowse.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerRun.class, "AD_CustomizeRun_Run_Working_Directory_Browse")); // NOI18N
167

168         jLabelVMOptions.setLabelFor(jTextVMOptions);
169         org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptions, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options")); // NOI18N
170
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
171         gridBagConstraints.gridy = 5;
172         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
173         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 5, 0);
174         add(jLabelVMOptions, gridBagConstraints);
175         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
176         gridBagConstraints.gridy = 5;
177         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
178         gridBagConstraints.weightx = 1.0;
179         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 0, 0);
180         add(jTextVMOptions, gridBagConstraints);
181         jTextVMOptions.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerRun.class, "AD_CustomizeRun_Run_VM_Options")); // NOI18N
182

183         jLabelVMOptionsExample.setLabelFor(jTextFieldMainClass);
184         org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptionsExample, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options_Example")); // NOI18N
185
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
186         gridBagConstraints.gridx = 1;
187         gridBagConstraints.gridy = 6;
188         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
189         gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER;
190         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
191         gridBagConstraints.weighty = 1.0;
192         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 12, 0);
193         add(jLabelVMOptionsExample, gridBagConstraints);
194         jLabelVMOptionsExample.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options_Example")); // NOI18N
195

196         org.openide.awt.Mnemonics.setLocalizedText(jLabelServer, NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Server_JLabel")); // NOI18N
197
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
198         gridBagConstraints.gridx = 0;
199         gridBagConstraints.gridy = 0;
200         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
201         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
202         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 5, 0);
203         add(jLabelServer, gridBagConstraints);
204         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
205         gridBagConstraints.gridx = 1;
206         gridBagConstraints.gridy = 0;
207         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
208         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
209         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 5, 0);
210         add(jComboBoxServer, gridBagConstraints);
211
212         org.openide.awt.Mnemonics.setLocalizedText(jLabelJ2EE, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_J2EE_JLabel")); // NOI18N
213
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
214         gridBagConstraints.gridx = 0;
215         gridBagConstraints.gridy = 1;
216         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
217         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 12, 0);
218         add(jLabelJ2EE, gridBagConstraints);
219
220         jComboBoxJ2eeSpecVersion.setEnabled(false);
221         jComboBoxJ2eeSpecVersion.setPrototypeDisplayValue("MMMMMMMMM" /* "Java EE 5" */);
222         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
223         gridBagConstraints.gridx = 1;
224         gridBagConstraints.gridy = 1;
225         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
226         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 12, 12, 0);
227         add(jComboBoxJ2eeSpecVersion, gridBagConstraints);
228
229         jLabelWarnDdChange.setForeground(new java.awt.Color JavaDoc(89, 71, 191));
230         org.openide.awt.Mnemonics.setLocalizedText(jLabelWarnDdChange, " ");
231         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
232         gridBagConstraints.gridx = 0;
233         gridBagConstraints.gridy = 10;
234         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
235         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
236         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
237         gridBagConstraints.weightx = 1.0;
238         add(jLabelWarnDdChange, gridBagConstraints);
239     }// </editor-fold>//GEN-END:initComponents
240

241     private void jButtonWorkingDirectoryBrowseActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonWorkingDirectoryBrowseActionPerformed
242
JFileChooser JavaDoc chooser = new JFileChooser JavaDoc();
243         FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
244         chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
245         chooser.setMultiSelectionEnabled(false);
246         
247         String JavaDoc workDir = jTextWorkingDirectory.getText();
248         if (workDir.equals("")) {
249             workDir = FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath();
250         }
251         chooser.setSelectedFile(new File JavaDoc(workDir));
252         chooser.setDialogTitle(NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory_Browse_Title"));
253         if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) { //NOI18N
254
File JavaDoc file = FileUtil.normalizeFile(chooser.getSelectedFile());
255             jTextWorkingDirectory.setText(file.getAbsolutePath());
256         }
257     }//GEN-LAST:event_jButtonWorkingDirectoryBrowseActionPerformed
258

259     
260     // Variables declaration - do not modify//GEN-BEGIN:variables
261
private javax.swing.JButton JavaDoc jButtonMainClass;
262     private javax.swing.JButton JavaDoc jButtonWorkingDirectoryBrowse;
263     private javax.swing.JComboBox JavaDoc jComboBoxJ2eeSpecVersion;
264     private javax.swing.JComboBox JavaDoc jComboBoxServer;
265     private javax.swing.JLabel JavaDoc jLabelArgs;
266     private javax.swing.JLabel JavaDoc jLabelJ2EE;
267     private javax.swing.JLabel JavaDoc jLabelMainClass;
268     private javax.swing.JLabel JavaDoc jLabelServer;
269     private javax.swing.JLabel JavaDoc jLabelVMOptions;
270     private javax.swing.JLabel JavaDoc jLabelVMOptionsExample;
271     private javax.swing.JLabel JavaDoc jLabelWarnDdChange;
272     private javax.swing.JLabel JavaDoc jLabelWorkingDirectory;
273     private javax.swing.JTextField JavaDoc jTextFieldArgs;
274     private javax.swing.JTextField JavaDoc jTextFieldMainClass;
275     private javax.swing.JTextField JavaDoc jTextVMOptions;
276     private javax.swing.JTextField JavaDoc jTextWorkingDirectory;
277     // End of variables declaration//GEN-END:variables
278

279     // Innercasses -------------------------------------------------------------
280

281     private class MainClassListener implements ActionListener JavaDoc /*, DocumentListener */ {
282         
283         private final JButton JavaDoc okButton;
284         private SourceRoots sourceRoots;
285         private JTextField JavaDoc mainClassTextField;
286         
287         MainClassListener( SourceRoots sourceRoots, JTextField JavaDoc mainClassTextField ) {
288             this.sourceRoots = sourceRoots;
289             this.mainClassTextField = mainClassTextField;
290             this.okButton = new JButton JavaDoc(NbBundle.getMessage(CustomizerRun.class, "LBL_ChooseMainClass_OK"));
291             this.okButton.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(CustomizerRun.class, "AD_ChooseMainClass_OK"));
292         }
293         
294         // Implementation of ActionListener ------------------------------------
295

296         /** Handles button events
297          */

298         public void actionPerformed( ActionEvent JavaDoc e ) {
299             
300             // only chooseMainClassButton can be performed
301

302             final MainClassChooser panel = new MainClassChooser(sourceRoots.getRoots());
303             Object JavaDoc[] options = new Object JavaDoc[] {
304                 okButton,
305                 DialogDescriptor.CANCEL_OPTION
306             };
307             panel.addChangeListener(new ChangeListener JavaDoc() {
308                 public void stateChanged(ChangeEvent JavaDoc e) {
309                     if (e.getSource() instanceof MouseEvent JavaDoc && MouseUtils.isDoubleClick(((MouseEvent JavaDoc)e.getSource()))) {
310                         // click button and finish the dialog with selected class
311
okButton.doClick();
312                     } else {
313                         okButton.setEnabled(panel.getSelectedMainClass() != null);
314                     }
315                 }
316             });
317             okButton.setEnabled(false);
318             DialogDescriptor desc = new DialogDescriptor(
319                     panel,
320                     NbBundle.getMessage(CustomizerRun.class, "LBL_ChooseMainClass_Title" ),
321                     true,
322                     options,
323                     options[0],
324                     DialogDescriptor.BOTTOM_ALIGN,
325                     null,
326                     null);
327             //desc.setMessageType (DialogDescriptor.INFORMATION_MESSAGE);
328
Dialog JavaDoc dlg = DialogDisplayer.getDefault().createDialog(desc);
329             dlg.setVisible(true);
330             if (desc.getValue() == options[0]) {
331                 mainClassTextField.setText(panel.getSelectedMainClass());
332             }
333             dlg.dispose();
334         }
335         
336     }
337     
338 }
339
Popular Tags