]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/ModuleDataHubs.java
1. Modify start script to
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / module / ui / ModuleDataHubs.java
CommitLineData
878ddf1f 1/** @file\r
2 \r
3 The file is used to create, update DataHub 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
15\r
16package org.tianocore.packaging.module.ui;\r
17\r
18import java.awt.event.ActionEvent;\r
19\r
20import javax.swing.JButton;\r
21import javax.swing.JComboBox;\r
22import javax.swing.JLabel;\r
23import javax.swing.JPanel;\r
24import javax.swing.JTextField;\r
25\r
26import org.tianocore.DataHubUsage;\r
27import org.tianocore.DataHubsDocument;\r
28import org.tianocore.common.DataValidation;\r
29import org.tianocore.common.Log;\r
30import org.tianocore.common.Tools;\r
31import org.tianocore.packaging.common.ui.IInternalFrame;\r
32import org.tianocore.packaging.common.ui.StarLabel;\r
33\r
34/**\r
35 The class is used to create, update DataHub of MSA/MBD file\r
36 It extends IInternalFrame\r
37 \r
38 @since ModuleEditor 1.0\r
39\r
40 **/\r
41public class ModuleDataHubs extends IInternalFrame {\r
42\r
43 ///\r
44 /// Define class Serial Version UID\r
45 ///\r
46 private static final long serialVersionUID = -3667906991966638892L;\r
47\r
48 //\r
49 //Define class members\r
50 //\r
51 private DataHubsDocument.DataHubs dataHubs = null;\r
52\r
53 private int location = -1;\r
54\r
55 private JPanel jContentPane = null;\r
56\r
57 private JLabel jLabelGuid = null;\r
58\r
59 private JTextField jTextFieldGuid = null;\r
60\r
61 private JLabel jLabelUsage = null;\r
62\r
63 private JComboBox jComboBoxUsage = null;\r
64\r
65 private JButton jButtonOk = null;\r
66\r
67 private JButton jButtonCancel = null;\r
68\r
69 private JLabel jLabelDataHubRecord = null;\r
70\r
71 private JTextField jTextFieldDataHubRecord = null;\r
72\r
73 private JButton jButtonGenerateGuid = null;\r
74\r
75 private JLabel jLabelOverrideID = null;\r
76\r
77 private JTextField jTextFieldOverrideID = null;\r
78\r
79 private StarLabel jStarLabel1 = null;\r
80\r
81 /**\r
82 This method initializes jTextFieldGuid \r
83 \r
84 @return javax.swing.JTextField jTextFieldGuid\r
85 \r
86 **/\r
87 private JTextField getJTextFieldGuid() {\r
88 if (jTextFieldGuid == null) {\r
89 jTextFieldGuid = new JTextField();\r
2a8b1c0a 90 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 250, 20));\r
878ddf1f 91 }\r
92 return jTextFieldGuid;\r
93 }\r
94\r
95 /**\r
96 This method initializes jComboBoxUsage \r
97 \r
98 @return javax.swing.JComboBox jComboBoxUsage\r
99 \r
100 **/\r
101 private JComboBox getJComboBoxUsage() {\r
102 if (jComboBoxUsage == null) {\r
103 jComboBoxUsage = new JComboBox();\r
104 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
105 }\r
106 return jComboBoxUsage;\r
107 }\r
108\r
109 /**\r
110 This method initializes jButtonOk \r
111 \r
112 @return javax.swing.JButton jButtonOk\r
113 \r
114 **/\r
115 private JButton getJButtonOk() {\r
116 if (jButtonOk == null) {\r
117 jButtonOk = new JButton();\r
118 jButtonOk.setText("OK");\r
119 jButtonOk.setBounds(new java.awt.Rectangle(280, 115, 90, 20));\r
120 jButtonOk.addActionListener(this);\r
121 }\r
122 return jButtonOk;\r
123 }\r
124\r
125 /**\r
126 This method initializes jButtonCancel \r
127 \r
128 @return javax.swing.JButton jButtonCancel\r
129 \r
130 **/\r
131 private JButton getJButtonCancel() {\r
132 if (jButtonCancel == null) {\r
133 jButtonCancel = new JButton();\r
134 jButtonCancel.setText("Cancel");\r
135 jButtonCancel.setBounds(new java.awt.Rectangle(390, 115, 90, 20));\r
136 jButtonCancel.addActionListener(this);\r
137 }\r
138 return jButtonCancel;\r
139 }\r
140\r
141 /**\r
142 This method initializes jTextFieldDataHubRecord \r
143 \r
144 @return javax.swing.JTextField jTextFieldDataHubRecord\r
145 \r
146 **/\r
147 private JTextField getJTextFieldDataHubRecord() {\r
148 if (jTextFieldDataHubRecord == null) {\r
149 jTextFieldDataHubRecord = new JTextField();\r
150 jTextFieldDataHubRecord.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
151 }\r
152 return jTextFieldDataHubRecord;\r
153 }\r
154\r
155 /**\r
156 This method initializes jButtonGenerateGuid \r
157 \r
158 @return javax.swing.JButton jButtonGenerateGuid\r
159 \r
160 **/\r
161 private JButton getJButtonGenerateGuid() {\r
162 if (jButtonGenerateGuid == null) {\r
163 jButtonGenerateGuid = new JButton();\r
2a8b1c0a 164 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
878ddf1f 165 jButtonGenerateGuid.setText("GEN");\r
166 jButtonGenerateGuid.addActionListener(this);\r
167 }\r
168 return jButtonGenerateGuid;\r
169 }\r
170\r
171 /**\r
172 This method initializes jTextFieldOverrideID \r
173 \r
174 @return javax.swing.JTextField jTextFieldOverrideID\r
175 \r
176 **/\r
177 private JTextField getJTextFieldOverrideID() {\r
178 if (jTextFieldOverrideID == null) {\r
179 jTextFieldOverrideID = new JTextField();\r
2a8b1c0a 180 jTextFieldOverrideID.setBounds(new java.awt.Rectangle(160, 85, 50, 20));\r
878ddf1f 181 }\r
182 return jTextFieldOverrideID;\r
183 }\r
184\r
185 public static void main(String[] args) {\r
186\r
187 }\r
188\r
189 /**\r
190 This is the default constructor\r
191 \r
192 **/\r
193 public ModuleDataHubs() {\r
194 super();\r
195 init();\r
196 this.setVisible(true);\r
197 }\r
198\r
199 /**\r
200 This is the override edit constructor\r
201 \r
202 @param inDataHubs The input DataHubsDocument.DataHubs\r
203 \r
204 **/\r
205 public ModuleDataHubs(DataHubsDocument.DataHubs inDataHubs) {\r
206 super();\r
207 init(inDataHubs);\r
208 this.setVisible(true);\r
209 }\r
210\r
211 /**\r
212 This is the override edit constructor\r
213 \r
214 @param inDataHubs DataHubsDocument.DataHubs\r
215 @param type The input data of node type\r
216 @param index The input data of node index\r
217 \r
218 **/\r
219 public ModuleDataHubs(DataHubsDocument.DataHubs inDataHubs, int type, int index) {\r
220 super();\r
221 init(inDataHubs, type, index);\r
222 this.setVisible(true);\r
223 }\r
224\r
225 /**\r
226 This method initializes this\r
227 \r
228 @param inDataHubs The input DataHubsDocument.DataHubs\r
229 \r
230 **/\r
231 private void init(DataHubsDocument.DataHubs inDataHubs) {\r
232 init();\r
233 this.setDataHubs(inDataHubs);\r
234 }\r
235\r
236 /**\r
237 This method initializes this\r
238 Fill values to all fields if these values are not empty\r
239 \r
240 @param inDataHubs The input DataHubsDocument.DataHubs\r
241 @param type The input data of node type\r
242 @param index The input data of node index\r
243 \r
244 **/\r
245 private void init(DataHubsDocument.DataHubs inDataHubs, int type, int index) {\r
246 init(inDataHubs);\r
247 this.location = index;\r
248 if (this.dataHubs.getDataHubRecordList().size() > 0) {\r
249 if (this.dataHubs.getDataHubRecordArray(index).getStringValue() != null) {\r
250 this.jTextFieldDataHubRecord.setText(this.dataHubs.getDataHubRecordArray(index).getStringValue()\r
251 .toString());\r
252 }\r
253 if (this.dataHubs.getDataHubRecordArray(index).getGuid() != null) {\r
254 this.jTextFieldGuid.setText(this.dataHubs.getDataHubRecordArray(index).getGuid());\r
255 }\r
256 if (this.dataHubs.getDataHubRecordArray(index).getUsage() != null) {\r
257 this.jComboBoxUsage.setSelectedItem(this.dataHubs.getDataHubRecordArray(index).getUsage().toString());\r
258 }\r
259 this.jTextFieldOverrideID\r
260 .setText(String\r
261 .valueOf(this.dataHubs.getDataHubRecordArray(index).getOverrideID()));\r
262 }\r
263 }\r
264\r
265 /**\r
266 Disable all components when the mode is view\r
267 \r
268 @param isView true - The view mode; false - The non-view mode\r
269 \r
270 **/\r
271 public void setViewMode(boolean isView) {\r
272 this.jButtonOk.setVisible(false);\r
273 this.jButtonCancel.setVisible(false);\r
274 if (isView) {\r
275 this.jTextFieldDataHubRecord.setEnabled(!isView);\r
276 this.jTextFieldGuid.setEnabled(!isView);\r
277 this.jComboBoxUsage.setEnabled(!isView);\r
278 this.jTextFieldOverrideID.setEnabled(!isView);\r
279 this.jButtonCancel.setEnabled(!isView);\r
280 this.jButtonGenerateGuid.setEnabled(!isView);\r
281 this.jButtonOk.setEnabled(!isView);\r
282 }\r
283 }\r
284\r
285 /**\r
286 This method initializes this\r
287 \r
288 **/\r
289 private void init() {\r
290 this.setSize(500, 515);\r
291 this.setContentPane(getJContentPane());\r
292 this.setTitle("Data Hubs");\r
293 initFrame();\r
294 this.setViewMode(false);\r
295 }\r
296\r
297 /**\r
298 This method initializes jContentPane\r
299 \r
300 @return javax.swing.JPanel jContentPane\r
301 \r
302 **/\r
303 private JPanel getJContentPane() {\r
304 if (jContentPane == null) {\r
305 jLabelOverrideID = new JLabel();\r
306 jLabelOverrideID.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
307 jLabelOverrideID.setText("Override ID");\r
308 jLabelDataHubRecord = new JLabel();\r
309 jLabelDataHubRecord.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
310 jLabelDataHubRecord.setText("Data Hub Record");\r
311 jLabelGuid = new JLabel();\r
312 jLabelGuid.setText("Guid");\r
313 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
314 jLabelUsage = new JLabel();\r
315 jLabelUsage.setText("Usage");\r
316 jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
317 jContentPane = new JPanel();\r
318 jContentPane.setLayout(null);\r
319 jContentPane.add(jLabelGuid, null);\r
320 jContentPane.add(getJTextFieldGuid(), null);\r
321 jContentPane.add(jLabelUsage, null);\r
322 jContentPane.add(getJComboBoxUsage(), null);\r
323 jContentPane.add(getJButtonOk(), null);\r
324 jContentPane.add(getJButtonCancel(), null);\r
325 jContentPane.add(jLabelDataHubRecord, null);\r
326 jContentPane.add(getJTextFieldDataHubRecord(), null);\r
327 jContentPane.add(getJButtonGenerateGuid(), null);\r
328 jContentPane.add(jLabelOverrideID, null);\r
329 jContentPane.add(getJTextFieldOverrideID(), null);\r
330\r
331 jStarLabel1 = new StarLabel();\r
332 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
333\r
334 jContentPane.add(jStarLabel1, null);\r
335 }\r
336 return jContentPane;\r
337 }\r
338\r
339 /**\r
340 This method initializes Usage type\r
341 \r
342 **/\r
343 private void initFrame() {\r
344 jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
345 jComboBoxUsage.addItem("SOMETIMES_CONSUMED");\r
346 jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
347 jComboBoxUsage.addItem("SOMETIMES_PRODUCED");\r
348 jComboBoxUsage.addItem("PRIVATE");\r
349 }\r
350\r
351 /* (non-Javadoc)\r
352 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
353 *\r
354 * Override actionPerformed to listen all actions\r
355 * \r
356 */\r
357 public void actionPerformed(ActionEvent arg0) {\r
358 if (arg0.getSource() == jButtonOk) {\r
359 this.setEdited(true);\r
360 this.save();\r
361 this.dispose();\r
362 }\r
363 if (arg0.getSource() == jButtonCancel) {\r
364 this.dispose();\r
365 }\r
366\r
367 if (arg0.getSource() == jButtonGenerateGuid) {\r
368 jTextFieldGuid.setText(Tools.generateUuidString());\r
369 }\r
370 }\r
371\r
372 /**\r
373 Get DataHubsDocument.DataHubs\r
374 \r
375 @return DataHubsDocument.DataHubs\r
376 \r
377 **/\r
378 public DataHubsDocument.DataHubs getDataHubs() {\r
379 return dataHubs;\r
380 }\r
381\r
382 /**\r
383 Set DataHubsDocument.DataHubs\r
384 \r
385 @param dataHubs DataHubsDocument.DataHubs\r
386 \r
387 **/\r
388 public void setDataHubs(DataHubsDocument.DataHubs dataHubs) {\r
389 this.dataHubs = dataHubs;\r
390 }\r
391\r
392 /**\r
393 Data validation for all fields\r
394 \r
395 @retval true - All datas are valid\r
396 @retval false - At least one data is invalid\r
397 \r
398 **/\r
399 public boolean check() {\r
400 //\r
401 // Check if all required fields are not empty\r
402 //\r
403 if (isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
404 Log.err("Data Hub Record couldn't be empty");\r
405 return false;\r
406 }\r
407\r
408 //\r
409 // Check if all fields have correct data types \r
410 //\r
411 if (!isEmpty(this.jTextFieldGuid.getText()) && !DataValidation.isGuid(this.jTextFieldGuid.getText())) {\r
412 Log.err("Incorrect data type for Guid");\r
413 return false;\r
414 }\r
415 if (!isEmpty(this.jTextFieldOverrideID.getText())\r
416 && !DataValidation.isOverrideID(this.jTextFieldOverrideID.getText())) {\r
417 Log.err("Incorrect data type for Override ID");\r
418 return false;\r
419 }\r
420\r
421 return true;\r
422 }\r
423\r
424 /**\r
425 Save all components of DataHubs\r
426 if exists dataHubs, set the value directly\r
427 if not exists dataHubs, new an instance first\r
428 \r
429 **/\r
430 public void save() {\r
431 try {\r
432 if (this.dataHubs == null) {\r
433 dataHubs = DataHubsDocument.DataHubs.Factory.newInstance();\r
434 }\r
435 DataHubsDocument.DataHubs.DataHubRecord dataHubRecord = DataHubsDocument.DataHubs.DataHubRecord.Factory\r
436 .newInstance();\r
437 if (!isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
438 dataHubRecord.setStringValue(this.jTextFieldDataHubRecord.getText());\r
439 }\r
440 if (!isEmpty(this.jTextFieldGuid.getText())) {\r
441 dataHubRecord.setGuid(this.jTextFieldGuid.getText());\r
442 }\r
443 dataHubRecord.setUsage(DataHubUsage.Enum.forString(jComboBoxUsage.getSelectedItem().toString()));\r
444 if (!isEmpty(this.jTextFieldOverrideID.getText())) {\r
445 dataHubRecord.setOverrideID(Integer.parseInt(this.jTextFieldOverrideID.getText()));\r
446 }\r
447 if (location > -1) {\r
448 dataHubs.setDataHubRecordArray(location, dataHubRecord);\r
449 } else {\r
450 dataHubs.addNewDataHubRecord();\r
451 dataHubs.setDataHubRecordArray(dataHubs.getDataHubRecordList().size() - 1, dataHubRecord);\r
452 }\r
453 } catch (Exception e) {\r
454 Log.err("Update Data Hubs", e.getMessage());\r
455 }\r
456 }\r
457}\r