]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleGuids.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / ModuleGuids.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update Guids 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.frameworkwizard.module.ui;\r
16\r
17import java.awt.event.ActionEvent;\r
18import java.awt.event.ComponentEvent;\r
19import java.awt.event.ItemEvent;\r
20import java.util.Vector;\r
21\r
22import javax.swing.JButton;\r
23import javax.swing.JComboBox;\r
24import javax.swing.JLabel;\r
25import javax.swing.JPanel;\r
26import javax.swing.JScrollPane;\r
27import javax.swing.JTextArea;\r
28import javax.swing.JTextField;\r
29\r
30import org.tianocore.GuidUsage;\r
31import org.tianocore.GuidsDocument;\r
32import org.tianocore.GuidsDocument.Guids;\r
33import org.tianocore.GuidsDocument.Guids.GuidCNames;\r
34import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
35import org.tianocore.frameworkwizard.common.DataType;\r
36import org.tianocore.frameworkwizard.common.DataValidation;\r
37import org.tianocore.frameworkwizard.common.EnumerationData;\r
38import org.tianocore.frameworkwizard.common.Log;\r
39import org.tianocore.frameworkwizard.common.OpeningModuleType;\r
40import org.tianocore.frameworkwizard.common.Tools;\r
41import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
42import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
43import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
44import org.tianocore.frameworkwizard.module.Identification.Guids.GuidsIdentification;\r
45import org.tianocore.frameworkwizard.module.Identification.Guids.GuidsVector;\r
46import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
47\r
48/**\r
49 The class is used to create, update Guids of MSA/MBD file\r
50 It extends IInternalFrame\r
51 \r
52\r
53\r
54 **/\r
55public class ModuleGuids extends IInternalFrame {\r
56\r
57 ///\r
58 /// Define class Serial Version UID\r
59 ///\r
60 private static final long serialVersionUID = 6710858997766979803L;\r
61\r
62 //\r
63 //Define class members\r
64 //\r
65 private JPanel jContentPane = null;\r
66\r
67 private JLabel jLabelC_Name = null;\r
68\r
69 private JComboBox jComboBoxCName = null;\r
70\r
71 private JLabel jLabelUsage = null;\r
72\r
73 private JComboBox jComboBoxUsage = null;\r
74\r
75 private StarLabel jStarLabel1 = null;\r
76\r
77 private StarLabel jStarLabel2 = null;\r
78\r
79 private JLabel jLabelFeatureFlag = null;\r
80\r
81 private JTextField jTextFieldFeatureFlag = null;\r
82\r
83 private JLabel jLabelArch = null;\r
84\r
85 private JTextArea jTextAreaList = null;\r
86\r
87 private JComboBox jComboBoxList = null;\r
88\r
89 private JButton jButtonAdd = null;\r
90\r
91 private JButton jButtonRemove = null;\r
92\r
93 private JButton jButtonUpdate = null;\r
94\r
95 private JScrollPane jScrollPane = null;\r
96\r
97 private JScrollPane jScrollPaneList = null;\r
98\r
99 private ICheckBoxList iCheckBoxListArch = null;\r
100\r
101 private JScrollPane jScrollPaneArch = null;\r
102\r
103 private JLabel jLabelHelpText = null;\r
104\r
105 private JTextField jTextFieldHelpText = null;\r
106\r
107 //\r
108 // Not used by UI\r
109 //\r
110 private int intSelectedItemId = 0;\r
111\r
112 private OpeningModuleType omt = null;\r
113\r
114 private ModuleSurfaceArea msa = null;\r
115\r
116 private GuidsDocument.Guids guids = null;\r
117\r
118 private GuidsIdentification id = null;\r
119\r
120 private GuidsVector vid = new GuidsVector();\r
121\r
122 private EnumerationData ed = new EnumerationData();\r
123\r
124 private WorkspaceTools wt = new WorkspaceTools();\r
125\r
126 /**\r
127 This method initializes jTextFieldC_Name \r
128 \r
129 @return javax.swing.JTextField jTextFieldC_Name\r
130 \r
131 **/\r
132 private JComboBox getJComboBoxCName() {\r
133 if (jComboBoxCName == null) {\r
134 jComboBoxCName = new JComboBox();\r
135 jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
136 jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
137 }\r
138 return jComboBoxCName;\r
139 }\r
140\r
141 /**\r
142 This method initializes jComboBoxUsage \r
143 \r
144 @return javax.swing.JComboBox jComboBoxUsage\r
145 \r
146 **/\r
147 private JComboBox getJComboBoxUsage() {\r
148 if (jComboBoxUsage == null) {\r
149 jComboBoxUsage = new JComboBox();\r
150 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
151 jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
152 }\r
153 return jComboBoxUsage;\r
154 }\r
155\r
156 /**\r
157 This method initializes jTextFieldFeatureFlag \r
158 \r
159 @return javax.swing.JTextField \r
160 \r
161 **/\r
162 private JTextField getJTextFieldFeatureFlag() {\r
163 if (jTextFieldFeatureFlag == null) {\r
164 jTextFieldFeatureFlag = new JTextField();\r
165 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
166 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
167 }\r
168 return jTextFieldFeatureFlag;\r
169 }\r
170\r
171 /**\r
172 This method initializes jComboBoxFileList \r
173 \r
174 @return javax.swing.JComboBox jComboBoxFileList\r
175 \r
176 **/\r
177 private JComboBox getJComboBoxList() {\r
178 if (jComboBoxList == null) {\r
179 jComboBoxList = new JComboBox();\r
180 jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
181 jComboBoxList.addItemListener(this);\r
182 jComboBoxList.addActionListener(this);\r
183 jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
184 }\r
185 return jComboBoxList;\r
186 }\r
187\r
188 /**\r
189 This method initializes jButtonAdd \r
190 \r
191 @return javax.swing.JButton jButtonAdd\r
192 \r
193 **/\r
194 private JButton getJButtonAdd() {\r
195 if (jButtonAdd == null) {\r
196 jButtonAdd = new JButton();\r
197 jButtonAdd.setBounds(new java.awt.Rectangle(230, 195, 80, 20));\r
198 jButtonAdd.setText("Add");\r
199 jButtonAdd.addActionListener(this);\r
200 jButtonAdd.setPreferredSize(new java.awt.Dimension(80, 20));\r
201 }\r
202 return jButtonAdd;\r
203 }\r
204\r
205 /**\r
206 This method initializes jButtonRemove \r
207 \r
208 @return javax.swing.JButton jButtonRemove\r
209 \r
210 **/\r
211 private JButton getJButtonRemove() {\r
212 if (jButtonRemove == null) {\r
213 jButtonRemove = new JButton();\r
214 jButtonRemove.setBounds(new java.awt.Rectangle(400, 195, 80, 20));\r
215 jButtonRemove.setText("Remove");\r
216 jButtonRemove.addActionListener(this);\r
217 jButtonRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
218 }\r
219 return jButtonRemove;\r
220 }\r
221\r
222 /**\r
223 This method initializes jButtonUpdate \r
224 \r
225 @return javax.swing.JButton jButtonUpdate\r
226 \r
227 **/\r
228 private JButton getJButtonUpdate() {\r
229 if (jButtonUpdate == null) {\r
230 jButtonUpdate = new JButton();\r
231 jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
232 jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
233 jButtonUpdate.setText("Update");\r
234 jButtonUpdate.addActionListener(this);\r
235 }\r
236 return jButtonUpdate;\r
237 }\r
238\r
239 /**\r
240 * This method initializes jScrollPaneFileList \r
241 * \r
242 * @return javax.swing.JScrollPane \r
243 */\r
244 private JScrollPane getJScrollPaneList() {\r
245 if (jScrollPaneList == null) {\r
246 jScrollPaneList = new JScrollPane();\r
247 jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
248 jScrollPaneList.setViewportView(getJTextAreaList());\r
249 jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
250 }\r
251 return jScrollPaneList;\r
252 }\r
253\r
254 /**\r
255 This method initializes jScrollPane \r
256 \r
257 @return javax.swing.JScrollPane \r
258 */\r
259 private JScrollPane getJScrollPane() {\r
260 if (jScrollPane == null) {\r
261 jScrollPane = new JScrollPane();\r
262 jScrollPane.setViewportView(getJContentPane());\r
263 }\r
264 return jScrollPane;\r
265 }\r
266\r
267 /**\r
268 * This method initializes jTextAreaFileList \r
269 * \r
270 * @return javax.swing.JTextArea \r
271 */\r
272 private JTextArea getJTextAreaList() {\r
273 if (jTextAreaList == null) {\r
274 jTextAreaList = new JTextArea();\r
275 jTextAreaList.setEditable(false);\r
276\r
277 }\r
278 return jTextAreaList;\r
279 }\r
280\r
281 /**\r
282 This method initializes iCheckBoxListArch \r
283\r
284 @return ICheckBoxList \r
285 **/\r
286 private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
287 if (iCheckBoxListArch == null) {\r
288 iCheckBoxListArch = new ICheckBoxList();\r
289 iCheckBoxListArch.addFocusListener(this);\r
290 iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
291 }\r
292 return iCheckBoxListArch;\r
293 }\r
294\r
295 /**\r
296 This method initializes jScrollPaneArch \r
297\r
298 @return javax.swing.JScrollPane \r
299\r
300 **/\r
301 private JScrollPane getJScrollPaneArch() {\r
302 if (jScrollPaneArch == null) {\r
303 jScrollPaneArch = new JScrollPane();\r
304 jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
305 jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
306 jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
307 }\r
308 return jScrollPaneArch;\r
309 }\r
310\r
311 /**\r
312 This method initializes jTextFieldHelpText \r
313 \r
314 @return javax.swing.JTextField \r
315 \r
316 **/\r
317 private JTextField getJTextFieldHelpText() {\r
318 if (jTextFieldHelpText == null) {\r
319 jTextFieldHelpText = new JTextField();\r
320 jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
321 jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
322 }\r
323 return jTextFieldHelpText;\r
324 }\r
325\r
326 public static void main(String[] args) {\r
327\r
328 }\r
329\r
330 /**\r
331 This method initializes this\r
332 \r
333 **/\r
334 private void init() {\r
335 this.setSize(500, 515);\r
336 this.setContentPane(getJScrollPane());\r
337 this.setTitle("Guids");\r
338 initFrame();\r
339 this.setViewMode(false);\r
340 }\r
341\r
342 /**\r
343 This method initializes this\r
344 Fill values to all fields if these values are not empty\r
345 \r
346 @param inPackageDependencies\r
347\r
348 **/\r
349 private void init(Guids inGuids) {\r
350 init();\r
351 this.guids = inGuids;\r
352\r
353 if (this.guids != null) {\r
354 if (this.guids.getGuidCNamesList().size() > 0) {\r
355 for (int index = 0; index < this.guids.getGuidCNamesList().size(); index++) {\r
356 String arg0 = guids.getGuidCNamesList().get(index).getGuidCName();\r
357 String arg1 = null;\r
358 if (guids.getGuidCNamesList().get(index).getUsage() != null) {\r
359 arg1 = guids.getGuidCNamesList().get(index).getUsage().toString(); \r
360 }\r
361\r
362 String arg2 = guids.getGuidCNamesList().get(index).getFeatureFlag();\r
363 Vector<String> arg3 = Tools.convertListToVector(guids.getGuidCNamesList().get(index)\r
364 .getSupArchList());\r
365 String arg4 = guids.getGuidCNamesList().get(index).getHelpText();\r
366\r
367 id = new GuidsIdentification(arg0, arg1, arg2, arg3, arg4);\r
368 vid.addGuids(id);\r
369 }\r
370 }\r
371 }\r
372 //\r
373 // Update the list\r
374 //\r
375 Tools.generateComboBoxByVector(jComboBoxList, vid.getGuidsName());\r
376 reloadListArea();\r
377 }\r
378\r
379 /**\r
380 This is the default constructor\r
381 \r
382 **/\r
383 public ModuleGuids() {\r
384 super();\r
385 init();\r
386 this.setVisible(true);\r
387 }\r
388\r
389 /**\r
390 This is the override edit constructor\r
391 \r
392 @param inGuids The input data of GuidsDocument.Guids\r
393 \r
394 **/\r
395 public ModuleGuids(OpeningModuleType inOmt) {\r
396 super();\r
397 this.omt = inOmt;\r
398 this.msa = omt.getXmlMsa();\r
399 init(msa.getGuids());\r
400 this.setVisible(true);\r
401 }\r
402\r
403 /**\r
404 Disable all components when the mode is view\r
405 \r
406 @param isView true - The view mode; false - The non-view mode\r
407 \r
408 **/\r
409 public void setViewMode(boolean isView) {\r
410 if (isView) {\r
411 this.jComboBoxUsage.setEnabled(!isView);\r
412 }\r
413 }\r
414\r
415 /**\r
416 This method initializes jContentPane\r
417 \r
418 @return javax.swing.JPanel jContentPane\r
419 \r
420 **/\r
421 private JPanel getJContentPane() {\r
422 if (jContentPane == null) {\r
423 jLabelUsage = new JLabel();\r
424 jLabelUsage.setText("Usage");\r
425 jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
426 jLabelC_Name = new JLabel();\r
427 jLabelC_Name.setText("C_Name");\r
428 jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
429 jLabelArch = new JLabel();\r
430 jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
431 jLabelArch.setText("Arch");\r
432 jLabelFeatureFlag = new JLabel();\r
433 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
434 jLabelFeatureFlag.setText("Feature Flag");\r
435 jLabelHelpText = new JLabel();\r
436 jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
437 jLabelHelpText.setText("Help Text");\r
438\r
439 jContentPane = new JPanel();\r
440 jContentPane.setLayout(null);\r
441 jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
442\r
443 jContentPane.add(jLabelC_Name, null);\r
444 jContentPane.add(getJComboBoxCName(), null);\r
445 jContentPane.add(jLabelUsage, null);\r
446 jContentPane.add(getJComboBoxUsage(), null);\r
447 jContentPane.add(jLabelFeatureFlag, null);\r
448 jContentPane.add(jLabelArch, null);\r
449 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
450\r
451 jStarLabel1 = new StarLabel();\r
452 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
453 jStarLabel2 = new StarLabel();\r
454 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
455\r
456 jContentPane.add(jStarLabel1, null);\r
457 jContentPane.add(jStarLabel2, null);\r
458\r
459 jContentPane.add(getJComboBoxList(), null);\r
460 jContentPane.add(getJButtonAdd(), null);\r
461 jContentPane.add(getJButtonRemove(), null);\r
462 jContentPane.add(getJButtonUpdate(), null);\r
463 jContentPane.add(getJScrollPaneList(), null);\r
464 jContentPane.add(getJScrollPaneArch(), null);\r
465 jContentPane.add(jLabelHelpText, null);\r
466 jContentPane.add(getJTextFieldHelpText(), null);\r
467\r
468 initFrame();\r
469\r
470 }\r
471 return jContentPane;\r
472 }\r
473\r
474 /**\r
475 This method initializes Usage type\r
476 \r
477 **/\r
478 private void initFrame() {\r
479 Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllGuidDeclarationsFromWorkspace());\r
480 Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVGuidUsage());\r
481 this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
482 }\r
483\r
484 /* (non-Javadoc)\r
485 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
486 *\r
487 * Override actionPerformed to listen all actions\r
488 * \r
489 */\r
490 public void actionPerformed(ActionEvent arg0) {\r
491 if (arg0.getSource() == jButtonAdd) {\r
492 if (!checkAdd()) {\r
493 return;\r
494 }\r
495 addToList();\r
496 }\r
497 if (arg0.getSource() == jButtonRemove) {\r
498 removeFromList();\r
499 }\r
500 if (arg0.getSource() == jButtonUpdate) {\r
501 if (!checkAdd()) {\r
502 return;\r
503 }\r
504 updateForList();\r
505 }\r
506 }\r
507\r
508 /**\r
509 Data validation for all fields\r
510 \r
511 @retval true - All datas are valid\r
512 @retval false - At least one data is invalid\r
513 \r
514 **/\r
515 public boolean checkAdd() {\r
516 //\r
517 // Check if all fields have correct data types \r
518 //\r
519\r
520 //\r
521 // Check Name \r
522 //\r
523 if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
524 if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
525 Log.err("Incorrect data type for Guid Name");\r
526 return false;\r
527 }\r
528 }\r
529\r
530 //\r
531 // Check FeatureFlag\r
532 //\r
533 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
534 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
535 Log.err("Incorrect data type for Feature Flag");\r
536 return false;\r
537 }\r
538 }\r
539\r
540 return true;\r
541 }\r
542\r
543 /**\r
544 Save all components of Guids\r
545 if exists guids, set the value directly\r
546 if not exists guids, new an instance first\r
547 \r
548 **/\r
549 public void save() {\r
550 try {\r
551 int count = this.vid.size();\r
552\r
553 this.guids = Guids.Factory.newInstance();\r
554 if (count > 0) {\r
555 for (int index = 0; index < count; index++) {\r
556 GuidCNames p = GuidCNames.Factory.newInstance();\r
557 if (!isEmpty(vid.getGuids(index).getName())) {\r
558 p.setGuidCName(vid.getGuids(index).getName());\r
559 }\r
560 if (!isEmpty(vid.getGuids(index).getUsage())) {\r
561 p.setUsage(GuidUsage.Enum.forString(vid.getGuids(index).getUsage()));\r
562 }\r
563 if (!isEmpty(vid.getGuids(index).getFeatureFlag())) {\r
564 p.setFeatureFlag(vid.getGuids(index).getFeatureFlag());\r
565 }\r
566 if (vid.getGuids(index).getSupArchList() != null && vid.getGuids(index).getSupArchList().size() > 0) {\r
567 p.setSupArchList(vid.getGuids(index).getSupArchList());\r
568 }\r
569 if (!isEmpty(vid.getGuids(index).getHelp())) {\r
570 p.setHelpText(vid.getGuids(index).getHelp());\r
571 }\r
572 this.guids.addNewGuidCNames();\r
573 this.guids.setGuidCNamesArray(guids.getGuidCNamesList().size() - 1, p);\r
574 }\r
575 }\r
576\r
577 this.msa.setGuids(guids);\r
578 this.omt.setSaved(false);\r
579 } catch (Exception e) {\r
580 Log.err("Update Guids", e.getMessage());\r
581 }\r
582 }\r
583\r
584 /* (non-Javadoc)\r
585 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
586 * \r
587 * Override componentResized to resize all components when frame's size is changed\r
588 */\r
589 public void componentResized(ComponentEvent arg0) {\r
590 int intCurrentWidth = this.getJContentPane().getWidth();\r
591 int intCurrentHeight = this.getJContentPane().getHeight();\r
592 int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
593 int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
594\r
595 resizeComponentWidth(jComboBoxCName, intCurrentWidth, intPreferredWidth);\r
596 resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
597 resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
598 resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
599 resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
600\r
601 resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
602 resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
603\r
604 relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
605 relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
606 relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
607 }\r
608\r
609 private GuidsIdentification getCurrentGuids() {\r
610 String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
611 String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
612\r
613 String arg2 = this.jTextFieldFeatureFlag.getText();\r
614 Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
615 String arg4 = this.jTextFieldHelpText.getText();\r
616\r
617 id = new GuidsIdentification(arg0, arg1, arg2, arg3, arg4);\r
618 return id;\r
619 }\r
620\r
621 /**\r
622 Add current item to Vector\r
623 \r
624 **/\r
625 private void addToList() {\r
626 intSelectedItemId = vid.size();\r
627\r
628 vid.addGuids(getCurrentGuids());\r
629\r
630 jComboBoxList.addItem(id.getName());\r
631 jComboBoxList.setSelectedItem(id.getName());\r
632\r
633 //\r
634 // Reset select item index\r
635 //\r
636 intSelectedItemId = vid.size();\r
637\r
638 //\r
639 // Reload all fields of selected item\r
640 //\r
641 reloadFromList();\r
642\r
643 // \r
644 // Save to memory\r
645 //\r
646 save();\r
647 }\r
648\r
649 /**\r
650 Remove current item from Vector\r
651 \r
652 **/\r
653 private void removeFromList() {\r
654 //\r
655 // Check if exist items\r
656 //\r
657 if (this.vid.size() < 1) {\r
658 return;\r
659 }\r
660\r
661 int intTempIndex = intSelectedItemId;\r
662\r
663 jComboBoxList.removeItemAt(intSelectedItemId);\r
664\r
665 vid.removeGuids(intTempIndex);\r
666\r
667 //\r
668 // Reload all fields of selected item\r
669 //\r
670 reloadFromList();\r
671\r
672 // \r
673 // Save to memory\r
674 //\r
675 save();\r
676 }\r
677\r
678 /**\r
679 Update current item of Vector\r
680 \r
681 **/\r
682 private void updateForList() {\r
683 //\r
684 // Check if exist items\r
685 //\r
686 if (this.vid.size() < 1) {\r
687 return;\r
688 }\r
689\r
690 //\r
691 // Backup selected item index\r
692 //\r
693 int intTempIndex = intSelectedItemId;\r
694\r
695 vid.updateGuids(getCurrentGuids(), intTempIndex);\r
696\r
697 jComboBoxList.removeAllItems();\r
698 for (int index = 0; index < vid.size(); index++) {\r
699 jComboBoxList.addItem(vid.getGuids(index).getName());\r
700 }\r
701\r
702 //\r
703 // Restore selected item index\r
704 //\r
705 intSelectedItemId = intTempIndex;\r
706\r
707 //\r
708 // Reset select item index\r
709 //\r
710 jComboBoxList.setSelectedIndex(intSelectedItemId);\r
711\r
712 //\r
713 // Reload all fields of selected item\r
714 //\r
715 reloadFromList();\r
716\r
717 // \r
718 // Save to memory\r
719 //\r
720 save();\r
721 }\r
722\r
723 /**\r
724 Refresh all fields' values of selected item of Vector\r
725 \r
726 **/\r
727 private void reloadFromList() {\r
728 if (vid.size() > 0) {\r
729 //\r
730 // Get selected item index\r
731 //\r
732 intSelectedItemId = jComboBoxList.getSelectedIndex();\r
733\r
734 this.jComboBoxCName.setSelectedItem(vid.getGuids(intSelectedItemId).getName());\r
735 this.jComboBoxUsage.setSelectedItem(vid.getGuids(intSelectedItemId).getUsage());\r
736 this.jTextFieldHelpText.setText(vid.getGuids(intSelectedItemId).getHelp());\r
737\r
738 jTextFieldFeatureFlag.setText(vid.getGuids(intSelectedItemId).getFeatureFlag());\r
739 iCheckBoxListArch.setAllItemsUnchecked();\r
740 iCheckBoxListArch.initCheckedItem(true, vid.getGuids(intSelectedItemId).getSupArchList());\r
741\r
742 } else {\r
743 }\r
744\r
745 reloadListArea();\r
746 }\r
747\r
748 /**\r
749 Update list area pane via the elements of Vector\r
750 \r
751 **/\r
752 private void reloadListArea() {\r
753 String strListItem = "";\r
754 for (int index = 0; index < vid.size(); index++) {\r
755 strListItem = strListItem + vid.getGuids(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
756 }\r
757 this.jTextAreaList.setText(strListItem);\r
758 }\r
759\r
760 /* (non-Javadoc)\r
761 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
762 *\r
763 * Reflesh the frame when selected item changed\r
764 * \r
765 */\r
766 public void itemStateChanged(ItemEvent arg0) {\r
767 if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
768 reloadFromList();\r
769 }\r
770 }\r
771}\r