Lines 19-67
Link Here
|
19 |
|
19 |
|
20 |
package org.netbeans.modules.java.j2seproject.ui.customizer; |
20 |
package org.netbeans.modules.java.j2seproject.ui.customizer; |
21 |
|
21 |
|
|
|
22 |
import java.awt.Component; |
22 |
import java.awt.Dialog; |
23 |
import java.awt.Dialog; |
|
|
24 |
import java.awt.Font; |
23 |
import java.awt.event.ActionEvent; |
25 |
import java.awt.event.ActionEvent; |
24 |
import java.awt.event.ActionListener; |
26 |
import java.awt.event.ActionListener; |
25 |
import java.awt.event.MouseEvent; |
27 |
import java.awt.event.MouseEvent; |
26 |
import java.io.File; |
28 |
import java.io.File; |
|
|
29 |
import java.text.Collator; |
30 |
import java.util.Comparator; |
31 |
import java.util.HashMap; |
32 |
import java.util.Iterator; |
33 |
import java.util.Map; |
34 |
import java.util.SortedSet; |
35 |
import java.util.TreeSet; |
36 |
import javax.swing.DefaultComboBoxModel; |
37 |
import javax.swing.DefaultListCellRenderer; |
27 |
import javax.swing.JButton; |
38 |
import javax.swing.JButton; |
28 |
import javax.swing.JFileChooser; |
39 |
import javax.swing.JFileChooser; |
|
|
40 |
import javax.swing.JLabel; |
41 |
import javax.swing.JList; |
29 |
import javax.swing.JPanel; |
42 |
import javax.swing.JPanel; |
30 |
import javax.swing.JTextField; |
43 |
import javax.swing.JTextField; |
31 |
import javax.swing.event.ChangeEvent; |
44 |
import javax.swing.event.ChangeEvent; |
32 |
import javax.swing.event.ChangeListener; |
45 |
import javax.swing.event.ChangeListener; |
33 |
import javax.swing.event.DocumentEvent; |
46 |
import javax.swing.event.DocumentEvent; |
34 |
import javax.swing.event.DocumentListener; |
47 |
import javax.swing.event.DocumentListener; |
35 |
import org.netbeans.api.project.Project; |
|
|
36 |
import org.netbeans.modules.java.j2seproject.J2SEProject; |
48 |
import org.netbeans.modules.java.j2seproject.J2SEProject; |
37 |
import org.netbeans.modules.java.j2seproject.SourceRoots; |
49 |
import org.netbeans.modules.java.j2seproject.SourceRoots; |
38 |
import org.openide.DialogDescriptor; |
50 |
import org.openide.DialogDescriptor; |
39 |
import org.openide.DialogDisplayer; |
51 |
import org.openide.DialogDisplayer; |
|
|
52 |
import org.openide.NotifyDescriptor; |
40 |
import org.openide.awt.MouseUtils; |
53 |
import org.openide.awt.MouseUtils; |
41 |
import org.openide.filesystems.FileObject; |
|
|
42 |
import org.openide.filesystems.FileUtil; |
54 |
import org.openide.filesystems.FileUtil; |
43 |
import org.openide.util.HelpCtx; |
55 |
import org.openide.util.HelpCtx; |
44 |
import org.openide.util.NbBundle; |
56 |
import org.openide.util.NbBundle; |
|
|
57 |
import org.openide.util.Utilities; |
45 |
|
58 |
|
46 |
|
|
|
47 |
/** |
48 |
* |
49 |
* @author phrebejk |
50 |
*/ |
51 |
public class CustomizerRun extends JPanel implements HelpCtx.Provider { |
59 |
public class CustomizerRun extends JPanel implements HelpCtx.Provider { |
52 |
|
60 |
|
53 |
private J2SEProject project; |
61 |
private J2SEProject project; |
54 |
|
62 |
|
|
|
63 |
private JTextField[] data; |
64 |
private JLabel[] dataLabels; |
65 |
private String[] keys; |
66 |
private Map<String/*|null*/,Map<String,String/*|null*/>/*|null*/> configs; |
67 |
J2SEProjectProperties uiProperties; |
68 |
|
55 |
public CustomizerRun( J2SEProjectProperties uiProperties ) { |
69 |
public CustomizerRun( J2SEProjectProperties uiProperties ) { |
|
|
70 |
this.uiProperties = uiProperties; |
56 |
initComponents(); |
71 |
initComponents(); |
57 |
|
72 |
|
58 |
this.project = uiProperties.getProject(); |
73 |
this.project = uiProperties.getProject(); |
59 |
|
74 |
|
60 |
jTextFieldMainClass.setDocument( uiProperties.MAIN_CLASS_MODEL ); |
75 |
configs = uiProperties.RUN_CONFIGS; |
61 |
jTextFieldArgs.setDocument( uiProperties.APPLICATION_ARGS_MODEL ); |
76 |
|
62 |
jTextVMOptions.setDocument( uiProperties.RUN_JVM_ARGS_MODEL ); |
77 |
data = new JTextField[] { |
63 |
jTextWorkingDirectory.setDocument( uiProperties.RUN_WORK_DIR_MODEL ); |
78 |
jTextFieldMainClass, |
64 |
|
79 |
jTextFieldArgs, |
|
|
80 |
jTextVMOptions, |
81 |
jTextWorkingDirectory, |
82 |
}; |
83 |
dataLabels = new JLabel[] { |
84 |
jLabelMainClass, |
85 |
jLabelArgs, |
86 |
jLabelVMOptions, |
87 |
jLabelWorkingDirectory, |
88 |
}; |
89 |
keys = new String[] { |
90 |
J2SEProjectProperties.MAIN_CLASS, |
91 |
J2SEProjectProperties.APPLICATION_ARGS, |
92 |
J2SEProjectProperties.RUN_JVM_ARGS, |
93 |
J2SEProjectProperties.RUN_WORK_DIR, |
94 |
}; |
95 |
assert data.length == keys.length; |
96 |
|
97 |
configChanged(uiProperties.activeConfig); |
98 |
|
99 |
configCombo.setRenderer(new DefaultListCellRenderer() { |
100 |
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { |
101 |
String config = (String) value; |
102 |
String label; |
103 |
if (config == null) { |
104 |
// uninitialized? |
105 |
label = null; |
106 |
} else if (config.length() > 0) { |
107 |
Map<String,String> m = configs.get(config); |
108 |
label = m != null ? m.get("$label") : /* temporary? */ null; |
109 |
if (label == null) { |
110 |
label = config; |
111 |
} |
112 |
} else { |
113 |
label = NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.default"); |
114 |
} |
115 |
return super.getListCellRendererComponent(list, label, index, isSelected, cellHasFocus); |
116 |
} |
117 |
}); |
118 |
|
119 |
for (int i = 0; i < data.length; i++) { |
120 |
final JTextField field = data[i]; |
121 |
final String prop = keys[i]; |
122 |
final JLabel label = dataLabels[i]; |
123 |
field.getDocument().addDocumentListener(new DocumentListener() { |
124 |
Font basefont = label.getFont(); |
125 |
Font boldfont = basefont.deriveFont(Font.BOLD); |
126 |
{ |
127 |
updateFont(); |
128 |
} |
129 |
public void insertUpdate(DocumentEvent e) { |
130 |
changed(); |
131 |
} |
132 |
public void removeUpdate(DocumentEvent e) { |
133 |
changed(); |
134 |
} |
135 |
public void changedUpdate(DocumentEvent e) {} |
136 |
void changed() { |
137 |
String config = (String) configCombo.getSelectedItem(); |
138 |
if (config.length() == 0) { |
139 |
config = null; |
140 |
} |
141 |
String v = field.getText(); |
142 |
if (v != null && config != null && v.equals(configs.get(null).get(prop))) { |
143 |
// default value, do not store as such |
144 |
v = null; |
145 |
} |
146 |
configs.get(config).put(prop, v); |
147 |
updateFont(); |
148 |
} |
149 |
void updateFont() { |
150 |
String v = field.getText(); |
151 |
String config = (String) configCombo.getSelectedItem(); |
152 |
if (config.length() == 0) { |
153 |
config = null; |
154 |
} |
155 |
String def = configs.get(null).get(prop); |
156 |
label.setFont(config != null && !Utilities.compareObjects(v != null ? v : "", def != null ? def : "") ? boldfont : basefont); |
157 |
} |
158 |
}); |
159 |
} |
160 |
|
65 |
jButtonMainClass.addActionListener( new MainClassListener( project.getSourceRoots(), jTextFieldMainClass ) ); |
161 |
jButtonMainClass.addActionListener( new MainClassListener( project.getSourceRoots(), jTextFieldMainClass ) ); |
66 |
} |
162 |
} |
67 |
|
163 |
|
Lines 78-83
Link Here
|
78 |
private void initComponents() { |
174 |
private void initComponents() { |
79 |
java.awt.GridBagConstraints gridBagConstraints; |
175 |
java.awt.GridBagConstraints gridBagConstraints; |
80 |
|
176 |
|
|
|
177 |
configSep = new javax.swing.JSeparator(); |
178 |
configPanel = new javax.swing.JPanel(); |
179 |
configLabel = new javax.swing.JLabel(); |
180 |
configCombo = new javax.swing.JComboBox(); |
181 |
configNew = new javax.swing.JButton(); |
182 |
configDel = new javax.swing.JButton(); |
183 |
mainPanel = new javax.swing.JPanel(); |
81 |
jLabelMainClass = new javax.swing.JLabel(); |
184 |
jLabelMainClass = new javax.swing.JLabel(); |
82 |
jTextFieldMainClass = new javax.swing.JTextField(); |
185 |
jTextFieldMainClass = new javax.swing.JTextField(); |
83 |
jButtonMainClass = new javax.swing.JButton(); |
186 |
jButtonMainClass = new javax.swing.JButton(); |
Lines 92-141
Link Here
|
92 |
|
195 |
|
93 |
setLayout(new java.awt.GridBagLayout()); |
196 |
setLayout(new java.awt.GridBagLayout()); |
94 |
|
197 |
|
|
|
198 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
199 |
gridBagConstraints.gridx = 0; |
200 |
gridBagConstraints.gridy = 1; |
201 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
202 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
203 |
gridBagConstraints.insets = new java.awt.Insets(6, 0, 6, 0); |
204 |
add(configSep, gridBagConstraints); |
205 |
|
206 |
configPanel.setLayout(new java.awt.GridBagLayout()); |
207 |
|
208 |
configLabel.setLabelFor(configCombo); |
209 |
org.openide.awt.Mnemonics.setLocalizedText(configLabel, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.configLabel")); // NOI18N |
210 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
211 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
212 |
gridBagConstraints.insets = new java.awt.Insets(2, 0, 2, 0); |
213 |
configPanel.add(configLabel, gridBagConstraints); |
214 |
|
215 |
configCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "<default>" })); |
216 |
configCombo.addActionListener(new java.awt.event.ActionListener() { |
217 |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
218 |
configComboActionPerformed(evt); |
219 |
} |
220 |
}); |
221 |
|
222 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
223 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
224 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
225 |
gridBagConstraints.weightx = 1.0; |
226 |
gridBagConstraints.insets = new java.awt.Insets(2, 6, 2, 0); |
227 |
configPanel.add(configCombo, gridBagConstraints); |
228 |
|
229 |
org.openide.awt.Mnemonics.setLocalizedText(configNew, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.configNew")); // NOI18N |
230 |
configNew.addActionListener(new java.awt.event.ActionListener() { |
231 |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
232 |
configNewActionPerformed(evt); |
233 |
} |
234 |
}); |
235 |
|
236 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
237 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
238 |
gridBagConstraints.insets = new java.awt.Insets(2, 6, 2, 0); |
239 |
configPanel.add(configNew, gridBagConstraints); |
240 |
|
241 |
org.openide.awt.Mnemonics.setLocalizedText(configDel, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.configDelete")); // NOI18N |
242 |
configDel.addActionListener(new java.awt.event.ActionListener() { |
243 |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
244 |
configDelActionPerformed(evt); |
245 |
} |
246 |
}); |
247 |
|
248 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
249 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
250 |
gridBagConstraints.insets = new java.awt.Insets(2, 6, 2, 0); |
251 |
configPanel.add(configDel, gridBagConstraints); |
252 |
|
253 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
254 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
255 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
256 |
gridBagConstraints.insets = new java.awt.Insets(6, 0, 6, 0); |
257 |
add(configPanel, gridBagConstraints); |
258 |
|
259 |
mainPanel.setLayout(new java.awt.GridBagLayout()); |
260 |
|
95 |
jLabelMainClass.setLabelFor(jTextFieldMainClass); |
261 |
jLabelMainClass.setLabelFor(jTextFieldMainClass); |
96 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JLabel")); |
262 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JLabel")); // NOI18N |
97 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
263 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
98 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
264 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
99 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
265 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
100 |
add(jLabelMainClass, gridBagConstraints); |
266 |
mainPanel.add(jLabelMainClass, gridBagConstraints); |
101 |
|
267 |
|
102 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
268 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
103 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
269 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
104 |
gridBagConstraints.weightx = 1.0; |
270 |
gridBagConstraints.weightx = 1.0; |
105 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 5, 0); |
271 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 5, 0); |
106 |
add(jTextFieldMainClass, gridBagConstraints); |
272 |
mainPanel.add(jTextFieldMainClass, gridBagConstraints); |
107 |
jTextFieldMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jTextFieldMainClass")); |
273 |
jTextFieldMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jTextFieldMainClass")); // NOI18N |
108 |
|
274 |
|
109 |
org.openide.awt.Mnemonics.setLocalizedText(jButtonMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JButton")); |
275 |
org.openide.awt.Mnemonics.setLocalizedText(jButtonMainClass, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_MainClass_JButton")); // NOI18N |
110 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
276 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
111 |
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; |
277 |
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; |
112 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
278 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
113 |
gridBagConstraints.insets = new java.awt.Insets(0, 6, 5, 0); |
279 |
gridBagConstraints.insets = new java.awt.Insets(0, 6, 5, 0); |
114 |
add(jButtonMainClass, gridBagConstraints); |
280 |
mainPanel.add(jButtonMainClass, gridBagConstraints); |
115 |
jButtonMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jButtonMainClass")); |
281 |
jButtonMainClass.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jButtonMainClass")); // NOI18N |
116 |
|
282 |
|
117 |
jLabelArgs.setLabelFor(jTextFieldArgs); |
283 |
jLabelArgs.setLabelFor(jTextFieldArgs); |
118 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelArgs, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Args_JLabel")); |
284 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelArgs, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Args_JLabel")); // NOI18N |
119 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
285 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
120 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
286 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
121 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0); |
287 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0); |
122 |
add(jLabelArgs, gridBagConstraints); |
288 |
mainPanel.add(jLabelArgs, gridBagConstraints); |
123 |
|
289 |
|
124 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
290 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
125 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
291 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
126 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
292 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
127 |
gridBagConstraints.weightx = 1.0; |
293 |
gridBagConstraints.weightx = 1.0; |
128 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 0); |
294 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 0); |
129 |
add(jTextFieldArgs, gridBagConstraints); |
295 |
mainPanel.add(jTextFieldArgs, gridBagConstraints); |
130 |
jTextFieldArgs.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jTextFieldArgs")); |
296 |
jTextFieldArgs.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(CustomizerRun.class).getString("AD_jTextFieldArgs")); // NOI18N |
131 |
|
297 |
|
132 |
jLabelWorkingDirectory.setLabelFor(jTextWorkingDirectory); |
298 |
jLabelWorkingDirectory.setLabelFor(jTextWorkingDirectory); |
133 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelWorkingDirectory, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory")); |
299 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelWorkingDirectory, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory")); // NOI18N |
134 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
300 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
135 |
gridBagConstraints.gridy = 2; |
301 |
gridBagConstraints.gridy = 2; |
136 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
302 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
137 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
303 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
138 |
add(jLabelWorkingDirectory, gridBagConstraints); |
304 |
mainPanel.add(jLabelWorkingDirectory, gridBagConstraints); |
139 |
|
305 |
|
140 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
306 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
141 |
gridBagConstraints.gridy = 2; |
307 |
gridBagConstraints.gridy = 2; |
Lines 143-152
Link Here
|
143 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
309 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
144 |
gridBagConstraints.weightx = 1.0; |
310 |
gridBagConstraints.weightx = 1.0; |
145 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 5, 0); |
311 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 5, 0); |
146 |
add(jTextWorkingDirectory, gridBagConstraints); |
312 |
mainPanel.add(jTextWorkingDirectory, gridBagConstraints); |
147 |
jTextWorkingDirectory.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/java/j2seproject/ui/customizer/Bundle").getString("AD_CustomizeRun_Run_Working_Directory ")); |
313 |
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/java/j2seproject/ui/customizer/Bundle"); // NOI18N |
|
|
314 |
jTextWorkingDirectory.getAccessibleContext().setAccessibleDescription(bundle.getString("AD_CustomizeRun_Run_Working_Directory ")); // NOI18N |
148 |
|
315 |
|
149 |
org.openide.awt.Mnemonics.setLocalizedText(jButtonWorkingDirectoryBrowse, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory_Browse")); |
316 |
org.openide.awt.Mnemonics.setLocalizedText(jButtonWorkingDirectoryBrowse, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_Working_Directory_Browse")); // NOI18N |
150 |
jButtonWorkingDirectoryBrowse.addActionListener(new java.awt.event.ActionListener() { |
317 |
jButtonWorkingDirectoryBrowse.addActionListener(new java.awt.event.ActionListener() { |
151 |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
318 |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
152 |
jButtonWorkingDirectoryBrowseActionPerformed(evt); |
319 |
jButtonWorkingDirectoryBrowseActionPerformed(evt); |
Lines 158-182
Link Here
|
158 |
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; |
325 |
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; |
159 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
326 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
160 |
gridBagConstraints.insets = new java.awt.Insets(0, 6, 5, 0); |
327 |
gridBagConstraints.insets = new java.awt.Insets(0, 6, 5, 0); |
161 |
add(jButtonWorkingDirectoryBrowse, gridBagConstraints); |
328 |
mainPanel.add(jButtonWorkingDirectoryBrowse, gridBagConstraints); |
162 |
jButtonWorkingDirectoryBrowse.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/java/j2seproject/ui/customizer/Bundle").getString("AD_CustomizeRun_Run_Working_Directory_Browse")); |
329 |
jButtonWorkingDirectoryBrowse.getAccessibleContext().setAccessibleDescription(bundle.getString("AD_CustomizeRun_Run_Working_Directory_Browse")); // NOI18N |
163 |
|
330 |
|
164 |
jLabelVMOptions.setLabelFor(jTextVMOptions); |
331 |
jLabelVMOptions.setLabelFor(jTextVMOptions); |
165 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptions, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options")); |
332 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptions, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options")); // NOI18N |
166 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
333 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
167 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
334 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; |
168 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
335 |
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); |
169 |
add(jLabelVMOptions, gridBagConstraints); |
336 |
mainPanel.add(jLabelVMOptions, gridBagConstraints); |
170 |
|
337 |
|
171 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
338 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
172 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
339 |
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; |
173 |
gridBagConstraints.weightx = 1.0; |
340 |
gridBagConstraints.weightx = 1.0; |
174 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); |
341 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); |
175 |
add(jTextVMOptions, gridBagConstraints); |
342 |
mainPanel.add(jTextVMOptions, gridBagConstraints); |
176 |
jTextVMOptions.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/java/j2seproject/ui/customizer/Bundle").getString("AD_CustomizeRun_Run_VM_Options")); |
343 |
jTextVMOptions.getAccessibleContext().setAccessibleDescription(bundle.getString("AD_CustomizeRun_Run_VM_Options")); // NOI18N |
177 |
|
344 |
|
178 |
jLabelVMOptionsExample.setLabelFor(jTextFieldMainClass); |
345 |
jLabelVMOptionsExample.setLabelFor(jTextFieldMainClass); |
179 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptionsExample, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options_Example")); |
346 |
org.openide.awt.Mnemonics.setLocalizedText(jLabelVMOptionsExample, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "LBL_CustomizeRun_Run_VM_Options_Example")); // NOI18N |
180 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
347 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
181 |
gridBagConstraints.gridx = 1; |
348 |
gridBagConstraints.gridx = 1; |
182 |
gridBagConstraints.gridy = 4; |
349 |
gridBagConstraints.gridy = 4; |
Lines 185-195
Link Here
|
185 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
352 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
186 |
gridBagConstraints.weighty = 1.0; |
353 |
gridBagConstraints.weighty = 1.0; |
187 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 0); |
354 |
gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 0); |
188 |
add(jLabelVMOptionsExample, gridBagConstraints); |
355 |
mainPanel.add(jLabelVMOptionsExample, gridBagConstraints); |
189 |
jLabelVMOptionsExample.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/java/j2seproject/ui/customizer/Bundle").getString("LBL_CustomizeRun_Run_VM_Options_Example")); |
356 |
jLabelVMOptionsExample.getAccessibleContext().setAccessibleDescription(bundle.getString("LBL_CustomizeRun_Run_VM_Options_Example")); // NOI18N |
190 |
|
357 |
|
191 |
} |
358 |
gridBagConstraints = new java.awt.GridBagConstraints(); |
192 |
// </editor-fold>//GEN-END:initComponents |
359 |
gridBagConstraints.gridx = 0; |
|
|
360 |
gridBagConstraints.gridy = 2; |
361 |
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; |
362 |
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; |
363 |
gridBagConstraints.weightx = 1.0; |
364 |
gridBagConstraints.weighty = 1.0; |
365 |
gridBagConstraints.insets = new java.awt.Insets(6, 0, 6, 0); |
366 |
add(mainPanel, gridBagConstraints); |
367 |
|
368 |
}// </editor-fold>//GEN-END:initComponents |
369 |
|
370 |
private void configDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configDelActionPerformed |
371 |
String config = (String) configCombo.getSelectedItem(); |
372 |
assert config != null; |
373 |
configs.put(config, null); |
374 |
configChanged(null); |
375 |
uiProperties.activeConfig = null; |
376 |
}//GEN-LAST:event_configDelActionPerformed |
377 |
|
378 |
private void configNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configNewActionPerformed |
379 |
NotifyDescriptor.InputLine d = new NotifyDescriptor.InputLine( |
380 |
NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.input.prompt"), |
381 |
NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.input.title")); |
382 |
if (DialogDisplayer.getDefault().notify(d) != NotifyDescriptor.OK_OPTION) { |
383 |
return; |
384 |
} |
385 |
String name = d.getInputText(); |
386 |
String config = name.replaceAll("[^a-zA-Z0-9_.-]", "_"); // NOI18N |
387 |
if (configs.get(config) != null) { |
388 |
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message( |
389 |
NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.input.duplicate", config), |
390 |
NotifyDescriptor.WARNING_MESSAGE)); |
391 |
return; |
392 |
} |
393 |
Map<String,String> m = new HashMap<String,String>(); |
394 |
if (!name.equals(config)) { |
395 |
m.put("$label", name); // NOI18N |
396 |
} |
397 |
configs.put(config, m); |
398 |
configChanged(config); |
399 |
uiProperties.activeConfig = config; |
400 |
}//GEN-LAST:event_configNewActionPerformed |
401 |
|
402 |
private void configComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configComboActionPerformed |
403 |
String config = (String) configCombo.getSelectedItem(); |
404 |
if (config.length() == 0) { |
405 |
config = null; |
406 |
} |
407 |
configChanged(config); |
408 |
uiProperties.activeConfig = config; |
409 |
}//GEN-LAST:event_configComboActionPerformed |
193 |
|
410 |
|
194 |
private void jButtonWorkingDirectoryBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonWorkingDirectoryBrowseActionPerformed |
411 |
private void jButtonWorkingDirectoryBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonWorkingDirectoryBrowseActionPerformed |
195 |
JFileChooser chooser = new JFileChooser(); |
412 |
JFileChooser chooser = new JFileChooser(); |
Lines 208-216
Link Here
|
208 |
jTextWorkingDirectory.setText(file.getAbsolutePath()); |
425 |
jTextWorkingDirectory.setText(file.getAbsolutePath()); |
209 |
} |
426 |
} |
210 |
}//GEN-LAST:event_jButtonWorkingDirectoryBrowseActionPerformed |
427 |
}//GEN-LAST:event_jButtonWorkingDirectoryBrowseActionPerformed |
|
|
428 |
|
429 |
private void configChanged(String activeConfig) { |
430 |
DefaultComboBoxModel model = new DefaultComboBoxModel(); |
431 |
model.addElement(""); |
432 |
SortedSet<String> alphaConfigs = new TreeSet<String>(new Comparator<String>() { |
433 |
Collator coll = Collator.getInstance(); |
434 |
public int compare(String s1, String s2) { |
435 |
return coll.compare(label(s1), label(s2)); |
436 |
} |
437 |
private String label(String c) { |
438 |
Map<String,String> m = configs.get(c); |
439 |
String label = m.get("$label"); // NOI18N |
440 |
return label != null ? label : c; |
441 |
} |
442 |
}); |
443 |
for (Map.Entry<String,Map<String,String>> entry : configs.entrySet()) { |
444 |
String config = entry.getKey(); |
445 |
if (config != null && entry.getValue() != null) { |
446 |
alphaConfigs.add(config); |
447 |
} |
448 |
} |
449 |
for (String c : alphaConfigs) { |
450 |
model.addElement(c); |
451 |
} |
452 |
configCombo.setModel(model); |
453 |
configCombo.setSelectedItem(activeConfig != null ? activeConfig : ""); |
454 |
Map<String,String> m = configs.get(activeConfig); |
455 |
Map<String,String> def = configs.get(null); |
456 |
if (m != null) { |
457 |
for (int i = 0; i < data.length; i++) { |
458 |
String v = m.get(keys[i]); |
459 |
if (v == null) { |
460 |
// display default value |
461 |
v = def.get(keys[i]); |
462 |
} |
463 |
data[i].setText(v); |
464 |
} |
465 |
} // else ?? |
466 |
configDel.setEnabled(activeConfig != null); |
467 |
} |
211 |
|
468 |
|
212 |
|
469 |
|
213 |
// Variables declaration - do not modify//GEN-BEGIN:variables |
470 |
// Variables declaration - do not modify//GEN-BEGIN:variables |
|
|
471 |
private javax.swing.JComboBox configCombo; |
472 |
private javax.swing.JButton configDel; |
473 |
private javax.swing.JLabel configLabel; |
474 |
private javax.swing.JButton configNew; |
475 |
private javax.swing.JPanel configPanel; |
476 |
private javax.swing.JSeparator configSep; |
214 |
private javax.swing.JButton jButtonMainClass; |
477 |
private javax.swing.JButton jButtonMainClass; |
215 |
private javax.swing.JButton jButtonWorkingDirectoryBrowse; |
478 |
private javax.swing.JButton jButtonWorkingDirectoryBrowse; |
216 |
private javax.swing.JLabel jLabelArgs; |
479 |
private javax.swing.JLabel jLabelArgs; |
Lines 222-227
Link Here
|
222 |
private javax.swing.JTextField jTextFieldMainClass; |
485 |
private javax.swing.JTextField jTextFieldMainClass; |
223 |
private javax.swing.JTextField jTextVMOptions; |
486 |
private javax.swing.JTextField jTextVMOptions; |
224 |
private javax.swing.JTextField jTextWorkingDirectory; |
487 |
private javax.swing.JTextField jTextWorkingDirectory; |
|
|
488 |
private javax.swing.JPanel mainPanel; |
225 |
// End of variables declaration//GEN-END:variables |
489 |
// End of variables declaration//GEN-END:variables |
226 |
|
490 |
|
227 |
|
491 |
|