]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/ModuleIncludes.java
1. Modify start script to
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / module / ui / ModuleIncludes.java
CommitLineData
878ddf1f 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.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.IncludesDocument;\r
30import org.tianocore.PackageNameDocument;\r
31import org.tianocore.PackageType;\r
32import org.tianocore.PackageUsage;\r
33import org.tianocore.SupportedArchitectures;\r
34import org.tianocore.common.DataValidation;\r
35import org.tianocore.common.Log;\r
36import org.tianocore.packaging.common.ui.IDefaultMutableTreeNode;\r
37import org.tianocore.packaging.common.ui.IInternalFrame;\r
38import org.tianocore.packaging.common.ui.StarLabel;\r
2a8b1c0a 39import org.tianocore.packaging.workspace.common.Workspace;\r
878ddf1f 40\r
41/**\r
42 The class is used to create, update Include of MSA/MBD file\r
43 It extends IInternalFrame\r
44 \r
45 @since ModuleEditor 1.0\r
46\r
47 **/\r
48public class ModuleIncludes extends IInternalFrame implements ItemListener {\r
49\r
50 ///\r
51 /// Define class Serial Version UID\r
52 ///\r
53 private static final long serialVersionUID = 3465193035145152131L;\r
54\r
55 //\r
56 //Define class members\r
57 //\r
58 private IncludesDocument.Includes includes = null;\r
59\r
60 private int location = -1;\r
61 \r
62 private int intSelectedItemId = 0;\r
63\r
64 //\r
65 // 1 - Add; 2 - Update\r
66 //\r
67 private int operation = -1;\r
68\r
69 private Vector<String> vPackageName = new Vector<String>();\r
70\r
71 private Vector<String> vUsage = new Vector<String>();\r
72\r
73 private Vector<String> vPackageType = new Vector<String>();\r
74\r
75 private Vector<String> vUpdatedDate = new Vector<String>();\r
76\r
77 private JPanel jContentPane = null;\r
78\r
79 private JButton jButtonOk = null;\r
80\r
81 private JButton jButtonCancel = null;\r
82\r
83 private JLabel jLabelPackageName = null;\r
84\r
85 private JLabel jLabelPackageType = null;\r
86\r
87 private JComboBox jComboBoxPackageType = null;\r
88\r
89 private JLabel jLabelUsage = null;\r
90\r
91 private JComboBox jComboBoxUsage = null;\r
92\r
93 private StarLabel jStarLabel1 = null;\r
94\r
878ddf1f 95 private JComboBox jComboBoxFileList = null;\r
96\r
97 private JButton jButtonAdd = null;\r
98\r
99 private JButton jButtonUpdate = null;\r
100\r
101 private JButton jButtonRemove = null;\r
102\r
103 private JLabel jLabelUpdatedDate = null;\r
104\r
105 private JTextField jTextFieldUpdatedDate = null;\r
106\r
107 private JCheckBox jCheckBoxArch = null;\r
108\r
109 private JComboBox jComboBoxArch = null;\r
110\r
2a8b1c0a 111 private JComboBox jComboBoxPackageName = null;\r
112 \r
113 private Workspace ws = null;\r
114 \r
115 private Vector vecPackageName = null;\r
116\r
878ddf1f 117 /**\r
118 This method initializes jButtonOk \r
119 \r
120 @return javax.swing.JButton jButtonOk\r
121 \r
122 **/\r
123 private JButton getJButton() {\r
124 if (jButtonOk == null) {\r
125 jButtonOk = new JButton();\r
126 jButtonOk.setText("OK");\r
127 jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
128 jButtonOk.addActionListener(this);\r
129\r
130 }\r
131 return jButtonOk;\r
132 }\r
133\r
134 /**\r
135 This method initializes jButtonCancel \r
136 \r
137 @return javax.swing.JButton jButtonCancel\r
138 \r
139 **/\r
140 private JButton getJButton1() {\r
141 if (jButtonCancel == null) {\r
142 jButtonCancel = new JButton();\r
143 jButtonCancel.setText("Cancel");\r
144 jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
145 jButtonCancel.addActionListener(this);\r
146 }\r
147 return jButtonCancel;\r
148 }\r
149\r
150 /**\r
151 This method initializes jComboBoxPackageType \r
152 \r
153 @return javax.swing.JComboBox jComboBoxPackageType\r
154 \r
155 **/\r
156 private JComboBox getJComboBoxPackageType() {\r
157 if (jComboBoxPackageType == null) {\r
158 jComboBoxPackageType = new JComboBox();\r
159 jComboBoxPackageType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
160 }\r
161 return jComboBoxPackageType;\r
162 }\r
163\r
164 /**\r
165 This method initializes jComboBoxUsage \r
166 \r
167 @return javax.swing.JComboBox jComboBoxUsage\r
168 \r
169 **/\r
170 private JComboBox getJComboBoxUsage() {\r
171 if (jComboBoxUsage == null) {\r
172 jComboBoxUsage = new JComboBox();\r
173 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
174 }\r
175 return jComboBoxUsage;\r
176 }\r
177\r
878ddf1f 178 /**\r
179 This method initializes jComboBoxFileList \r
180 \r
181 @return javax.swing.JComboBox jComboBoxFileList\r
182 \r
183 **/\r
184 private JComboBox getJComboBoxFileList() {\r
185 if (jComboBoxFileList == null) {\r
186 jComboBoxFileList = new JComboBox();\r
187 jComboBoxFileList.setBounds(new java.awt.Rectangle(15, 110, 210, 20));\r
188 jComboBoxFileList.addActionListener(this);\r
189 jComboBoxFileList.addItemListener(this);\r
190 }\r
191 return jComboBoxFileList;\r
192 }\r
193\r
194 /**\r
195 This method initializes jButtonAdd \r
196 \r
197 @return javax.swing.JButton jButtonAdd\r
198 \r
199 **/\r
200 private JButton getJButtonAdd() {\r
201 if (jButtonAdd == null) {\r
202 jButtonAdd = new JButton();\r
203 jButtonAdd.setBounds(new java.awt.Rectangle(230, 110, 80, 20));\r
204 jButtonAdd.setText("Add");\r
205 jButtonAdd.addActionListener(this);\r
206 }\r
207 return jButtonAdd;\r
208 }\r
209\r
210 /**\r
211 This method initializes jButtonUpdate \r
212 \r
213 @return javax.swing.JButton jButtonUpdate\r
214 \r
215 **/\r
216 private JButton getJButtonUpdate() {\r
217 if (jButtonUpdate == null) {\r
218 jButtonUpdate = new JButton();\r
219 jButtonUpdate.setBounds(new java.awt.Rectangle(315, 110, 80, 20));\r
220 jButtonUpdate.setText("Update");\r
221 jButtonUpdate.addActionListener(this);\r
222 }\r
223 return jButtonUpdate;\r
224 }\r
225\r
226 /**\r
227 This method initializes jButtonRemove \r
228 \r
229 @return javax.swing.JButton jButtonRemove\r
230 \r
231 **/\r
232 private JButton getJButtonRemove() {\r
233 if (jButtonRemove == null) {\r
234 jButtonRemove = new JButton();\r
235 jButtonRemove.setBounds(new java.awt.Rectangle(400, 110, 80, 20));\r
236 jButtonRemove.setText("Remove");\r
237 jButtonRemove.addActionListener(this);\r
238 }\r
239 return jButtonRemove;\r
240 }\r
241\r
242 /**\r
243 This method initializes jTextFieldUpdatedDate \r
244 \r
245 @return javax.swing.JTextField jTextFieldUpdatedDate\r
246 \r
247 **/\r
248 private JTextField getJTextFieldUpdatedDate() {\r
249 if (jTextFieldUpdatedDate == null) {\r
250 jTextFieldUpdatedDate = new JTextField();\r
251 jTextFieldUpdatedDate.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
252 }\r
253 return jTextFieldUpdatedDate;\r
254 }\r
255\r
256 /**\r
257 This method initializes jCheckBoxArch \r
258 \r
259 @return javax.swing.JCheckBox jCheckBoxArch\r
260 \r
261 **/\r
262 private JCheckBox getJCheckBoxArch() {\r
263 if (jCheckBoxArch == null) {\r
264 jCheckBoxArch = new JCheckBox();\r
265 jCheckBoxArch.setBounds(new java.awt.Rectangle(10, 135, 120, 20));\r
266 jCheckBoxArch.setText("Specific Arch");\r
267 jCheckBoxArch.addActionListener(this);\r
268 }\r
269 return jCheckBoxArch;\r
270 }\r
271\r
272 /**\r
273 This method initializes jComboBoxArch \r
274 \r
275 @return javax.swing.JComboBox jComboBoxArch\r
276 \r
277 **/\r
278 private JComboBox getJComboBoxArch() {\r
279 if (jComboBoxArch == null) {\r
280 jComboBoxArch = new JComboBox();\r
281 jComboBoxArch.setBounds(new java.awt.Rectangle(140, 135, 340, 20));\r
282 jComboBoxArch.setEnabled(false);\r
283 }\r
284 return jComboBoxArch;\r
285 }\r
286\r
2a8b1c0a 287 /**\r
288 * This method initializes jComboBoxPackageName \r
289 * \r
290 * @return javax.swing.JComboBox \r
291 */\r
292 private JComboBox getJComboBoxPackageName() {\r
293 if (jComboBoxPackageName == null) {\r
294 jComboBoxPackageName = new JComboBox();\r
295 jComboBoxPackageName.setBounds(new java.awt.Rectangle(160,10,320,20));\r
296 }\r
297 return jComboBoxPackageName;\r
298 }\r
299\r
878ddf1f 300 public static void main(String[] args) {\r
301\r
302 }\r
303\r
304 /**\r
305 This is the default constructor\r
306 \r
307 **/\r
308 public ModuleIncludes() {\r
309 super();\r
310 init();\r
311 this.setVisible(true);\r
312 }\r
313\r
314 /**\r
315 This is the override edit constructor\r
316 \r
317 @param inIncludes The input data of IncludesDocument.Includes\r
318 \r
319 **/\r
320 public ModuleIncludes(IncludesDocument.Includes inIncludes) {\r
321 super();\r
322 init(inIncludes);\r
323 this.setVisible(true);\r
324 }\r
325\r
326 /**\r
327 This is the override edit constructor\r
328 \r
329 @param inIncludes The input data of IncludesDocument.Includes\r
330 @param type The input data of node type\r
331 @param index The input data of node index\r
332 \r
333 **/\r
334 public ModuleIncludes(IncludesDocument.Includes inIncludes, int type, int index) {\r
335 super();\r
336 this.setVisible(true);\r
337 }\r
338\r
339 /**\r
340 This is the override edit constructor\r
341 \r
342 @param inIncludes The input data of IncludesDocument.Includes\r
343 @param type The input data of node type\r
344 @param index The input data of node index\r
345 @param inOperation The input data of current operation type\r
346 \r
347 **/\r
348 public ModuleIncludes(IncludesDocument.Includes inIncludes, int type, int index, int inOperation) {\r
349 super();\r
350 init(inIncludes, type, index, inOperation);\r
351 this.operation = inOperation;\r
352 this.setVisible(true);\r
353 }\r
354\r
355 /**\r
356 This method initializes this\r
357 \r
358 @param inIncludes\r
359 \r
360 **/\r
361 private void init(IncludesDocument.Includes inIncludes) {\r
362 init();\r
363 this.setIncludes(inIncludes);\r
364 }\r
365\r
366 /**\r
367 This method initializes this\r
368 Fill values to all fields if these values are not empty\r
369 \r
370 @param inIncludes The input data of IncludesDocument.Includes\r
371 @param type The input data of node type\r
372 @param index The input data of node index\r
373 @param inOperation The input data of current operation type\r
374 \r
375 **/\r
376 private void init(IncludesDocument.Includes inIncludes, int type, int index, int inOperation) {\r
377 init(inIncludes);\r
378 this.location = index;\r
379 this.operation = inOperation;\r
380\r
381 if (operation == 2) {\r
382 this.jCheckBoxArch.setEnabled(false);\r
383 this.jComboBoxArch.setEnabled(false);\r
384\r
385 if (type == IDefaultMutableTreeNode.INCLUDES_PACKAGENAME) {\r
386 if (this.includes.getPackageNameList().size() > 0) {\r
387 for (int indexI = 0; indexI < this.includes.getPackageNameList().size(); indexI++) {\r
388 if (this.includes.getPackageNameArray(indexI).getStringValue() != null) {\r
389 vPackageName.addElement(this.includes.getPackageNameArray(indexI).getStringValue());\r
390 } else {\r
391 vPackageName.addElement("");\r
392 }\r
393 if (this.includes.getPackageNameArray(indexI).getUsage() != null) {\r
394 vUsage.addElement(this.includes.getPackageNameArray(indexI).getUsage().toString());\r
395 } else {\r
396 vUsage.addElement("ALWAYS_CONSUMED");\r
397 }\r
398 if (this.includes.getPackageNameArray(indexI).getPackageType() != null) {\r
399 vPackageType.addElement(this.includes.getPackageNameArray(indexI).getPackageType()\r
400 .toString());\r
401 } else {\r
402 vPackageType.addElement("SOURCE");\r
403 }\r
404 if (this.includes.getPackageNameArray(indexI).getUpdatedDate() != null) {\r
405 vUpdatedDate.addElement(this.includes.getPackageNameArray(indexI).getUpdatedDate());\r
406 } else {\r
407 vUpdatedDate.addElement("");\r
408 }\r
409 jComboBoxFileList.addItem(this.includes.getPackageNameArray(indexI).getStringValue());\r
410 }\r
411 }\r
412 }\r
413 if (type == IDefaultMutableTreeNode.INCLUDES_ARCH_ITEM) {\r
414 this.jCheckBoxArch.setSelected(true);\r
415 this.jComboBoxArch.setSelectedItem(this.includes.getArchArray(index).getArchType().toString());\r
416 for (int indexI = 0; indexI < this.includes.getArchArray(index).getPackageNameList().size(); indexI++) {\r
417 if (this.includes.getArchArray(index).getPackageNameArray(indexI).getStringValue() != null) {\r
418 vPackageName.addElement(this.includes.getArchArray(index).getPackageNameArray(indexI)\r
419 .getStringValue());\r
420 } else {\r
421 vPackageName.addElement("");\r
422 }\r
423 if (this.includes.getArchArray(index).getPackageNameArray(indexI).getUsage() != null) {\r
424 vUsage.addElement(this.includes.getArchArray(index).getPackageNameArray(indexI).getUsage()\r
425 .toString());\r
426 } else {\r
427 vUsage.addElement("");\r
428 }\r
429 if (this.includes.getArchArray(index).getPackageNameArray(indexI).getPackageType() != null) {\r
430 vPackageType.addElement(this.includes.getArchArray(index).getPackageNameArray(indexI)\r
431 .getPackageType().toString());\r
432 } else {\r
433 vPackageType.addElement("");\r
434 }\r
435 if (this.includes.getArchArray(index).getPackageNameArray(indexI).getUpdatedDate() != null) {\r
436 vUpdatedDate.addElement(this.includes.getArchArray(index).getPackageNameArray(indexI)\r
437 .getUpdatedDate());\r
438 } else {\r
439 vUpdatedDate.addElement("");\r
440 }\r
441 jComboBoxFileList.addItem(this.includes.getArchArray(index).getPackageNameArray(indexI)\r
442 .getStringValue());\r
443 }\r
444 }\r
445 }\r
446 }\r
447\r
448 /**\r
449 This method initializes this\r
450 \r
451 **/\r
452 private void init() {\r
453 this.setSize(500, 515);\r
454 this.setContentPane(getJContentPane());\r
455 this.setTitle("Includes");\r
456 initFrame();\r
457 this.setViewMode(false);\r
458 }\r
459\r
460 /**\r
461 Disable all components when the mode is view\r
462 \r
463 @param isView true - The view mode; false - The non-view mode\r
464 \r
465 **/\r
466 public void setViewMode(boolean isView) {\r
467 this.jButtonOk.setVisible(false);\r
468 this.jButtonCancel.setVisible(false);\r
469 if (isView) {\r
470 this.jComboBoxPackageType.setEnabled(!isView);\r
471 this.jComboBoxUsage.setEnabled(!isView);\r
2a8b1c0a 472 this.jComboBoxPackageName.setEnabled(!isView);\r
878ddf1f 473 this.jButtonAdd.setEnabled(!isView);\r
474 this.jButtonUpdate.setEnabled(!isView);\r
475 this.jButtonRemove.setEnabled(!isView);\r
476 this.jTextFieldUpdatedDate.setEnabled(!isView);\r
477 this.jCheckBoxArch.setEnabled(!isView);\r
478 this.jComboBoxArch.setEnabled(!isView);\r
479\r
480 this.jButtonCancel.setEnabled(!isView);\r
481 this.jButtonOk.setEnabled(!isView);\r
482 }\r
483 }\r
484\r
485 /**\r
486 This method initializes jContentPane\r
487 \r
488 @return javax.swing.JPanel jContentPane\r
489 \r
490 **/\r
491 private JPanel getJContentPane() {\r
492 if (jContentPane == null) {\r
493 jLabelUpdatedDate = new JLabel();\r
494 jLabelUpdatedDate.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
495 jLabelUpdatedDate.setText("Updated Date");\r
496 jLabelUsage = new JLabel();\r
497 jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
498 jLabelUsage.setText("Usage");\r
499 jLabelPackageType = new JLabel();\r
500 jLabelPackageType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
501 jLabelPackageType.setText("Package Type");\r
502 jLabelPackageName = new JLabel();\r
503 jLabelPackageName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
504 jLabelPackageName.setText("Package Name");\r
505 jContentPane = new JPanel();\r
506 jContentPane.setLayout(null);\r
507 jContentPane.add(getJButton(), null);\r
508 jContentPane.add(getJButton1(), null);\r
509 jContentPane.add(jLabelPackageName, null);\r
510 jContentPane.add(jLabelPackageType, null);\r
511 jContentPane.add(getJComboBoxPackageType(), null);\r
512 jContentPane.add(jLabelUsage, null);\r
513 jContentPane.add(getJComboBoxUsage(), null);\r
514\r
515 jStarLabel1 = new StarLabel();\r
516 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
517\r
518 jContentPane.add(jStarLabel1, null);\r
878ddf1f 519 jContentPane.add(getJComboBoxFileList(), null);\r
520 jContentPane.add(getJButtonAdd(), null);\r
521 jContentPane.add(getJButtonUpdate(), null);\r
522 jContentPane.add(getJButtonRemove(), null);\r
523 jContentPane.add(jLabelUpdatedDate, null);\r
524 jContentPane.add(getJTextFieldUpdatedDate(), null);\r
525 jContentPane.add(getJCheckBoxArch(), null);\r
526 jContentPane.add(getJComboBoxArch(), null);\r
2a8b1c0a 527 jContentPane.add(getJComboBoxPackageName(), null);\r
878ddf1f 528 }\r
529 return jContentPane;\r
530 }\r
531\r
532 /* (non-Javadoc)\r
533 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
534 *\r
535 * Override actionPerformed to listen all actions\r
536 * \r
537 */\r
538 public void actionPerformed(ActionEvent arg0) {\r
539 if (arg0.getSource() == jButtonOk) {\r
540 this.setEdited(true);\r
541 this.save();\r
542 this.dispose();\r
543 }\r
544 if (arg0.getSource() == jButtonCancel) {\r
545 this.dispose();\r
546 }\r
547 if (arg0.getSource() == jButtonAdd) {\r
548 if (!checkAdd()) {\r
549 return;\r
550 }\r
551 addToList();\r
552 }\r
553 if (arg0.getSource() == jButtonRemove) {\r
554 removeFromList();\r
555 }\r
556 if (arg0.getSource() == jButtonUpdate) {\r
557 if (!checkAdd()) {\r
558 return;\r
559 }\r
560 updateForList();\r
561 }\r
562\r
563 //\r
564 //When and only when checked Arch box then can choose different arch types\r
565 //\r
566 if (arg0.getSource() == jCheckBoxArch) {\r
567 if (this.jCheckBoxArch.isSelected()) {\r
568 this.jComboBoxArch.setEnabled(true);\r
569 } else {\r
570 this.jComboBoxArch.setEnabled(false);\r
571 }\r
572 }\r
573 }\r
574\r
575 /**\r
576 This method initializes Usage type, Package type and Arch type\r
577 \r
578 **/\r
579 private void initFrame() {\r
2a8b1c0a 580 ws = new Workspace();\r
581 vecPackageName = ws.getAllPackageName();\r
582 for (int index = 0; index < vecPackageName.size(); index++) {\r
583 jComboBoxPackageName.addItem(vecPackageName.elementAt(index));\r
584 }\r
585 \r
878ddf1f 586 jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
587 jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
588 jComboBoxUsage.addItem("DEFAULT");\r
589\r
590 jComboBoxPackageType.addItem("SOURCE");\r
591 jComboBoxPackageType.addItem("BINARY");\r
592 jComboBoxPackageType.addItem("MIXED");\r
593\r
594 jComboBoxArch.addItem("ALL");\r
595 jComboBoxArch.addItem("EBC");\r
596 jComboBoxArch.addItem("ARM");\r
597 jComboBoxArch.addItem("IA32");\r
598 jComboBoxArch.addItem("X64");\r
599 jComboBoxArch.addItem("IPF");\r
600 jComboBoxArch.addItem("PPC");\r
601 }\r
602\r
603 /**\r
604 Add current item to Vector\r
605 \r
606 **/\r
607 private void addToList() {\r
608 intSelectedItemId = vPackageName.size();\r
2a8b1c0a 609 vPackageName.addElement(this.jComboBoxPackageName.getSelectedItem().toString());\r
878ddf1f 610 vUsage.addElement(this.jComboBoxUsage.getSelectedItem().toString());\r
611 vPackageType.addElement(this.jComboBoxPackageType.getSelectedItem().toString());\r
612 vUpdatedDate.addElement(this.jTextFieldUpdatedDate.getText());\r
2a8b1c0a 613 jComboBoxFileList.addItem(this.jComboBoxPackageName.getSelectedItem().toString());\r
614 jComboBoxFileList.setSelectedItem(this.jComboBoxPackageName.getSelectedItem().toString());\r
878ddf1f 615 \r
616 //\r
617 // Reset select item index\r
618 //\r
619 intSelectedItemId = vPackageName.size();\r
620 \r
621 //\r
622 // Reload all fields of selected item\r
623 //\r
624 reloadFromList();\r
625 }\r
626\r
627 /**\r
628 Remove item from Vector\r
629 \r
630 **/\r
631 private void removeFromList() {\r
632 int intTempIndex = intSelectedItemId;\r
633 if (vPackageName.size() < 1) {\r
634 return;\r
635 }\r
636 \r
637 jComboBoxFileList.removeItemAt(intSelectedItemId);\r
638 \r
639 vPackageName.removeElementAt(intTempIndex);\r
640 vUsage.removeElementAt(intTempIndex);\r
641 vPackageType.removeElementAt(intTempIndex);\r
642 vUpdatedDate.removeElementAt(intTempIndex);\r
643 \r
644 //\r
645 // Reload all fields of selected item\r
646 //\r
647 reloadFromList();\r
648 }\r
649\r
650 /**\r
651 Update current item of Vector\r
652 \r
653 **/\r
654 private void updateForList() {\r
655 //\r
656 // Backup selected item index\r
657 //\r
658 int intTempIndex = intSelectedItemId;\r
659 \r
2a8b1c0a 660 vPackageName.setElementAt(this.jComboBoxPackageName.getSelectedItem().toString(), intSelectedItemId);\r
878ddf1f 661 vUsage.setElementAt(this.jComboBoxUsage.getSelectedItem().toString(), intSelectedItemId);\r
662 vPackageType.setElementAt(this.jComboBoxPackageType.getSelectedItem().toString(), intSelectedItemId);\r
663 vUpdatedDate.setElementAt(this.jTextFieldUpdatedDate.getText(), intSelectedItemId);\r
664 \r
665 jComboBoxFileList.removeAllItems();\r
666 for (int index = 0; index < vPackageName.size(); index++) {\r
667 jComboBoxFileList.addItem(vPackageName.elementAt(index));\r
668 }\r
669 \r
670 //\r
671 // Restore selected item index\r
672 //\r
673 intSelectedItemId = intTempIndex;\r
674 \r
675 //\r
676 // Reset select item index\r
677 //\r
678 jComboBoxFileList.setSelectedIndex(intSelectedItemId);\r
679 \r
680 //\r
681 // Reload all fields of selected item\r
682 //\r
683 reloadFromList();\r
684 }\r
685\r
686 /**\r
687 Refresh all fields' values of selected item of Vector\r
688 \r
689 **/\r
690 private void reloadFromList() {\r
691 if (vPackageName.size() > 0) {\r
692 //\r
693 // Get selected item index\r
694 //\r
695 intSelectedItemId = jComboBoxFileList.getSelectedIndex();\r
696 \r
2a8b1c0a 697 this.jComboBoxPackageName.setSelectedItem(vPackageName.elementAt(intSelectedItemId).toString());\r
878ddf1f 698 this.jComboBoxUsage.setSelectedItem(vUsage.elementAt(intSelectedItemId).toString());\r
699 this.jComboBoxPackageType.setSelectedItem(vPackageType.elementAt(intSelectedItemId).toString());\r
700 this.jTextFieldUpdatedDate.setText(vUpdatedDate.elementAt(intSelectedItemId).toString());\r
701 } else {\r
2a8b1c0a 702 this.jComboBoxPackageName.setSelectedIndex(0);\r
703 this.jComboBoxUsage.setSelectedIndex(0);\r
704 this.jComboBoxPackageType.setSelectedIndex(0);\r
878ddf1f 705 this.jTextFieldUpdatedDate.setText("");\r
706 }\r
707 }\r
708\r
709 /**\r
710 Get IncludesDocument.Includes\r
711 \r
712 @return IncludesDocument.Includes\r
713 \r
714 **/\r
715 public IncludesDocument.Includes getIncludes() {\r
716 return includes;\r
717 }\r
718\r
719 /**\r
720 Set IncludesDocument.Includes\r
721 \r
722 @param includes IncludesDocument.Includes\r
723 \r
724 **/\r
725 public void setIncludes(IncludesDocument.Includes includes) {\r
726 this.includes = includes;\r
727 }\r
728\r
729 /* (non-Javadoc)\r
730 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
731 *\r
732 * Reflesh the frame when selected item changed\r
733 * \r
734 */\r
735 public void itemStateChanged(ItemEvent arg0) {\r
736 if (arg0.getStateChange() == ItemEvent.SELECTED) {\r
737 reloadFromList();\r
738 }\r
739 }\r
740\r
741 /**\r
742 Data validation for all fields\r
743 \r
744 @retval true - All datas are valid\r
745 @retval false - At least one data is invalid\r
746 \r
747 **/\r
748 public boolean check() {\r
749 if (this.jComboBoxFileList.getItemCount() < 1) {\r
750 Log.err("Must have one include at least!");\r
751 return false;\r
752 }\r
753 return true;\r
754 }\r
755\r
756 /**\r
757 Data validation for all fields before add current item to Vector\r
758 \r
759 @retval true - All datas are valid\r
760 @retval false - At least one data is invalid\r
761 \r
762 **/\r
763 public boolean checkAdd() {\r
878ddf1f 764 //\r
765 // Check if all fields have correct data types \r
766 //\r
878ddf1f 767 if (!isEmpty(this.jTextFieldUpdatedDate.getText())\r
768 && !DataValidation.isDateType(this.jTextFieldUpdatedDate.getText())) {\r
769 Log.err("Incorrect data type for Update Date");\r
770 return false;\r
771 }\r
772\r
773 return true;\r
774 }\r
775\r
776 /**\r
777 Save all components of Includes\r
778 if exists includes, set the value directly\r
779 if not exists includes, new an instance first\r
780 \r
781 **/\r
782 public void save() {\r
783 try {\r
784 if (this.includes == null) {\r
785 includes = IncludesDocument.Includes.Factory.newInstance();\r
786 }\r
787 //\r
788 //Save as file name\r
789 //\r
790 if (!this.jCheckBoxArch.isSelected()) {\r
791 if (this.operation == 2) { //Add new packageName\r
792 //\r
793 //First remove all existed packageName\r
794 //\r
795 if (includes.getPackageNameList().size() > 0) {\r
796 for (int index = includes.getPackageNameList().size() - 1; index >= 0; index--) {\r
797 includes.removePackageName(index);\r
798 }\r
799 }\r
800 }\r
801 for (int index = 0; index < vPackageName.size(); index++) {\r
802 PackageNameDocument.PackageName packageName = PackageNameDocument.PackageName.Factory.newInstance();\r
803 if (!isEmpty(vPackageName.elementAt(index).toString())) {\r
804 packageName.setStringValue(vPackageName.elementAt(index).toString());\r
805 }\r
806 if (!isEmpty(vUsage.elementAt(index).toString())) {\r
807 packageName.setUsage(PackageUsage.Enum.forString(vUsage.elementAt(index).toString()));\r
808 }\r
809 if (!isEmpty(vPackageType.elementAt(index).toString())) {\r
810 packageName\r
811 .setPackageType(PackageType.Enum.forString(vPackageType.elementAt(index).toString()));\r
812 }\r
813 if (!isEmpty(vUpdatedDate.elementAt(index).toString())) {\r
814 packageName.setUpdatedDate(vUpdatedDate.elementAt(index).toString());\r
815 }\r
816 includes.addNewPackageName();\r
817 includes.setPackageNameArray(includes.getPackageNameList().size() - 1, packageName);\r
818 }\r
819 }\r
820 //\r
821 //Save as Arch\r
822 //\r
823 if (this.jCheckBoxArch.isSelected()) {\r
824 IncludesDocument.Includes.Arch arch = IncludesDocument.Includes.Arch.Factory.newInstance();\r
825 if (this.operation == 2) {\r
826 //\r
827 //First remove all existed filename\r
828 //\r
829 for (int index = includes.getArchArray(location).getPackageNameList().size() - 1; index >= 0; index--) {\r
830 includes.getArchArray(location).removePackageName(index);\r
831 }\r
832 }\r
833\r
834 for (int index = 0; index < vPackageName.size(); index++) {\r
835 PackageNameDocument.PackageName packageName = PackageNameDocument.PackageName.Factory.newInstance();\r
836 if (!isEmpty(vPackageName.elementAt(index).toString())) {\r
837 packageName.setStringValue(vPackageName.elementAt(index).toString());\r
838 }\r
839 if (!isEmpty(vUsage.elementAt(index).toString())) {\r
840 packageName.setUsage(PackageUsage.Enum.forString(vUsage.elementAt(index).toString()));\r
841 }\r
842 if (!isEmpty(vPackageType.elementAt(index).toString())) {\r
843 packageName\r
844 .setPackageType(PackageType.Enum.forString(vPackageType.elementAt(index).toString()));\r
845 }\r
846 if (!isEmpty(vUpdatedDate.elementAt(index).toString())) {\r
847 packageName.setUpdatedDate(vUpdatedDate.elementAt(index).toString());\r
848 }\r
849 arch.addNewPackageName();\r
850 arch.setPackageNameArray(arch.getPackageNameList().size() - 1, packageName);\r
851 }\r
852 arch\r
853 .setArchType(SupportedArchitectures.Enum.forString(this.jComboBoxArch.getSelectedItem().toString()));\r
854 if (location > -1) {\r
855 includes.setArchArray(location, arch);\r
856 } else {\r
857 includes.addNewArch();\r
858 includes.setArchArray(includes.getArchList().size() - 1, arch);\r
859 }\r
860 }\r
861 } catch (Exception e) {\r
862 Log.err("Update Source Files", e.getMessage());\r
863 }\r
864 }\r
865}\r