]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/MbdLibraries.java
Initial import.
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / module / ui / MbdLibraries.java
CommitLineData
878ddf1f 1/** @file\r
2 \r
3 The file is used to create, update MbdLibraries of a 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.packaging.module.ui;\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.JCheckBox;\r
24import javax.swing.JComboBox;\r
25import javax.swing.JLabel;\r
26import javax.swing.JPanel;\r
27import javax.swing.JTextField;\r
28\r
29import org.tianocore.LibrariesDocument;\r
30import org.tianocore.LibraryUsage;\r
31import org.tianocore.SupportedArchitectures;\r
32import org.tianocore.common.DataValidation;\r
33import org.tianocore.common.Log;\r
34import org.tianocore.common.Tools;\r
35import org.tianocore.packaging.common.ui.IDefaultMutableTreeNode;\r
36import org.tianocore.packaging.common.ui.IInternalFrame;\r
37import org.tianocore.packaging.common.ui.StarLabel;\r
38\r
39/**\r
40 The class is used to create, update MbdLibraries of a MBD file\r
41 It extends IInternalFrame\r
42 \r
43 @since ModuleEditor 1.0\r
44\r
45 **/\r
46public class MbdLibraries extends IInternalFrame implements ItemListener {\r
47\r
48 ///\r
49 /// Define class Serial Version UID\r
50 ///\r
51 private static final long serialVersionUID = 8042998899875417568L;\r
52\r
53 //\r
54 //Define class members\r
55 //\r
56 private LibrariesDocument.Libraries libraries = null;\r
57\r
58 private int location = -1;\r
59 \r
60 private int intSelectedItemId = 0;\r
61\r
62 //\r
63 //1 - Add; 2 - Update\r
64 //\r
65 private int operation = -1;\r
66\r
67 private Vector<String> vName = new Vector<String>();\r
68\r
69 private Vector<String> vGuid = new Vector<String>();\r
70\r
71 private Vector<String> vLibraryClass = new Vector<String>();\r
72\r
73 private Vector<String> vClassGuid = new Vector<String>();\r
74\r
75 private Vector<String> vVersion = new Vector<String>();\r
76\r
77 private Vector<String> vUsage = new Vector<String>();\r
78\r
79 private Vector<String> vOverrideID = new Vector<String>();\r
80\r
81 private JPanel jContentPane = null;\r
82\r
83 private JButton jButtonOk = null;\r
84\r
85 private JButton jButtonCancel = null;\r
86\r
87 private JLabel jLabelName = null;\r
88\r
89 private JTextField jTextFieldFileName = null;\r
90\r
91 private JLabel jLabelGuid = null;\r
92\r
93 private JTextField jTextFieldGuid = null;\r
94\r
95 private JButton jButtonGenerateGuid = null;\r
96\r
97 private JComboBox jComboBoxArch = null;\r
98\r
99 private JLabel jLabelLibraryClass = null;\r
100\r
101 private JTextField jTextFieldLibraryClass = null;\r
102\r
103 private JLabel jLabelUsage = null;\r
104\r
105 private JLabel jLabelClassGuid = null;\r
106\r
107 private JTextField jTextFieldClassGuid = null;\r
108\r
109 private JLabel jLabelOverrideID = null;\r
110\r
111 private JTextField jTextFieldOverrideID = null;\r
112\r
113 private JComboBox jComboBoxUsage = null;\r
114\r
115 private StarLabel jStarLabel1 = null;\r
116\r
117 private JComboBox jComboBoxFileList = null;\r
118\r
119 private JButton jButtonAdd = null;\r
120\r
121 private JButton jButtonRemove = null;\r
122\r
123 private JButton jButtonUpdate = null;\r
124\r
125 private JCheckBox jCheckBoxArch = null;\r
126\r
127 private JButton jButtonGenerateGuid2 = null;\r
128\r
129 private JLabel jLabelVersion = null;\r
130\r
131 private JTextField jTextFieldVersion = null;\r
132\r
133 /**\r
134 This method initializes jButtonOk \r
135 \r
136 @return javax.swing.JButton jButtonOk \r
137 \r
138 **/\r
139 private JButton getJButton() {\r
140 if (jButtonOk == null) {\r
141 jButtonOk = new JButton();\r
142 jButtonOk.setText("OK");\r
143 jButtonOk.setBounds(new java.awt.Rectangle(290, 240, 90, 20));\r
144 jButtonOk.addActionListener(this);\r
145 }\r
146 return jButtonOk;\r
147 }\r
148\r
149 /**\r
150 *This method initializes jButtonCancel \r
151 \r
152 @return javax.swing.JButton jButtonCancel\r
153 \r
154 **/\r
155 private JButton getJButtonCancel() {\r
156 if (jButtonCancel == null) {\r
157 jButtonCancel = new JButton();\r
158 jButtonCancel.setText("Cancel");\r
159 jButtonCancel.setBounds(new java.awt.Rectangle(390, 240, 90, 20));\r
160 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
161 jButtonCancel.addActionListener(this);\r
162 }\r
163 return jButtonCancel;\r
164 }\r
165\r
166 /**\r
167 This method initializes jTextFieldFileName \r
168 \r
169 @return javax.swing.JTextField jTextFieldFileName\r
170 \r
171 **/\r
172 private JTextField getJTextFieldSourceFilesDirectory() {\r
173 if (jTextFieldFileName == null) {\r
174 jTextFieldFileName = new JTextField();\r
175 jTextFieldFileName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
176 }\r
177 return jTextFieldFileName;\r
178 }\r
179\r
180 /**\r
181 This method initializes jTextFieldGuid \r
182 \r
183 @return javax.swing.JTextField jTextFieldGuid\r
184 \r
185 **/\r
186 private JTextField getJTextFieldGuid() {\r
187 if (jTextFieldGuid == null) {\r
188 jTextFieldGuid = new JTextField();\r
189 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 250, 20));\r
190 }\r
191 return jTextFieldGuid;\r
192 }\r
193\r
194 /**\r
195 This method initializes jButtonGenerateGuid \r
196 \r
197 @return javax.swing.JButton jButtonGenerateGuid\r
198 \r
199 **/\r
200 private JButton getJButtonGenerateGuid() {\r
201 if (jButtonGenerateGuid == null) {\r
202 jButtonGenerateGuid = new JButton();\r
203 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
204 jButtonGenerateGuid.setText("GEN");\r
205 jButtonGenerateGuid.addActionListener(this);\r
206 }\r
207 return jButtonGenerateGuid;\r
208 }\r
209\r
210 /**\r
211 This method initializes jComboBoxArch \r
212 \r
213 @return javax.swing.JComboBox jComboBoxArch\r
214 \r
215 **/\r
216 private JComboBox getJComboBoxArch() {\r
217 if (jComboBoxArch == null) {\r
218 jComboBoxArch = new JComboBox();\r
219 jComboBoxArch.setBounds(new java.awt.Rectangle(140, 210, 340, 20));\r
220 jComboBoxArch.setEnabled(false);\r
221 }\r
222 return jComboBoxArch;\r
223 }\r
224\r
225 /**\r
226 This method initializes jTextFieldLibraryClass \r
227 \r
228 @return javax.swing.JTextField jTextFieldLibraryClass\r
229 \r
230 **/\r
231 private JTextField getJTextFieldLibraryClass() {\r
232 if (jTextFieldLibraryClass == null) {\r
233 jTextFieldLibraryClass = new JTextField();\r
234 jTextFieldLibraryClass.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
235 }\r
236 return jTextFieldLibraryClass;\r
237 }\r
238\r
239 /**\r
240 This method initializes jTextFieldClassGuid \r
241 \r
242 @return javax.swing.JTextField jTextFieldClassGuid\r
243 \r
244 **/\r
245 private JTextField getJTextFieldClassGuid() {\r
246 if (jTextFieldClassGuid == null) {\r
247 jTextFieldClassGuid = new JTextField();\r
248 jTextFieldClassGuid.setBounds(new java.awt.Rectangle(160, 85, 250, 20));\r
249 }\r
250 return jTextFieldClassGuid;\r
251 }\r
252\r
253 /**\r
254 This method initializes jTextFieldOverrideID \r
255 \r
256 @return javax.swing.JTextField jTextFieldOverrideID\r
257 \r
258 **/\r
259 private JTextField getJTextFieldOverrideID() {\r
260 if (jTextFieldOverrideID == null) {\r
261 jTextFieldOverrideID = new JTextField();\r
262 jTextFieldOverrideID.setBounds(new java.awt.Rectangle(160, 160, 50, 20));\r
263 }\r
264 return jTextFieldOverrideID;\r
265 }\r
266\r
267 /**\r
268 This method initializes jComboBoxUsage \r
269 \r
270 @return javax.swing.JComboBox jComboBoxUsage\r
271 \r
272 **/\r
273 private JComboBox getJComboBoxUsage() {\r
274 if (jComboBoxUsage == null) {\r
275 jComboBoxUsage = new JComboBox();\r
276 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
277 }\r
278 return jComboBoxUsage;\r
279 }\r
280\r
281 /**\r
282 This method initializes jComboBoxFileList \r
283 \r
284 @return javax.swing.JComboBox jComboBoxFileList\r
285 \r
286 **/\r
287 private JComboBox getJComboBoxFileList() {\r
288 if (jComboBoxFileList == null) {\r
289 jComboBoxFileList = new JComboBox();\r
290 jComboBoxFileList.setBounds(new java.awt.Rectangle(15, 185, 210, 20));\r
291 jComboBoxFileList.addItemListener(this);\r
292 jComboBoxFileList.addActionListener(this);\r
293 }\r
294 return jComboBoxFileList;\r
295 }\r
296\r
297 /**\r
298 This method initializes jButtonAdd \r
299 \r
300 @return javax.swing.JButton jButtonAdd \r
301 \r
302 **/\r
303 private JButton getJButtonAdd() {\r
304 if (jButtonAdd == null) {\r
305 jButtonAdd = new JButton();\r
306 jButtonAdd.setBounds(new java.awt.Rectangle(230, 185, 80, 20));\r
307 jButtonAdd.setText("Add");\r
308 jButtonAdd.addActionListener(this);\r
309 }\r
310 return jButtonAdd;\r
311 }\r
312\r
313 /**\r
314 This method initializes jButtonRemove \r
315 \r
316 @return javax.swing.JButton jButtonRemove\r
317 \r
318 **/\r
319 private JButton getJButtonRemove() {\r
320 if (jButtonRemove == null) {\r
321 jButtonRemove = new JButton();\r
322 jButtonRemove.setBounds(new java.awt.Rectangle(400, 185, 80, 20));\r
323 jButtonRemove.setText("Remove");\r
324 jButtonRemove.addActionListener(this);\r
325 }\r
326 return jButtonRemove;\r
327 }\r
328\r
329 /**\r
330 This method initializes jButtonUpdate \r
331 \r
332 @return javax.swing.JButton jButtonUpdate\r
333 \r
334 **/\r
335 private JButton getJButtonUpdate() {\r
336 if (jButtonUpdate == null) {\r
337 jButtonUpdate = new JButton();\r
338 jButtonUpdate.setBounds(new java.awt.Rectangle(315, 185, 80, 20));\r
339 jButtonUpdate.setText("Update");\r
340 jButtonUpdate.addActionListener(this);\r
341 }\r
342 return jButtonUpdate;\r
343 }\r
344\r
345 /**\r
346 This method initializes jCheckBoxArch \r
347 \r
348 @return javax.swing.JCheckBox jCheckBoxArch\r
349 \r
350 **/\r
351 private JCheckBox getJCheckBoxArch() {\r
352 if (jCheckBoxArch == null) {\r
353 jCheckBoxArch = new JCheckBox();\r
354 jCheckBoxArch.setBounds(new java.awt.Rectangle(10, 210, 119, 20));\r
355 jCheckBoxArch.setText("Specific Arch");\r
356 jCheckBoxArch.addActionListener(this);\r
357 }\r
358 return jCheckBoxArch;\r
359 }\r
360\r
361 /**\r
362 This method initializes jButtonGenerateGuid2 \r
363 \r
364 @return javax.swing.JButton jButtonGenerateGuid2\r
365 \r
366 **/\r
367 private JButton getJButtonGenerateGuid2() {\r
368 if (jButtonGenerateGuid2 == null) {\r
369 jButtonGenerateGuid2 = new JButton();\r
370 jButtonGenerateGuid2.setBounds(new java.awt.Rectangle(415, 85, 65, 20));\r
371 jButtonGenerateGuid2.setText("GEN");\r
372 jButtonGenerateGuid2.addActionListener(this);\r
373 }\r
374 return jButtonGenerateGuid2;\r
375 }\r
376\r
377 /**\r
378 This method initializes jTextFieldVersion \r
379 \r
380 @return javax.swing.JTextField jTextFieldVersion\r
381 \r
382 **/\r
383 private JTextField getJTextFieldVersion() {\r
384 if (jTextFieldVersion == null) {\r
385 jTextFieldVersion = new JTextField();\r
386 jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
387 }\r
388 return jTextFieldVersion;\r
389 }\r
390\r
391 public static void main(String[] args) {\r
392\r
393 }\r
394\r
395 /**\r
396 This is the default constructor\r
397 \r
398 **/\r
399 public MbdLibraries() {\r
400 super();\r
401 init();\r
402 this.setVisible(true);\r
403 }\r
404\r
405 /**\r
406 This is the override edit constructor\r
407 \r
408 @param inLibraries The input LibrariesDocument.Libraries\r
409 \r
410 **/\r
411 public MbdLibraries(LibrariesDocument.Libraries inLibraries) {\r
412 super();\r
413 init(inLibraries);\r
414 this.setVisible(true);\r
415 }\r
416\r
417 /**\r
418 This is the override edit constructor\r
419 \r
420 @param inLibraries The input LibrariesDocument.Libraries\r
421 @param type The input data of node type\r
422 @param index The input data of node index\r
423 \r
424 **/\r
425 public MbdLibraries(LibrariesDocument.Libraries inLibraries, int type, int index) {\r
426 super();\r
427 init(inLibraries);\r
428 this.setVisible(true);\r
429 }\r
430\r
431 /**\r
432 This is the override edit constructor\r
433 \r
434 @param inLibraries The input LibrariesDocument.Libraries\r
435 @param type The input data of node type\r
436 @param index The input data of node index\r
437 @param inOperation The input data of operation type\r
438 \r
439 **/\r
440 public MbdLibraries(LibrariesDocument.Libraries inLibraries, int type, int index, int inOperation) {\r
441 super();\r
442 init(inLibraries, type, index, inOperation);\r
443 this.operation = inOperation;\r
444 this.setVisible(true);\r
445 }\r
446\r
447 /**\r
448 This method initializes this\r
449 \r
450 @param inLibraries LibrariesDocument.Libraries\r
451 \r
452 **/\r
453 private void init(LibrariesDocument.Libraries inLibraries) {\r
454 init();\r
455 this.setLibraries(inLibraries);\r
456 }\r
457\r
458 /**\r
459 This method initializes this\r
460 Fill values to all fields if these values are not empty\r
461 \r
462 @param inLibraries LibrariesDocument.Libraries\r
463 @param type The input data of node type\r
464 @param index The input data of node index\r
465 @param inOperation The input data of operation type\r
466 \r
467 **/\r
468 private void init(LibrariesDocument.Libraries inLibraries, int type, int index, int inOperation) {\r
469 init(inLibraries);\r
470 this.location = index;\r
471 this.operation = inOperation;\r
472\r
473 if (operation == 2) {\r
474 this.jCheckBoxArch.setEnabled(false);\r
475 this.jComboBoxArch.setEnabled(false);\r
476\r
477 if (type == IDefaultMutableTreeNode.LIBRARIES_LIBRARY) {\r
478 if (this.libraries.getLibraryList().size() > 0) {\r
479 for (int indexI = 0; indexI < this.libraries.getLibraryList().size(); indexI++) {\r
480 if (this.libraries.getLibraryArray(indexI).getStringValue() != null) {\r
481 vName.addElement(this.libraries.getLibraryArray(indexI).getStringValue());\r
482 } else {\r
483 vName.addElement("");\r
484 }\r
485 if (this.libraries.getLibraryArray(indexI).getGuid() != null) {\r
486 vGuid.addElement(this.libraries.getLibraryArray(indexI).getGuid());\r
487 } else {\r
488 vGuid.addElement("");\r
489 }\r
490 if (this.libraries.getLibraryArray(indexI).getLibraryClass() != null) {\r
491 vLibraryClass.addElement(this.libraries.getLibraryArray(indexI).getLibraryClass());\r
492 } else {\r
493 vLibraryClass.addElement("");\r
494 }\r
495 if (this.libraries.getLibraryArray(indexI).getClassGuid() != null) {\r
496 vClassGuid.addElement(this.libraries.getLibraryArray(indexI).getClassGuid());\r
497 } else {\r
498 vClassGuid.addElement("");\r
499 }\r
500 if (this.libraries.getLibraryArray(indexI).getVersion() != null) {\r
501 vVersion.addElement(this.libraries.getLibraryArray(indexI).getVersion());\r
502 } else {\r
503 vVersion.addElement("");\r
504 }\r
505 if (this.libraries.getLibraryArray(indexI).getUsage() != null) {\r
506 vUsage.addElement(this.libraries.getLibraryArray(indexI).getUsage().toString());\r
507 } else {\r
508 vUsage.addElement("ALWAYS_CONSUMED");\r
509 }\r
510 vOverrideID.addElement(String.valueOf(this.libraries.getLibraryArray(indexI).getOverrideID()));\r
511 jComboBoxFileList.addItem(this.libraries.getLibraryArray(indexI).getStringValue());\r
512 }\r
513 }\r
514 }\r
515 if (type == IDefaultMutableTreeNode.LIBRARIES_ARCH_ITEM) {\r
516 this.jCheckBoxArch.setSelected(true);\r
517 this.jComboBoxArch.setSelectedItem(this.libraries.getArchArray(index).getArchType().toString());\r
518 for (int indexI = 0; indexI < this.libraries.getArchArray(index).getLibraryList().size(); indexI++) {\r
519 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getStringValue() != null) {\r
520 vName.addElement(this.libraries.getArchArray(index).getLibraryArray(indexI).getStringValue());\r
521 } else {\r
522 vName.addElement("");\r
523 }\r
524 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getGuid() != null) {\r
525 vGuid.addElement(this.libraries.getArchArray(index).getLibraryArray(indexI).getGuid());\r
526 } else {\r
527 vGuid.addElement("");\r
528 }\r
529 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getLibraryClass() != null) {\r
530 vLibraryClass.addElement(this.libraries.getArchArray(index).getLibraryArray(indexI)\r
531 .getLibraryClass());\r
532 } else {\r
533 vLibraryClass.addElement("");\r
534 }\r
535 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getClassGuid() != null) {\r
536 vClassGuid\r
537 .addElement(this.libraries.getArchArray(index).getLibraryArray(indexI).getClassGuid());\r
538 } else {\r
539 vClassGuid.addElement("");\r
540 }\r
541 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getVersion() != null) {\r
542 vVersion.addElement(this.libraries.getArchArray(index).getLibraryArray(indexI).getVersion());\r
543 } else {\r
544 vVersion.addElement("");\r
545 }\r
546 if (this.libraries.getArchArray(index).getLibraryArray(indexI).getUsage() != null) {\r
547 vUsage.addElement(this.libraries.getArchArray(index).getLibraryArray(indexI).getUsage()\r
548 .toString());\r
549 } else {\r
550 vUsage.addElement("");\r
551 }\r
552 vOverrideID.addElement(String.valueOf(this.libraries.getArchArray(index).getLibraryArray(indexI).getOverrideID()));\r
553 jComboBoxFileList.addItem(this.libraries.getArchArray(index).getLibraryArray(indexI)\r
554 .getStringValue());\r
555 }\r
556 }\r
557 }\r
558 }\r
559\r
560 /**\r
561 This method initializes this\r
562 \r
563 **/\r
564 private void init() {\r
565 this.setSize(500, 515);\r
566 this.setName("JFrame");\r
567 this.setContentPane(getJContentPane());\r
568 this.setTitle("Source Files");\r
569 initFrame();\r
570 this.setViewMode(false);\r
571 }\r
572\r
573 /**\r
574 Disable all components when the mode is view\r
575 \r
576 @param isView true - The view mode; false - The non-view mode\r
577 \r
578 **/\r
579 public void setViewMode(boolean isView) {\r
580 this.jButtonOk.setVisible(false);\r
581 this.jButtonCancel.setVisible(false);\r
582 if (isView) {\r
583 this.jTextFieldFileName.setEnabled(!isView);\r
584 this.jTextFieldGuid.setEnabled(!isView);\r
585 this.jButtonGenerateGuid.setEnabled(!isView);\r
586 this.jComboBoxArch.setEnabled(!isView);\r
587 this.jTextFieldLibraryClass.setEnabled(!isView);\r
588 this.jTextFieldClassGuid.setEnabled(!isView);\r
589 this.jTextFieldOverrideID.setEnabled(!isView);\r
590 this.jComboBoxUsage.setEnabled(!isView);\r
591 this.jButtonAdd.setEnabled(!isView);\r
592 this.jButtonRemove.setEnabled(!isView);\r
593 this.jButtonUpdate.setEnabled(!isView);\r
594 this.jCheckBoxArch.setEnabled(!isView);\r
595 this.jTextFieldVersion.setEnabled(!isView);\r
596\r
597 this.jButtonOk.setEnabled(!isView);\r
598 this.jButtonCancel.setEnabled(!isView);\r
599 this.jButtonGenerateGuid.setEnabled(!isView);\r
600 this.jButtonGenerateGuid2.setEnabled(!isView);\r
601 }\r
602 }\r
603\r
604 /**\r
605 This method initializes jContentPane\r
606 \r
607 @return javax.swing.JPanel jContentPane\r
608 \r
609 **/\r
610 private JPanel getJContentPane() {\r
611 if (jContentPane == null) {\r
612 jLabelVersion = new JLabel();\r
613 jLabelVersion.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
614 jLabelVersion.setText("Version");\r
615 jLabelOverrideID = new JLabel();\r
616 jLabelOverrideID.setBounds(new java.awt.Rectangle(15, 160, 140, 20));\r
617 jLabelOverrideID.setText("Override ID");\r
618 jLabelClassGuid = new JLabel();\r
619 jLabelClassGuid.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
620 jLabelClassGuid.setText("Class Guid");\r
621 jLabelUsage = new JLabel();\r
622 jLabelUsage.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
623 jLabelUsage.setText("Usage");\r
624 jLabelLibraryClass = new JLabel();\r
625 jLabelLibraryClass.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
626 jLabelLibraryClass.setText("Library Class");\r
627 jLabelGuid = new JLabel();\r
628 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
629 jLabelGuid.setText("Guid");\r
630 jLabelName = new JLabel();\r
631 jLabelName.setText("Name");\r
632 jLabelName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
633 jContentPane = new JPanel();\r
634 jContentPane.setLayout(null);\r
635 jContentPane.add(getJButton(), null);\r
636 jContentPane.add(getJButtonCancel(), null);\r
637 jContentPane.add(jLabelName, null);\r
638 jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
639 jContentPane.add(jLabelGuid, null);\r
640 jContentPane.add(getJTextFieldGuid(), null);\r
641 jContentPane.add(getJButtonGenerateGuid(), null);\r
642 jContentPane.add(getJComboBoxArch(), null);\r
643 jContentPane.add(jLabelLibraryClass, null);\r
644 jContentPane.add(getJTextFieldLibraryClass(), null);\r
645 jContentPane.add(jLabelUsage, null);\r
646 jContentPane.add(jLabelClassGuid, null);\r
647 jContentPane.add(getJTextFieldClassGuid(), null);\r
648 jContentPane.add(getJButtonGenerateGuid2(), null);\r
649 jContentPane.add(jLabelVersion, null);\r
650 jContentPane.add(getJTextFieldVersion(), null);\r
651 jContentPane.add(jLabelOverrideID, null);\r
652 jContentPane.add(getJTextFieldOverrideID(), null);\r
653 jContentPane.add(getJComboBoxUsage(), null);\r
654\r
655 jStarLabel1 = new StarLabel();\r
656 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
657\r
658 jContentPane.add(jStarLabel1, null);\r
659 jContentPane.add(getJComboBoxFileList(), null);\r
660 jContentPane.add(getJButtonAdd(), null);\r
661 jContentPane.add(getJButtonRemove(), null);\r
662 jContentPane.add(getJButtonUpdate(), null);\r
663 jContentPane.add(getJCheckBoxArch(), null);\r
664\r
665 }\r
666 return jContentPane;\r
667 }\r
668\r
669 /* (non-Javadoc)\r
670 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
671 *\r
672 * Override actionPerformed to listen all actions\r
673 * \r
674 */\r
675 public void actionPerformed(ActionEvent arg0) {\r
676 if (arg0.getSource() == jButtonOk) {\r
677 this.setEdited(true);\r
678 this.save();\r
679 this.dispose();\r
680 }\r
681 if (arg0.getSource() == jButtonCancel) {\r
682 this.dispose();\r
683 }\r
684 if (arg0.getSource() == jButtonGenerateGuid) {\r
685 jTextFieldGuid.setText(Tools.generateUuidString());\r
686 }\r
687 if (arg0.getSource() == jButtonGenerateGuid2) {\r
688 jTextFieldClassGuid.setText(Tools.generateUuidString());\r
689 }\r
690 if (arg0.getSource() == jButtonAdd) {\r
691 if (!checkAdd()) {\r
692 return;\r
693 }\r
694 addToList();\r
695 }\r
696 if (arg0.getSource() == jButtonRemove) {\r
697 removeFromList();\r
698 }\r
699 if (arg0.getSource() == jButtonUpdate) {\r
700 if (!checkAdd()) {\r
701 return;\r
702 }\r
703 updateForList();\r
704 }\r
705 if (arg0.getSource() == jCheckBoxArch) {\r
706 if (this.jCheckBoxArch.isSelected()) {\r
707 this.jComboBoxArch.setEnabled(true);\r
708 } else {\r
709 this.jComboBoxArch.setEnabled(false);\r
710 }\r
711 }\r
712 }\r
713\r
714 /**\r
715 Init the items of Usage and Arch\r
716 \r
717 **/\r
718 private void initFrame() {\r
719 jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
720 jComboBoxUsage.addItem("SOMETIMES_CONSUMED");\r
721 jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
722 jComboBoxUsage.addItem("SOMETIMES_PRODUCED");\r
723 jComboBoxUsage.addItem("DEFAULT");\r
724 jComboBoxUsage.addItem("PRIVATE");\r
725\r
726 jComboBoxArch.addItem("ALL");\r
727 jComboBoxArch.addItem("EBC");\r
728 jComboBoxArch.addItem("ARM");\r
729 jComboBoxArch.addItem("IA32");\r
730 jComboBoxArch.addItem("X64");\r
731 jComboBoxArch.addItem("IPF");\r
732 jComboBoxArch.addItem("PPC");\r
733 }\r
734\r
735 /**\r
736 Add current item to Vector\r
737 \r
738 **/\r
739 private void addToList() {\r
740 intSelectedItemId = vName.size();\r
741 vName.addElement(this.jTextFieldFileName.getText());\r
742 vGuid.addElement(this.jTextFieldGuid.getText());\r
743 vLibraryClass.addElement(this.jTextFieldLibraryClass.getText());\r
744 vClassGuid.addElement(this.jTextFieldClassGuid.getText());\r
745 vVersion.addElement(this.jTextFieldVersion.getText());\r
746 vUsage.addElement(this.jComboBoxUsage.getSelectedItem().toString());\r
747 vOverrideID.addElement(this.jTextFieldOverrideID.getText());\r
748 jComboBoxFileList.addItem(this.jTextFieldFileName.getText());\r
749 jComboBoxFileList.setSelectedItem(this.jTextFieldFileName.getText());\r
750 \r
751 //\r
752 // Reset select item index\r
753 //\r
754 intSelectedItemId = vName.size();\r
755 \r
756 //\r
757 // Reload all fields of selected item\r
758 //\r
759 reloadFromList();\r
760 }\r
761\r
762 /**\r
763 Remove current item from Vector\r
764 \r
765 **/\r
766 private void removeFromList() {\r
767 int intTempIndex = intSelectedItemId;\r
768 if (vName.size() < 1) {\r
769 return;\r
770 }\r
771 \r
772 jComboBoxFileList.removeItemAt(intSelectedItemId);\r
773 \r
774 vName.removeElementAt(intTempIndex);\r
775 vGuid.removeElementAt(intTempIndex);\r
776 vLibraryClass.removeElementAt(intTempIndex);\r
777 vClassGuid.removeElementAt(intTempIndex);\r
778 vVersion.removeElementAt(intTempIndex);\r
779 vUsage.removeElementAt(intTempIndex);\r
780 vOverrideID.removeElementAt(intTempIndex);\r
781 \r
782 //\r
783 // Reload all fields of selected item\r
784 //\r
785 reloadFromList();\r
786 }\r
787\r
788 /**\r
789 Update current item of Vector\r
790 \r
791 **/\r
792 private void updateForList() {\r
793 //\r
794 // Backup selected item index\r
795 //\r
796 int intTempIndex = intSelectedItemId;\r
797 vName.setElementAt(this.jTextFieldFileName.getText(), intSelectedItemId);\r
798 vGuid.setElementAt(this.jTextFieldGuid.getText(), intSelectedItemId);\r
799 vLibraryClass.setElementAt(this.jTextFieldLibraryClass.getText(), intSelectedItemId);\r
800 vClassGuid.setElementAt(this.jTextFieldClassGuid.getText(), intSelectedItemId);\r
801 vVersion.setElementAt(this.jTextFieldVersion.getText(), intSelectedItemId);\r
802 vUsage.setElementAt(this.jComboBoxUsage.getSelectedItem().toString(), intSelectedItemId);\r
803 vOverrideID.setElementAt(this.jTextFieldOverrideID.getText(), intSelectedItemId);\r
804 \r
805 jComboBoxFileList.removeAllItems();\r
806 for (int index = 0; index < vName.size(); index++) {\r
807 jComboBoxFileList.addItem(vName.elementAt(index));\r
808 }\r
809 \r
810 //\r
811 // Restore selected item index\r
812 //\r
813 intSelectedItemId = intTempIndex;\r
814 \r
815 //\r
816 // Reset select item index\r
817 //\r
818 jComboBoxFileList.setSelectedIndex(intSelectedItemId);\r
819 \r
820 //\r
821 // Reload all fields of selected item\r
822 //\r
823 reloadFromList();\r
824 }\r
825\r
826 /**\r
827 Refresh all fields' values of selected item of Vector\r
828 \r
829 **/\r
830 private void reloadFromList() {\r
831 if (vName.size() > 0) {\r
832 //\r
833 // Get selected item index\r
834 //\r
835 intSelectedItemId = jComboBoxFileList.getSelectedIndex();\r
836 \r
837 this.jTextFieldFileName.setText(vName.elementAt(intSelectedItemId).toString());\r
838 this.jComboBoxUsage.setSelectedItem(vUsage.elementAt(intSelectedItemId).toString());\r
839 this.jTextFieldGuid.setText(vGuid.elementAt(intSelectedItemId).toString());\r
840 this.jTextFieldLibraryClass.setText(vLibraryClass.elementAt(intSelectedItemId).toString());\r
841 this.jTextFieldClassGuid.setText(vClassGuid.elementAt(intSelectedItemId).toString());\r
842 this.jTextFieldVersion.setText(vVersion.elementAt(intSelectedItemId).toString());\r
843 this.jTextFieldOverrideID.setText(vOverrideID.elementAt(intSelectedItemId).toString());\r
844 } else {\r
845 this.jTextFieldFileName.setText("");\r
846 this.jComboBoxUsage.setSelectedIndex(0);\r
847 this.jTextFieldGuid.setText("");\r
848 this.jTextFieldLibraryClass.setText("");\r
849 this.jTextFieldClassGuid.setText("");\r
850 this.jTextFieldVersion.setText("");\r
851 this.jTextFieldOverrideID.setText("");\r
852 }\r
853 }\r
854\r
855 /* (non-Javadoc)\r
856 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
857 *\r
858 * Reflesh the frame when selected item changed \r
859 */\r
860 public void itemStateChanged(ItemEvent arg0) {\r
861 if (arg0.getStateChange() == ItemEvent.SELECTED) {\r
862 reloadFromList();\r
863 }\r
864 }\r
865\r
866 /**\r
867 Data validation for all fields before save\r
868 \r
869 @retval true - All datas are valid\r
870 @retval false - At least one data is invalid\r
871 \r
872 **/\r
873 public boolean check() {\r
874 if (this.jComboBoxFileList.getItemCount() < 1) {\r
875 Log.err("Must have one Library at least!");\r
876 return false;\r
877 }\r
878 return true;\r
879 }\r
880\r
881 /**\r
882 Data validation for all fields before add current item to Vector\r
883 \r
884 @retval true - All datas are valid\r
885 @retval false - At least one data is invalid\r
886 \r
887 **/\r
888 public boolean checkAdd() {\r
889 //\r
890 // Check if all required fields are not empty\r
891 //\r
892 if (isEmpty(this.jTextFieldFileName.getText())) {\r
893 Log.err("File Name couldn't be empty");\r
894 return false;\r
895 }\r
896\r
897 //\r
898 // Check if all fields have correct data types \r
899 //\r
900 if (!DataValidation.isBaseName(this.jTextFieldFileName.getText())) {\r
901 Log.err("Incorrect data type for Name");\r
902 return false;\r
903 }\r
904 if (!isEmpty(this.jTextFieldGuid.getText()) && !DataValidation.isGuid(this.jTextFieldGuid.getText())) {\r
905 Log.err("Incorrect data type for Guid");\r
906 return false;\r
907 }\r
908 if (!isEmpty(this.jTextFieldLibraryClass.getText())\r
909 && !DataValidation.isPath(this.jTextFieldLibraryClass.getText())) {\r
910 Log.err("Incorrect data type for Path");\r
911 return false;\r
912 }\r
913 if (!isEmpty(this.jTextFieldClassGuid.getText()) && !DataValidation.isGuid(this.jTextFieldClassGuid.getText())) {\r
914 Log.err("Incorrect data type for Guid");\r
915 return false;\r
916 }\r
917 if (!isEmpty(this.jTextFieldOverrideID.getText())\r
918 && !DataValidation.isOverrideID(this.jTextFieldOverrideID.getText())) {\r
919 Log.err("Incorrect data type for Override ID");\r
920 return false;\r
921 }\r
922\r
923 return true;\r
924 }\r
925\r
926 /**\r
927 Save all components of Mbd Libraries\r
928 if exists libraries, set the value directly\r
929 if not exists libraries, new an instance first\r
930 \r
931 **/\r
932 public void save() {\r
933 try {\r
934 if (this.libraries == null) {\r
935 libraries = LibrariesDocument.Libraries.Factory.newInstance();\r
936 }\r
937 //\r
938 //Save as file name\r
939 //\r
940 if (!this.jCheckBoxArch.isSelected()) {\r
941 if (this.operation == 2) { //Add new filename\r
942 //\r
943 //First remove all existed filename\r
944 //\r
945 if (libraries.getLibraryList().size() > 0) {\r
946 for (int index = libraries.getLibraryList().size() - 1; index >= 0; index--) {\r
947 libraries.removeLibrary(index);\r
948 }\r
949 }\r
950 }\r
951 LibrariesDocument.Libraries.Library library = LibrariesDocument.Libraries.Library.Factory.newInstance();\r
952 for (int index = 0; index < vName.size(); index++) {\r
953 if (!isEmpty(vName.elementAt(index).toString())) {\r
954 library.setStringValue(vName.elementAt(index).toString());\r
955 }\r
956 if (!isEmpty(vGuid.elementAt(index).toString())) {\r
957 library.setGuid(vGuid.elementAt(index).toString());\r
958 }\r
959 if (!isEmpty(vLibraryClass.elementAt(index).toString())) {\r
960 library.setLibraryClass(vLibraryClass.elementAt(index).toString());\r
961 }\r
962 if (!isEmpty(vClassGuid.elementAt(index).toString())) {\r
963 library.setClassGuid(vClassGuid.elementAt(index).toString());\r
964 }\r
965 if (!isEmpty(vVersion.elementAt(index).toString())) {\r
966 library.setVersion(vVersion.elementAt(index).toString());\r
967 }\r
968 if (!isEmpty(vUsage.elementAt(index).toString())) {\r
969 library.setUsage(LibraryUsage.Enum.forString(vUsage.elementAt(index).toString()));\r
970 }\r
971 if (!isEmpty(vOverrideID.elementAt(index).toString())) {\r
972 library.setOverrideID(Integer.parseInt(vOverrideID.elementAt(index).toString()));\r
973 }\r
974 libraries.addNewLibrary();\r
975 libraries.setLibraryArray(libraries.getLibraryList().size() - 1, library);\r
976 }\r
977 }\r
978 //\r
979 //Save as Arch\r
980 //\r
981 if (this.jCheckBoxArch.isSelected()) {\r
982 LibrariesDocument.Libraries.Arch arch = LibrariesDocument.Libraries.Arch.Factory.newInstance();\r
983 if (this.operation == 2) {\r
984 //First remove all existed filename\r
985 for (int index = libraries.getArchArray(location).getLibraryList().size() - 1; index >= 0; index--) {\r
986 libraries.getArchArray(location).removeLibrary(index);\r
987 }\r
988 }\r
989 for (int index = 0; index < vName.size(); index++) {\r
990 LibrariesDocument.Libraries.Arch.Library library = LibrariesDocument.Libraries.Arch.Library.Factory.newInstance();\r
991 if (!isEmpty(vName.elementAt(index).toString())) {\r
992 library.setStringValue(vName.elementAt(index).toString());\r
993 }\r
994 if (!isEmpty(vGuid.elementAt(index).toString())) {\r
995 library.setGuid(vGuid.elementAt(index).toString());\r
996 }\r
997 if (!isEmpty(vLibraryClass.elementAt(index).toString())) {\r
998 library.setLibraryClass(vLibraryClass.elementAt(index).toString());\r
999 }\r
1000 if (!isEmpty(vClassGuid.elementAt(index).toString())) {\r
1001 library.setClassGuid(vClassGuid.elementAt(index).toString());\r
1002 }\r
1003 if (!isEmpty(vVersion.elementAt(index).toString())) {\r
1004 library.setVersion(vVersion.elementAt(index).toString());\r
1005 }\r
1006 if (!isEmpty(vUsage.elementAt(index).toString())) {\r
1007 library.setUsage(LibraryUsage.Enum.forString(vUsage.elementAt(index).toString()));\r
1008 }\r
1009 if (!isEmpty(vOverrideID.elementAt(index).toString())) {\r
1010 library.setOverrideID(Integer.parseInt(vOverrideID.elementAt(index).toString()));\r
1011 }\r
1012 arch.addNewLibrary();\r
1013 arch.setLibraryArray(arch.getLibraryList().size() - 1, library);\r
1014 }\r
1015 arch\r
1016 .setArchType(SupportedArchitectures.Enum.forString(this.jComboBoxArch.getSelectedItem().toString()));\r
1017 if (location > -1) {\r
1018 libraries.setArchArray(location, arch);\r
1019 } else {\r
1020 libraries.addNewArch();\r
1021 libraries.setArchArray(libraries.getArchList().size() - 1, arch);\r
1022 }\r
1023 }\r
1024 } catch (Exception e) {\r
1025 Log.err("Update Source Files", e.getMessage());\r
1026 }\r
1027 }\r
1028\r
1029 /**\r
1030 Get LibrariesDocument.Libraries\r
1031 \r
1032 @return LibrariesDocument.Libraries\r
1033 \r
1034 **/\r
1035 public LibrariesDocument.Libraries getLibraries() {\r
1036 return libraries;\r
1037 }\r
1038\r
1039 /**\r
1040 Set LibrariesDocument.Libraries\r
1041 \r
1042 @param libraries The input LibrariesDocument.Libraries\r
1043 \r
1044 **/\r
1045 public void setLibraries(LibrariesDocument.Libraries libraries) {\r
1046 this.libraries = libraries;\r
1047 }\r
1048}\r