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