]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/GuidsDlg.java
Fixed grammar in messages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / GuidsDlg.java
CommitLineData
06a19cee 1/** @file\r
5b38b75b 2 <<The file is used to create, update Guids of the MSA file>>\r
06a19cee 3 \r
4 Copyright (c) 2006, Intel Corporation\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 \r
13 **/\r
14package org.tianocore.frameworkwizard.module.ui.dialog;\r
15\r
16import java.awt.event.ActionEvent;\r
17import java.util.Vector;\r
18\r
19import javax.swing.JButton;\r
20import javax.swing.JComboBox;\r
21import javax.swing.JLabel;\r
22import javax.swing.JPanel;\r
23import javax.swing.JScrollPane;\r
24import javax.swing.JTextField;\r
5b38b75b 25import javax.swing.JTextArea;\r
06a19cee 26\r
27import org.tianocore.frameworkwizard.common.DataType;\r
28import org.tianocore.frameworkwizard.common.DataValidation;\r
29import org.tianocore.frameworkwizard.common.EnumerationData;\r
30import org.tianocore.frameworkwizard.common.Log;\r
31import org.tianocore.frameworkwizard.common.Tools;\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.Guids.GuidsIdentification;\r
37import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
38\r
39/**\r
5b38b75b 40 * The class is used to create, update Guids of the MSA file\r
41 * \r
42 * It extends IDialog\r
43 * \r
44 */\r
45public class GuidsDlg extends IDialog {\r
06a19cee 46\r
a929458e 47 // /\r
48 // / Define class Serial Version UID\r
49 // /\r
50 private static final long serialVersionUID = 6710858997766979803L;\r
06a19cee 51\r
a929458e 52 //\r
53 // Define class members\r
54 //\r
55 private JPanel jContentPane = null;\r
06a19cee 56\r
a929458e 57 private JLabel jLabelC_Name = null;\r
06a19cee 58\r
a929458e 59 private JComboBox jComboBoxCName = null;\r
06a19cee 60\r
a929458e 61 private JLabel jLabelUsage = null;\r
06a19cee 62\r
a929458e 63 private JComboBox jComboBoxUsage = null;\r
06a19cee 64\r
a929458e 65 private StarLabel jStarLabel1 = null;\r
06a19cee 66\r
a929458e 67 private StarLabel jStarLabel2 = null;\r
06a19cee 68\r
a929458e 69 private JLabel jLabelFeatureFlag = null;\r
06a19cee 70\r
a929458e 71 private JTextField jTextFieldFeatureFlag = null;\r
06a19cee 72\r
a929458e 73 private JLabel jLabelArch = null;\r
06a19cee 74\r
a929458e 75 private JScrollPane jScrollPane = null;\r
06a19cee 76\r
a929458e 77 private JLabel jLabelHelpText = null;\r
06a19cee 78\r
a929458e 79 private JTextArea jTextAreaHelpText = null;\r
06a19cee 80\r
a929458e 81 private JScrollPane jScrollPaneHelpText = null;\r
06a19cee 82\r
a929458e 83 private ArchCheckBox jArchCheckBox = null;\r
06a19cee 84\r
a929458e 85 private JButton jButtonOk = null;\r
06a19cee 86\r
a929458e 87 private JButton jButtonCancel = null;\r
06a19cee 88\r
a929458e 89 //\r
90 // Not used by UI\r
91 //\r
92 private GuidsIdentification id = null;\r
93\r
94 private EnumerationData ed = new EnumerationData();\r
95\r
96 private WorkspaceTools wt = new WorkspaceTools();\r
97\r
98 /**\r
99 * This method initializes jTextFieldC_Name\r
100 * \r
101 * @return javax.swing.JTextField jTextFieldC_Name\r
102 * \r
103 */\r
104 private JComboBox getJComboBoxCName() {\r
105 if (jComboBoxCName == null) {\r
106 jComboBoxCName = new JComboBox();\r
3f62225f 107 jComboBoxCName.setBounds(new java.awt.Rectangle(168, 12, 320, 20));\r
a929458e 108 jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
109 jComboBoxCName.setToolTipText("Select the C Name of the GUID");\r
110 }\r
111 return jComboBoxCName;\r
112 }\r
06a19cee 113\r
a929458e 114 /**\r
115 * This method initializes jComboBoxUsage\r
116 * \r
117 * @return javax.swing.JComboBox jComboBoxUsage\r
118 * \r
119 */\r
120 private JComboBox getJComboBoxUsage() {\r
121 if (jComboBoxUsage == null) {\r
122 jComboBoxUsage = new JComboBox();\r
3f62225f 123 jComboBoxUsage.setBounds(new java.awt.Rectangle(168, 37, 320, 20));\r
a929458e 124 jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
125 jComboBoxUsage\r
126 .setToolTipText("<html><table>"\r
127 + "<tr><td>ALWAYS_CONSUMED</td><td>Module always consumes the GUID</td></tr>"\r
128 + "<tr><td>SOMETIMES_CONSUMED</td><td>Module will use the GUID only if it is present</td></tr>"\r
129 + "<tr><td>ALWAYS_PRODUCED</td><td>Module always produces the GUID</td></tr>"\r
130 + "<tr><td>SOMETIMES_PRODUCED</td><td>Module will sometimes produce the GUID</td></tr>"\r
131 + "<tr><td>DEFAULT</td><td>Default is the the GUID that specified the<br>instance of the package</td></tr>"\r
132 + "</table></html>");\r
133 }\r
134 return jComboBoxUsage;\r
06a19cee 135 }\r
a929458e 136\r
137 /**\r
138 * This method initializes jTextFieldFeatureFlag\r
139 * \r
140 * @return javax.swing.JTextField\r
141 * \r
142 */\r
143 private JTextField getJTextFieldFeatureFlag() {\r
144 if (jTextFieldFeatureFlag == null) {\r
145 jTextFieldFeatureFlag = new JTextField();\r
21b42c66 146 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(168, 132, 320, 20));\r
a929458e 147 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
148 jTextFieldFeatureFlag.setToolTipText("Postfix expression that must evaluate to TRUE or FALSE");\r
21b42c66 149 jTextFieldFeatureFlag.setEnabled(false);\r
a929458e 150 }\r
151 return jTextFieldFeatureFlag;\r
06a19cee 152 }\r
a929458e 153\r
154 /**\r
155 * This method initializes jScrollPane\r
156 * \r
157 * @return javax.swing.JScrollPane\r
158 */\r
159 private JScrollPane getJScrollPane() {\r
160 if (jScrollPane == null) {\r
161 jScrollPane = new JScrollPane();\r
162 jScrollPane.setViewportView(getJContentPane());\r
163 }\r
164 return jScrollPane;\r
06a19cee 165 }\r
a929458e 166\r
167 /**\r
168 * This method initializes jTextAreaHelpText\r
169 * \r
170 * @return javax.swing.JTextArea\r
171 * \r
172 */\r
173 private JTextArea getJTextAreaHelpText() {\r
174 if (jTextAreaHelpText == null) {\r
175 jTextAreaHelpText = new JTextArea();\r
176 jTextAreaHelpText.setLineWrap(true);\r
177 jTextAreaHelpText.setWrapStyleWord(true);\r
178 }\r
179 return jTextAreaHelpText;\r
06a19cee 180 }\r
a929458e 181\r
182 /**\r
183 * \r
184 * This method initializes jScrollPaneHelpText\r
185 * \r
186 * @return javax.swing.JScrollPane jScrollPaneHelpText\r
187 * \r
188 **/\r
189 private JScrollPane getJScrollPaneHelpText() {\r
190 if (jScrollPaneHelpText == null) {\r
191 jScrollPaneHelpText = new JScrollPane();\r
192 jScrollPaneHelpText.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
193 jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));\r
3f62225f 194 jScrollPaneHelpText.setLocation(new java.awt.Point(168, 62));\r
a929458e 195 jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());\r
196 }\r
197 return jScrollPaneHelpText;\r
06a19cee 198 }\r
a929458e 199\r
200 /**\r
201 * This method initializes jButtonOk\r
202 * \r
203 * @return javax.swing.JButton\r
204 * \r
205 */\r
206 private JButton getJButtonOk() {\r
207 if (jButtonOk == null) {\r
208 jButtonOk = new JButton();\r
3f62225f 209 jButtonOk.setBounds(new java.awt.Rectangle(290, 162, 90, 20));\r
a929458e 210 jButtonOk.setText("Ok");\r
211 jButtonOk.addActionListener(this);\r
212 }\r
213 return jButtonOk;\r
06a19cee 214 }\r
a929458e 215\r
216 /**\r
217 * This method initializes jButtonCancel\r
218 * \r
219 * @return javax.swing.JButton\r
220 * \r
221 */\r
222 private JButton getJButtonCancel() {\r
223 if (jButtonCancel == null) {\r
224 jButtonCancel = new JButton();\r
3f62225f 225 jButtonCancel.setBounds(new java.awt.Rectangle(390, 162, 90, 20));\r
a929458e 226 jButtonCancel.setText("Cancel");\r
227 jButtonCancel.addActionListener(this);\r
228 }\r
229 return jButtonCancel;\r
06a19cee 230 }\r
a929458e 231\r
232 public static void main(String[] args) {\r
233\r
06a19cee 234 }\r
a929458e 235\r
236 /**\r
237 * \r
238 * This method initializes this\r
239 * \r
240 */\r
241 private void init() {\r
3f62225f 242 this.setSize(505, 235);\r
a929458e 243 this.setContentPane(getJScrollPane());\r
244 this.setTitle("Guids");\r
245 initFrame();\r
246 this.setViewMode(false);\r
247 this.centerWindow();\r
06a19cee 248 }\r
a929458e 249\r
250 /**\r
251 * \r
252 * This method initializes this Fill values to all fields if these values are\r
253 * not empty\r
254 * \r
255 * @param inGuidsId\r
256 * \r
257 */\r
258 private void init(GuidsIdentification inGuidsId) {\r
259 init();\r
260 this.id = inGuidsId;\r
261\r
262 if (this.id != null) {\r
263 this.jComboBoxCName.setSelectedItem(id.getName());\r
264 this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
265 this.jTextAreaHelpText.setText(id.getHelp());\r
266 this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
267 this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
268 }\r
06a19cee 269 }\r
a929458e 270\r
271 /**\r
272 * This is the override edit constructor\r
273 * \r
274 * @param inGuidsIdentification\r
275 * @param iFrame\r
276 * \r
277 */\r
278 public GuidsDlg(GuidsIdentification inGuidsIdentification, IFrame iFrame) {\r
279 super(iFrame, true);\r
280 init(inGuidsIdentification);\r
06a19cee 281 }\r
a929458e 282\r
283 /**\r
284 * Disable all components when the mode is view\r
285 * \r
286 * @param isView\r
287 * true - The view mode; false - The non-view mode\r
288 * \r
289 */\r
290 public void setViewMode(boolean isView) {\r
291 if (isView) {\r
292 this.jComboBoxUsage.setEnabled(!isView);\r
293 }\r
06a19cee 294 }\r
295\r
a929458e 296 /**\r
297 * This method initializes jContentPane\r
298 * \r
299 * @return javax.swing.JPanel jContentPane\r
300 * \r
301 */\r
302 private JPanel getJContentPane() {\r
303 if (jContentPane == null) {\r
304 jStarLabel1 = new StarLabel();\r
3f62225f 305 jStarLabel1.setLocation(new java.awt.Point(2, 12));\r
a929458e 306 jLabelC_Name = new JLabel();\r
307 jLabelC_Name.setText("Select GUID's C Name");\r
3f62225f 308 jLabelC_Name.setBounds(new java.awt.Rectangle(12, 12, 155, 20));\r
a929458e 309\r
310 jStarLabel2 = new StarLabel();\r
3f62225f 311 jStarLabel2.setLocation(new java.awt.Point(2, 37));\r
a929458e 312 jLabelUsage = new JLabel();\r
313 jLabelUsage.setText("Usage");\r
3f62225f 314 jLabelUsage.setBounds(new java.awt.Rectangle(12, 37, 155, 20));\r
a929458e 315\r
316 jLabelHelpText = new JLabel();\r
3f62225f 317 jLabelHelpText.setBounds(new java.awt.Rectangle(12, 62, 155, 20));\r
a929458e 318 jLabelHelpText.setText("Help Text");\r
319\r
320 jLabelFeatureFlag = new JLabel();\r
21b42c66 321 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 132, 155, 20));\r
a929458e 322 jLabelFeatureFlag.setText("Feature Flag Expression");\r
21b42c66 323 jLabelFeatureFlag.setEnabled(false);\r
a929458e 324\r
325 jLabelArch = new JLabel();\r
21b42c66 326 jLabelArch.setBounds(new java.awt.Rectangle(12, 107, 155, 20));\r
a929458e 327 jLabelArch.setText("Supported Architectures");\r
328 jArchCheckBox = new ArchCheckBox();\r
21b42c66 329 jArchCheckBox.setBounds(new java.awt.Rectangle(168, 107, 320, 20));\r
a929458e 330 jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
331\r
332 jContentPane = new JPanel();\r
333 jContentPane.setLayout(null);\r
3f62225f 334 jContentPane.setPreferredSize(new java.awt.Dimension(480, 180));\r
a929458e 335\r
336 jContentPane.add(jStarLabel1, null);\r
337 jContentPane.add(jLabelC_Name, null);\r
338 jContentPane.add(getJComboBoxCName(), null);\r
339 jContentPane.add(jStarLabel2, null);\r
340 jContentPane.add(jLabelUsage, null);\r
341 jContentPane.add(getJComboBoxUsage(), null);\r
342 jContentPane.add(jLabelHelpText, null);\r
343 jContentPane.add(getJScrollPaneHelpText(), null);\r
344 jContentPane.add(jLabelFeatureFlag, null);\r
345 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
346 jContentPane.add(jLabelArch, null);\r
347 jContentPane.add(jArchCheckBox, null);\r
348 jContentPane.add(getJButtonOk(), null);\r
349 jContentPane.add(getJButtonCancel(), null);\r
350 }\r
351 return jContentPane;\r
06a19cee 352 }\r
353\r
a929458e 354 /**\r
355 * This method initializes Usage type\r
356 * \r
357 */\r
358 private void initFrame() {\r
359 Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllGuidDeclarationsFromWorkspace());\r
360 Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVGuidUsage());\r
06a19cee 361 }\r
362\r
a929458e 363 /*\r
364 * (non-Javadoc)\r
365 * \r
366 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
367 * \r
368 * Override actionPerformed to listen all actions\r
369 * \r
370 */\r
371 public void actionPerformed(ActionEvent arg0) {\r
372 if (arg0.getSource() == jButtonOk) {\r
373 if (checkAdd()) {\r
374 getCurrentGuids();\r
375 this.returnType = DataType.RETURN_TYPE_OK;\r
376 this.setVisible(false);\r
377 }\r
378 }\r
379\r
380 if (arg0.getSource() == jButtonCancel) {\r
381 this.returnType = DataType.RETURN_TYPE_CANCEL;\r
382 this.setVisible(false);\r
383 }\r
06a19cee 384 }\r
385\r
a929458e 386 /**\r
387 * Data validation for all fields\r
388 * \r
389 * @retval true - All datas are valid\r
390 * @retval false - At least one data is invalid\r
391 * \r
392 */\r
393 public boolean checkAdd() {\r
394 //\r
395 // Check if all fields have correct data types\r
396 //\r
397\r
398 //\r
399 // Check Name\r
400 //\r
401 if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
402 if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
403 Log.wrn("Update Guids", "Incorrect data type for Guid Name");\r
404 return false;\r
405 }\r
406 }\r
407\r
408 //\r
409 // Check FeatureFlag\r
410 //\r
411 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
412 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
413 Log.wrn("Update Guids", "Incorrect data type for Feature Flag");\r
414 return false;\r
415 }\r
416 }\r
417\r
418 return true;\r
419 }\r
5b38b75b 420\r
a929458e 421 private GuidsIdentification getCurrentGuids() {\r
06a19cee 422 String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
423 String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
424\r
425 String arg2 = this.jTextFieldFeatureFlag.getText();\r
426 Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
5b38b75b 427 String arg4 = this.jTextAreaHelpText.getText();\r
06a19cee 428\r
429 id = new GuidsIdentification(arg0, arg1, arg2, arg3, arg4);\r
430 return id;\r
a929458e 431 }\r
06a19cee 432\r
a929458e 433 public GuidsIdentification getId() {\r
434 return id;\r
435 }\r
436\r
437 public void setId(GuidsIdentification id) {\r
438 this.id = id;\r
439 }\r
06a19cee 440}\r