]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PackageDepDlg.java
1. Wrap text by word when showing a message box
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / PackageDepDlg.java
CommitLineData
06a19cee 1/** @file\r
2 \r
3 The file is used to create, update Include of MSA/MBD file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard.module.ui.dialog;\r
16\r
17import java.awt.event.ActionEvent;\r
18import java.awt.event.ItemEvent;\r
19import java.awt.event.ItemListener;\r
20import java.util.Vector;\r
21\r
22import javax.swing.JButton;\r
23import javax.swing.JComboBox;\r
24import javax.swing.JLabel;\r
25import javax.swing.JPanel;\r
26import javax.swing.JScrollPane;\r
27import javax.swing.JTextField;\r
28\r
29import org.tianocore.frameworkwizard.common.DataType;\r
30import org.tianocore.frameworkwizard.common.DataValidation;\r
31import org.tianocore.frameworkwizard.common.Log;\r
32import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
33import org.tianocore.frameworkwizard.common.ui.IDialog;\r
34import org.tianocore.frameworkwizard.common.ui.IFrame;\r
35import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
36import org.tianocore.frameworkwizard.module.Identifications.PackageDependencies.PackageDependenciesIdentification;\r
37import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
38import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
39\r
40/**\r
41 The class is used to create, update Include of MSA/MBD file\r
42 It extends IInternalFrame\r
43 \r
44\r
45\r
46 **/\r
47public class PackageDepDlg extends IDialog implements ItemListener {\r
48\r
49 ///\r
50 /// Define class Serial Version UID\r
51 ///\r
52 private static final long serialVersionUID = 3465193035145152131L;\r
53\r
54 //\r
55 //Define class members\r
56 //\r
57 private JPanel jContentPane = null;\r
58\r
59 private JLabel jLabelPackageName = null;\r
60\r
61 private StarLabel jStarLabel1 = null;\r
62\r
63 private JComboBox jComboBoxPackageName = null;\r
64\r
65 private JLabel jLabelPackageGuid = null;\r
66\r
67 private JTextField jTextFieldPackageGuid = null;\r
68\r
69 private JButton jButtonGenerateGuid = null;\r
70\r
71 private JLabel jLabelPackageVersion = null;\r
72\r
73 private JTextField jTextFieldPackageVersion = null;\r
74\r
75 private JLabel jLabelFeatureFlag = null;\r
76\r
77 private JTextField jTextFieldFeatureFlag = null;\r
78\r
79 private JScrollPane jScrollPane = null;\r
80\r
81 private JLabel jLabelArch = null;\r
82\r
83 private ArchCheckBox jArchCheckBox = null;\r
84\r
85 private JButton jButtonOk = null;\r
86\r
87 private JButton jButtonCancel = null;\r
88\r
89 //\r
90 // Not used by UI\r
91 //\r
92 private PackageDependenciesIdentification pdid = null;\r
93\r
94 private WorkspaceTools wt = new WorkspaceTools();\r
95\r
96 private Vector<PackageIdentification> vPackage = wt.getAllPackages();\r
97\r
98 /**\r
99 * This method initializes jComboBoxPackageName \r
100 * \r
101 * @return javax.swing.JComboBox \r
102 */\r
103 private JComboBox getJComboBoxPackageName() {\r
104 if (jComboBoxPackageName == null) {\r
105 jComboBoxPackageName = new JComboBox();\r
106 jComboBoxPackageName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
107 jComboBoxPackageName.setPreferredSize(new java.awt.Dimension(320, 20));\r
108 jComboBoxPackageName.setToolTipText("If your Module requires a package list that here.");\r
109 jComboBoxPackageName.addItemListener(this);\r
110 }\r
111 return jComboBoxPackageName;\r
112 }\r
113\r
114 /**\r
115 * This method initializes jTextFieldPackageGuid \r
116 * \r
117 * @return javax.swing.JTextField \r
118 */\r
119 private JTextField getJTextFieldPackageGuid() {\r
120 if (jTextFieldPackageGuid == null) {\r
121 jTextFieldPackageGuid = new JTextField();\r
122 jTextFieldPackageGuid.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
123 jTextFieldPackageGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
124 jTextFieldPackageGuid.setEditable(false);\r
125 jTextFieldPackageGuid.setVisible(false);\r
126 }\r
127 return jTextFieldPackageGuid;\r
128 }\r
129\r
130 /**\r
131 * This method initializes jButtonGenerateGuid \r
132 * \r
133 * @return javax.swing.JButton \r
134 */\r
135 private JButton getJButtonGenerateGuid() {\r
136 if (jButtonGenerateGuid == null) {\r
137 jButtonGenerateGuid = new JButton();\r
138 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
139 jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
140 jButtonGenerateGuid.setText("GEN");\r
141 jButtonGenerateGuid.addActionListener(this);\r
142 jButtonGenerateGuid.setVisible(false);\r
143 }\r
144 return jButtonGenerateGuid;\r
145 }\r
146\r
147 /**\r
148 * This method initializes jTextFieldPackageVersion \r
149 * \r
150 * @return javax.swing.JTextField \r
151 */\r
152 private JTextField getJTextFieldPackageVersion() {\r
153 if (jTextFieldPackageVersion == null) {\r
154 jTextFieldPackageVersion = new JTextField();\r
155 jTextFieldPackageVersion.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
156 jTextFieldPackageVersion.setPreferredSize(new java.awt.Dimension(320, 20));\r
157 jTextFieldPackageVersion\r
158 .setToolTipText("If this module depends on a specific version of a package, enter the package version here. If the module can use the latest version that does not break backward compatibility, leave this field blank");\r
159 }\r
160 return jTextFieldPackageVersion;\r
161 }\r
162\r
163 /**\r
164 * This method initializes jTextFieldFeatureFlag \r
165 * \r
166 * @return javax.swing.JTextField \r
167 */\r
168 private JTextField getJTextFieldFeatureFlag() {\r
169 if (jTextFieldFeatureFlag == null) {\r
170 jTextFieldFeatureFlag = new JTextField();\r
171 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
172 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
173 }\r
174 return jTextFieldFeatureFlag;\r
175 }\r
176\r
177 /**\r
178 This method initializes jScrollPane \r
179 \r
180 @return javax.swing.JScrollPane \r
181 */\r
182 private JScrollPane getJScrollPane() {\r
183 if (jScrollPane == null) {\r
184 jScrollPane = new JScrollPane();\r
185 jScrollPane.setViewportView(getJContentPane());\r
186 }\r
187 return jScrollPane;\r
188 }\r
189\r
190 /**\r
191 This method initializes jButtonOk \r
192 \r
193 @return javax.swing.JButton \r
194 \r
195 **/\r
196 private JButton getJButtonOk() {\r
197 if (jButtonOk == null) {\r
198 jButtonOk = new JButton();\r
199 jButtonOk.setBounds(new java.awt.Rectangle(290, 115, 90, 20));\r
200 jButtonOk.setText("Ok");\r
201 jButtonOk.addActionListener(this);\r
202 }\r
203 return jButtonOk;\r
204 }\r
205\r
206 /**\r
207 This method initializes jButtonCancel \r
208 \r
209 @return javax.swing.JButton \r
210 \r
211 **/\r
212 private JButton getJButtonCancel() {\r
213 if (jButtonCancel == null) {\r
214 jButtonCancel = new JButton();\r
215 jButtonCancel.setBounds(new java.awt.Rectangle(390, 115, 90, 20));\r
216 jButtonCancel.setText("Cancel");\r
217 jButtonCancel.addActionListener(this);\r
218 }\r
219 return jButtonCancel;\r
220 }\r
221\r
222 public static void main(String[] args) {\r
223\r
224 }\r
225\r
226 /**\r
227 This method initializes this\r
228 \r
229 **/\r
230 private void init() {\r
231 this.setSize(500, 175);\r
232 this.setContentPane(getJScrollPane());\r
233 this.setTitle("Package Dependencies");\r
234 initFrame();\r
235 this.setViewMode(false);\r
236 this.centerWindow();\r
237 }\r
238\r
239 /**\r
240 This method initializes this\r
241 \r
242 **/\r
243 private void init(PackageDependenciesIdentification inPackageDependenciesIdentification) {\r
244 init();\r
245 this.pdid = inPackageDependenciesIdentification;\r
246 if (pdid != null) {\r
247 this.jComboBoxPackageName.setSelectedItem(pdid.getName());\r
248 this.jTextFieldPackageVersion.setText(pdid.getVersion());\r
249 this.jTextFieldPackageGuid.setText(pdid.getGuid());\r
250 jTextFieldFeatureFlag.setText(pdid.getFeatureFlag());\r
251 this.jArchCheckBox.setSelectedItems(pdid.getSupArchList());\r
252 }\r
253 }\r
254\r
255 /**\r
256 This is the default constructor\r
257 \r
258 **/\r
259 public PackageDepDlg(PackageDependenciesIdentification inPackageDependenciesIdentification, IFrame iFrame) {\r
260 super(iFrame, true);\r
261 init(inPackageDependenciesIdentification);\r
262 }\r
263\r
264 /**\r
265 Disable all components when the mode is view\r
266 \r
267 @param isView true - The view mode; false - The non-view mode\r
268 \r
269 **/\r
270 public void setViewMode(boolean isView) {\r
271 if (isView) {\r
272 this.jComboBoxPackageName.setEnabled(!isView);\r
273 }\r
274 }\r
275\r
276 /**\r
277 This method initializes jContentPane\r
278 \r
279 @return javax.swing.JPanel jContentPane\r
280 \r
281 **/\r
282 private JPanel getJContentPane() {\r
283 if (jContentPane == null) {\r
284 jArchCheckBox = new ArchCheckBox();\r
285 jArchCheckBox.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
286 jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
287 jLabelArch = new JLabel();\r
288 jLabelArch.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
289 jLabelArch.setText("Sup Arch List");\r
290 jLabelPackageVersion = new JLabel();\r
291 jLabelPackageVersion.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
292 jLabelPackageVersion.setText("Package Version");\r
293 jLabelPackageGuid = new JLabel();\r
294 jLabelPackageGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
295 jLabelPackageGuid.setText("Package Guid");\r
296 jLabelPackageGuid.setVisible(false);\r
297 jLabelPackageName = new JLabel();\r
298 jLabelPackageName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
299 jLabelPackageName.setText("Package Name");\r
300\r
301 jContentPane = new JPanel();\r
302 jContentPane.setLayout(null);\r
303 jContentPane.setPreferredSize(new java.awt.Dimension(490, 140));\r
304\r
305 jContentPane.add(jLabelPackageName, null);\r
306 jStarLabel1 = new StarLabel();\r
307 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
308\r
309 jContentPane.add(jStarLabel1, null);\r
310 jContentPane.add(getJComboBoxPackageName(), null);\r
311 jContentPane.add(jLabelPackageGuid, null);\r
312 jContentPane.add(getJTextFieldPackageGuid(), null);\r
313 jContentPane.add(getJButtonGenerateGuid(), null);\r
314 jContentPane.add(jLabelPackageVersion, null);\r
315 jContentPane.add(getJTextFieldPackageVersion(), null);\r
316\r
317 jLabelFeatureFlag = new JLabel();\r
318 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
319 jLabelFeatureFlag.setText("Feature Flag");\r
320 jContentPane.add(jLabelFeatureFlag, null);\r
321 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
322\r
323 jContentPane.add(jLabelArch, null);\r
324 jContentPane.add(jArchCheckBox, null);\r
325 jContentPane.add(getJButtonOk(), null);\r
326 jContentPane.add(getJButtonCancel(), null);\r
327 }\r
328 return jContentPane;\r
329 }\r
330\r
331 /* (non-Javadoc)\r
332 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
333 *\r
334 * Override actionPerformed to listen all actions\r
335 * \r
336 */\r
337 public void actionPerformed(ActionEvent arg0) {\r
338 if (arg0.getSource() == jButtonOk) {\r
339 if (checkAdd()) {\r
340 getCurrentPackageDependencies();\r
341 this.returnType = DataType.RETURN_TYPE_OK;\r
342 this.setVisible(false);\r
343 }\r
344 }\r
345\r
346 if (arg0.getSource() == jButtonCancel) {\r
347 this.returnType = DataType.RETURN_TYPE_CANCEL;\r
348 this.setVisible(false);\r
349 }\r
350 }\r
351\r
352 /**\r
353 This method initializes Usage type, Package type and Arch type\r
354 \r
355 **/\r
356 private void initFrame() {\r
357 for (int index = 0; index < vPackage.size(); index++) {\r
358 jComboBoxPackageName.addItem(vPackage.elementAt(index).getName());\r
359 }\r
360 }\r
361\r
362 /**\r
363 Data validation for all fields before add current item to Vector\r
364 \r
365 @retval true - All datas are valid\r
366 @retval false - At least one data is invalid\r
367 \r
368 **/\r
369 public boolean checkAdd() {\r
370 //\r
371 // Check if all fields have correct data types \r
372 //\r
373\r
374 //\r
375 // Check PackageGuid \r
376 //\r
377// if (!isEmpty(this.jTextFieldPackageGuid.getText())) {\r
378// if (!DataValidation.isGuid(this.jTextFieldPackageGuid.getText())) {\r
379// Log.err("Incorrect data type for Package Guid");\r
380// return false;\r
381// }\r
382// }\r
383\r
384 //\r
385 // Check PackageVersion \r
386 //\r
387 if (!isEmpty(this.jTextFieldPackageVersion.getText())) {\r
388 if (!DataValidation.isVersion(this.jTextFieldPackageVersion.getText())) {\r
ed1665f2 389 Log.wrn("Update Package Dependencies", "Incorrect data type for Package Version");\r
06a19cee 390 return false;\r
391 }\r
392 }\r
393\r
394 //\r
395 // Check FeatureFlag\r
396 //\r
397 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
398 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
ed1665f2 399 Log.wrn("Update Package Dependencies", "Incorrect data type for Feature Flag");\r
06a19cee 400 return false;\r
401 }\r
402 }\r
403\r
404 return true;\r
405 }\r
406 \r
407\r
408 private PackageDependenciesIdentification getCurrentPackageDependencies() {\r
409 String arg0 = this.jComboBoxPackageName.getSelectedItem().toString();\r
410 String arg1 = this.jTextFieldPackageVersion.getText();\r
411 String arg2 = this.jTextFieldPackageGuid.getText();\r
412\r
413 String arg3 = this.jTextFieldFeatureFlag.getText();\r
414 Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
415 pdid = new PackageDependenciesIdentification(arg0, arg1, arg2, arg3, arg4);\r
416 return pdid;\r
417 }\r
418\r
419 /* (non-Javadoc)\r
420 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
421 *\r
422 * Reflesh the frame when selected item changed\r
423 * \r
424 */\r
425 public void itemStateChanged(ItemEvent arg0) {\r
426 if (arg0.getSource() == this.jComboBoxPackageName && arg0.getStateChange() == ItemEvent.SELECTED) {\r
427 for (int index = 0; index < vPackage.size(); index++) {\r
428 if (this.jComboBoxPackageName.getSelectedItem().toString().equals(vPackage.get(index).getName())) {\r
429 this.jTextFieldPackageGuid.setText(vPackage.get(index).getGuid());\r
430 }\r
431 }\r
432 }\r
433 }\r
434\r
435 public PackageDependenciesIdentification getPdid() {\r
436 return pdid;\r
437 }\r
438\r
439 public void setPdid(PackageDependenciesIdentification pdid) {\r
440 this.pdid = pdid;\r
441 }\r
442\r
443}\r