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