3 The file is used to create, update DataHub of MSA/MBD file
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
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.
15 package org
.tianocore
.frameworkwizard
.module
.ui
;
17 import java
.awt
.event
.ActionEvent
;
18 import java
.awt
.event
.ComponentEvent
;
19 import java
.awt
.event
.ItemEvent
;
20 import java
.awt
.event
.ItemListener
;
21 import java
.util
.Vector
;
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
;
31 import org
.tianocore
.ExternsDocument
;
32 import org
.tianocore
.PcdDriverTypes
;
33 import org
.tianocore
.ExternsDocument
.Externs
;
34 import org
.tianocore
.ExternsDocument
.Externs
.Extern
;
35 import org
.tianocore
.ModuleSurfaceAreaDocument
.ModuleSurfaceArea
;
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
.Tools
;
41 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
42 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
43 import org
.tianocore
.frameworkwizard
.common
.ui
.iCheckBoxList
.ICheckBoxList
;
44 import org
.tianocore
.frameworkwizard
.module
.Identifications
.Externs
.ExternsIdentification
;
45 import org
.tianocore
.frameworkwizard
.module
.Identifications
.Externs
.ExternsVector
;
48 The class is used to create, update DataHub of MSA/MBD file
49 It extends IInternalFrame
54 public class ModuleExterns
extends IInternalFrame
implements ItemListener
{
57 /// Define class Serial Version UID
59 private static final long serialVersionUID
= -7382008402932047191L;
62 //Define class members
64 private JPanel jContentPane
= null;
66 private JLabel jLabelName
= null;
68 private JComboBox jComboBoxType
= null;
70 private JTextArea jTextAreaList
= null;
72 private JComboBox jComboBoxList
= null;
74 private JButton jButtonAdd
= null;
76 private JButton jButtonRemove
= null;
78 private JButton jButtonUpdate
= null;
80 private JScrollPane jScrollPane
= null;
82 private JScrollPane jScrollPaneList
= null;
84 private JLabel jLabelPcdIsDriver
= null;
86 private JComboBox jComboBoxPcdIsDriver
= null;
88 private JLabel jLabelC_Name
= null;
90 private JTextField jTextFieldC_Name
= null;
92 private JLabel jLabelFeatureFlag
= null;
94 private JLabel jLabelArch
= null;
96 private JTextField jTextFieldFeatureFlag
= null;
98 private ICheckBoxList iCheckBoxListArch
= null;
100 private JScrollPane jScrollPaneArch
= null;
105 private int intSelectedItemId
= 0;
107 private OpeningModuleType omt
= null;
109 private ModuleSurfaceArea msa
= null;
111 private ExternsDocument
.Externs externs
= null;
113 private ExternsIdentification id
= null;
115 private ExternsVector vid
= new ExternsVector();
117 private EnumerationData ed
= new EnumerationData();
120 This method initializes jComboBoxType
122 @return javax.swing.JComboBox jComboBoxType
125 private JComboBox
getJComboBoxType() {
126 if (jComboBoxType
== null) {
127 jComboBoxType
= new JComboBox();
128 jComboBoxType
.setBounds(new java
.awt
.Rectangle(160, 35, 320, 20));
129 jComboBoxType
.setPreferredSize(new java
.awt
.Dimension(320, 20));
131 return jComboBoxType
;
135 This method initializes jComboBoxFileList
137 @return javax.swing.JComboBox jComboBoxFileList
140 private JComboBox
getJComboBoxList() {
141 if (jComboBoxList
== null) {
142 jComboBoxList
= new JComboBox();
143 jComboBoxList
.setBounds(new java
.awt
.Rectangle(15, 195, 210, 20));
144 jComboBoxList
.addItemListener(this);
145 jComboBoxList
.addActionListener(this);
146 jComboBoxList
.setPreferredSize(new java
.awt
.Dimension(210, 20));
148 return jComboBoxList
;
152 This method initializes jButtonAdd
154 @return javax.swing.JButton jButtonAdd
157 private JButton
getJButtonAdd() {
158 if (jButtonAdd
== null) {
159 jButtonAdd
= new JButton();
160 jButtonAdd
.setBounds(new java
.awt
.Rectangle(230, 195, 80, 20));
161 jButtonAdd
.setText("Add");
162 jButtonAdd
.addActionListener(this);
163 jButtonAdd
.setPreferredSize(new java
.awt
.Dimension(80, 20));
169 This method initializes jButtonRemove
171 @return javax.swing.JButton jButtonRemove
174 private JButton
getJButtonRemove() {
175 if (jButtonRemove
== null) {
176 jButtonRemove
= new JButton();
177 jButtonRemove
.setBounds(new java
.awt
.Rectangle(400, 195, 80, 20));
178 jButtonRemove
.setText("Remove");
179 jButtonRemove
.addActionListener(this);
180 jButtonRemove
.setPreferredSize(new java
.awt
.Dimension(80, 20));
182 return jButtonRemove
;
186 This method initializes jButtonUpdate
188 @return javax.swing.JButton jButtonUpdate
191 private JButton
getJButtonUpdate() {
192 if (jButtonUpdate
== null) {
193 jButtonUpdate
= new JButton();
194 jButtonUpdate
.setBounds(new java
.awt
.Rectangle(315, 195, 80, 20));
195 jButtonUpdate
.setPreferredSize(new java
.awt
.Dimension(80, 20));
196 jButtonUpdate
.setText("Update");
197 jButtonUpdate
.addActionListener(this);
199 return jButtonUpdate
;
203 * This method initializes jScrollPaneFileList
205 * @return javax.swing.JScrollPane
207 private JScrollPane
getJScrollPaneList() {
208 if (jScrollPaneList
== null) {
209 jScrollPaneList
= new JScrollPane();
210 jScrollPaneList
.setBounds(new java
.awt
.Rectangle(15, 220, 465, 240));
211 jScrollPaneList
.setViewportView(getJTextAreaList());
212 jScrollPaneList
.setPreferredSize(new java
.awt
.Dimension(465, 240));
214 return jScrollPaneList
;
218 This method initializes jScrollPane
220 @return javax.swing.JScrollPane
222 private JScrollPane
getJScrollPane() {
223 if (jScrollPane
== null) {
224 jScrollPane
= new JScrollPane();
225 jScrollPane
.setViewportView(getJContentPane());
231 * This method initializes jTextAreaFileList
233 * @return javax.swing.JTextArea
235 private JTextArea
getJTextAreaList() {
236 if (jTextAreaList
== null) {
237 jTextAreaList
= new JTextArea();
238 jTextAreaList
.setEditable(false);
240 return jTextAreaList
;
244 * This method initializes jComboBoxPcdIsDriver
246 * @return javax.swing.JComboBox
248 private JComboBox
getJComboBoxPcdIsDriver() {
249 if (jComboBoxPcdIsDriver
== null) {
250 jComboBoxPcdIsDriver
= new JComboBox();
251 jComboBoxPcdIsDriver
.setLocation(new java
.awt
.Point(160, 10));
252 jComboBoxPcdIsDriver
.setPreferredSize(new java
.awt
.Dimension(320, 20));
253 jComboBoxPcdIsDriver
.setSize(new java
.awt
.Dimension(320, 20));
254 jComboBoxPcdIsDriver
.addItemListener(this);
256 return jComboBoxPcdIsDriver
;
260 This method initializes jTextFieldC_Name
262 @return javax.swing.JTextField
265 private JTextField
getJTextFieldC_Name() {
266 if (jTextFieldC_Name
== null) {
267 jTextFieldC_Name
= new JTextField();
268 jTextFieldC_Name
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
269 jTextFieldC_Name
.setPreferredSize(new java
.awt
.Dimension(320,20));
271 return jTextFieldC_Name
;
275 This method initializes jTextFieldFeatureFlag
277 @return javax.swing.JTextField
280 private JTextField
getJTextFieldFeatureFlag() {
281 if (jTextFieldFeatureFlag
== null) {
282 jTextFieldFeatureFlag
= new JTextField();
283 jTextFieldFeatureFlag
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 20));
284 jTextFieldFeatureFlag
.setPreferredSize(new java
.awt
.Dimension(320, 20));
286 return jTextFieldFeatureFlag
;
290 This method initializes iCheckBoxListArch
292 @return ICheckBoxList
294 private ICheckBoxList
getICheckBoxListSupportedArchitectures() {
295 if (iCheckBoxListArch
== null) {
296 iCheckBoxListArch
= new ICheckBoxList();
297 iCheckBoxListArch
.addFocusListener(this);
298 iCheckBoxListArch
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
300 return iCheckBoxListArch
;
304 This method initializes jScrollPaneArch
306 @return javax.swing.JScrollPane
309 private JScrollPane
getJScrollPaneArch() {
310 if (jScrollPaneArch
== null) {
311 jScrollPaneArch
= new JScrollPane();
312 jScrollPaneArch
.setBounds(new java
.awt
.Rectangle(160, 110, 320, 80));
313 jScrollPaneArch
.setPreferredSize(new java
.awt
.Dimension(320, 80));
314 jScrollPaneArch
.setViewportView(getICheckBoxListSupportedArchitectures());
316 return jScrollPaneArch
;
319 public static void main(String
[] args
) {
324 This method initializes this
327 private void init() {
328 this.setSize(500, 515);
329 this.setContentPane(getJScrollPane());
330 this.setTitle("Externs");
335 This method initializes this
336 Fill values to all fields if these values are not empty
338 @param inPackageDependencies
341 private void init(Externs inExterns
) {
343 this.externs
= inExterns
;
345 if (this.externs
!= null) {
349 if (this.externs
.getPcdIsDriver() != null) {
350 this.jComboBoxPcdIsDriver
.setSelectedItem(this.externs
.getPcdIsDriver().toString());
356 if (this.externs
.getSpecificationList().size() > 0) {
357 for (int index
= 0; index
< this.externs
.getSpecificationList().size(); index
++) {
358 String arg0
= externs
.getSpecificationList().get(index
);
359 String arg1
= EnumerationData
.EXTERNS_SPECIFICATION
;
361 id
= new ExternsIdentification(arg0
, arg1
, null, null);
369 if (this.externs
.getExternList().size() > 0) {
370 for (int index
= 0; index
< this.externs
.getExternList().size(); index
++) {
373 if (this.externs
.getExternList().get(index
).getModuleEntryPoint() != null) {
374 arg0
= this.externs
.getExternList().get(index
).getModuleEntryPoint();
375 arg1
= EnumerationData
.EXTERNS_MODULE_ENTRY_POINT
;
377 if (this.externs
.getExternList().get(index
).getModuleUnloadImage() != null) {
378 arg0
= this.externs
.getExternList().get(index
).getModuleUnloadImage();
379 arg1
= EnumerationData
.EXTERNS_MODULE_UNLOAD_IMAGE
;
382 if (this.externs
.getExternList().get(index
).getConstructor() != null) {
383 arg0
= this.externs
.getExternList().get(index
).getConstructor();
384 arg1
= EnumerationData
.EXTERNS_CONSTRUCTOR
;
386 if (this.externs
.getExternList().get(index
).getDestructor() != null) {
387 arg0
= this.externs
.getExternList().get(index
).getDestructor();
388 arg1
= EnumerationData
.EXTERNS_DESTRUCTOR
;
391 if (this.externs
.getExternList().get(index
).getDriverBinding() != null) {
392 arg0
= this.externs
.getExternList().get(index
).getDriverBinding();
393 arg1
= EnumerationData
.EXTERNS_DRIVER_BINDING
;
395 if (this.externs
.getExternList().get(index
).getComponentName() != null) {
396 arg0
= this.externs
.getExternList().get(index
).getComponentName();
397 arg1
= EnumerationData
.EXTERNS_COMPONENT_NAME
;
399 if (this.externs
.getExternList().get(index
).getDriverConfig() != null) {
400 arg0
= this.externs
.getExternList().get(index
).getDriverConfig();
401 arg1
= EnumerationData
.EXTERNS_DRIVER_CONFIG
;
403 if (this.externs
.getExternList().get(index
).getDriverDiag() != null) {
404 arg0
= this.externs
.getExternList().get(index
).getDriverDiag();
405 arg1
= EnumerationData
.EXTERNS_DRIVER_DIAG
;
408 if (this.externs
.getExternList().get(index
).getSetVirtualAddressMapCallBack() != null) {
409 arg0
= this.externs
.getExternList().get(index
).getSetVirtualAddressMapCallBack();
410 arg1
= EnumerationData
.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK
;
412 if (this.externs
.getExternList().get(index
).getExitBootServicesCallBack() != null) {
413 arg0
= this.externs
.getExternList().get(index
).getExitBootServicesCallBack();
414 arg1
= EnumerationData
.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK
;
417 String arg2
= externs
.getExternList().get(index
).getFeatureFlag();
418 Vector
<String
> arg3
= Tools
419 .convertListToVector(externs
.getExternList().get(index
).getSupArchList());
421 id
= new ExternsIdentification(arg0
, arg1
, arg2
, arg3
);
429 Tools
.generateComboBoxByVector(jComboBoxList
, vid
.getExternsName());
434 This is the default constructor
437 public ModuleExterns() {
440 this.setVisible(true);
444 This is the override edit constructor
446 @param inExterns The input data of ExternsDocument.Externs
449 public ModuleExterns(OpeningModuleType inOmt
) {
452 this.msa
= omt
.getXmlMsa();
453 init(msa
.getExterns());
454 this.setVisible(true);
458 This method initializes jContentPane
460 @return javax.swing.JPanel jContentPane
463 private JPanel
getJContentPane() {
464 if (jContentPane
== null) {
465 jLabelC_Name
= new JLabel();
466 jLabelC_Name
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
467 jLabelC_Name
.setText("Value");
468 jLabelPcdIsDriver
= new JLabel();
469 jLabelPcdIsDriver
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
470 jLabelPcdIsDriver
.setText("Pcd Is Driver");
471 jLabelName
= new JLabel();
472 jLabelName
.setText("Choose Type");
473 jLabelName
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
474 jLabelArch
= new JLabel();
475 jLabelArch
.setBounds(new java
.awt
.Rectangle(15, 110, 140, 20));
476 jLabelArch
.setText("Arch");
477 jLabelFeatureFlag
= new JLabel();
478 jLabelFeatureFlag
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
479 jLabelFeatureFlag
.setText("Feature Flag");
481 jContentPane
= new JPanel();
482 jContentPane
.setLayout(null);
483 jContentPane
.setPreferredSize(new java
.awt
.Dimension(490, 475));
485 jContentPane
.add(jLabelName
, null);
486 jContentPane
.add(getJComboBoxType(), null);
487 jContentPane
.add(jLabelFeatureFlag
, null);
488 jContentPane
.add(jLabelArch
, null);
489 jContentPane
.add(getJTextFieldFeatureFlag(), null);
490 jContentPane
.add(getJScrollPaneArch(), null);
492 jContentPane
.add(getJComboBoxList(), null);
493 jContentPane
.add(getJButtonAdd(), null);
494 jContentPane
.add(getJButtonRemove(), null);
495 jContentPane
.add(getJButtonUpdate(), null);
496 jContentPane
.add(getJScrollPaneList(), null);
497 jContentPane
.add(jLabelPcdIsDriver
, null);
498 jContentPane
.add(getJComboBoxPcdIsDriver(), null);
499 jContentPane
.add(jLabelC_Name
, null);
500 jContentPane
.add(getJTextFieldC_Name(), null);
506 This method initializes Usage type and Externs type
509 private void initFrame() {
510 Tools
.generateComboBoxByVector(this.jComboBoxType
, ed
.getVExternTypes());
511 Tools
.generateComboBoxByVector(this.jComboBoxPcdIsDriver
, ed
.getVPcdDriverTypes());
512 this.iCheckBoxListArch
.setAllItems(ed
.getVSupportedArchitectures());
516 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
518 * Override actionPerformed to listen all actions
521 public void actionPerformed(ActionEvent arg0
) {
522 if (arg0
.getSource() == jButtonAdd
) {
528 if (arg0
.getSource() == jButtonRemove
) {
531 if (arg0
.getSource() == jButtonUpdate
) {
540 Data validation for all fields
542 @retval true - All datas are valid
543 @retval false - At least one data is invalid
546 public boolean checkAdd() {
548 // Check if all fields have correct data types
554 if (isEmpty(this.jTextFieldC_Name
.getText())) {
555 Log
.err("Value couldn't be empty");
559 if (!isEmpty(this.jTextFieldC_Name
.getText())) {
560 if (this.jComboBoxType
.getSelectedItem().toString().equals(EnumerationData
.EXTERNS_SPECIFICATION
)) {
561 if (!DataValidation
.isSentence(this.jTextFieldC_Name
.getText())) {
562 Log
.err("Incorrect data type for Specification");
566 if (!DataValidation
.isC_NameType(this.jTextFieldC_Name
.getText())) {
567 Log
.err("Incorrect data type for C_Name");
576 if (!isEmpty(this.jTextFieldFeatureFlag
.getText())) {
577 if (!DataValidation
.isFeatureFlag(this.jTextFieldFeatureFlag
.getText())) {
578 Log
.err("Incorrect data type for Feature Flag");
587 Save all components of Externs
588 if exists externs, set the value directly
589 if not exists externs, new an instance first
594 int count
= this.vid
.size();
596 this.externs
= Externs
.Factory
.newInstance();
598 // Save PcdIsDriver first
600 if (!this.jComboBoxPcdIsDriver
.getSelectedItem().toString().equals(DataType
.EMPTY_SELECT_ITEM
)) {
601 externs
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getSelectedItem()
606 for (int index
= 0; index
< count
; index
++) {
610 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_SPECIFICATION
)) {
611 if (!isEmpty(vid
.getExterns(index
).getName())) {
612 this.externs
.addNewSpecification();
613 this.externs
.setSpecificationArray(externs
.getSpecificationList().size() - 1,
614 vid
.getExterns(index
).getName());
620 Extern e
= Extern
.Factory
.newInstance();
622 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_MODULE_ENTRY_POINT
)) {
623 if (!isEmpty(vid
.getExterns(index
).getName())) {
624 e
.setModuleEntryPoint(vid
.getExterns(index
).getName());
627 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_MODULE_UNLOAD_IMAGE
)) {
628 if (!isEmpty(vid
.getExterns(index
).getName())) {
629 e
.setModuleUnloadImage(vid
.getExterns(index
).getName());
633 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_CONSTRUCTOR
)) {
634 if (!isEmpty(vid
.getExterns(index
).getName())) {
635 e
.setConstructor(vid
.getExterns(index
).getName());
638 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_DESTRUCTOR
)) {
639 if (!isEmpty(vid
.getExterns(index
).getName())) {
640 e
.setDestructor(vid
.getExterns(index
).getName());
644 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_DRIVER_BINDING
)) {
645 if (!isEmpty(vid
.getExterns(index
).getName())) {
646 e
.setDriverBinding(vid
.getExterns(index
).getName());
649 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_COMPONENT_NAME
)) {
650 if (!isEmpty(vid
.getExterns(index
).getName())) {
651 e
.setComponentName(vid
.getExterns(index
).getName());
654 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_DRIVER_CONFIG
)) {
655 if (!isEmpty(vid
.getExterns(index
).getName())) {
656 e
.setDriverConfig(vid
.getExterns(index
).getName());
659 if (vid
.getExterns(index
).getType().equals(EnumerationData
.EXTERNS_DRIVER_DIAG
)) {
660 if (!isEmpty(vid
.getExterns(index
).getName())) {
661 e
.setDriverDiag(vid
.getExterns(index
).getName());
665 if (vid
.getExterns(index
).getType()
666 .equals(EnumerationData
.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK
)) {
667 if (!isEmpty(vid
.getExterns(index
).getName())) {
668 e
.setSetVirtualAddressMapCallBack(vid
.getExterns(index
).getName());
671 if (vid
.getExterns(index
).getType()
672 .equals(EnumerationData
.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK
)) {
673 if (!isEmpty(vid
.getExterns(index
).getName())) {
674 e
.setExitBootServicesCallBack(vid
.getExterns(index
).getName());
678 if (!isEmpty(vid
.getExterns(index
).getFeatureFlag())) {
679 e
.setFeatureFlag(vid
.getExterns(index
).getFeatureFlag());
681 if (vid
.getExterns(index
).getSupArchList() != null
682 && vid
.getExterns(index
).getSupArchList().size() > 0) {
683 e
.setSupArchList(vid
.getExterns(index
).getSupArchList());
686 this.externs
.addNewExtern();
687 this.externs
.setExternArray(this.externs
.getExternList().size() - 1, e
);
692 this.msa
.setExterns(externs
);
693 this.omt
.setSaved(false);
694 } catch (Exception e
) {
695 Log
.err("Update Externs", e
.getMessage());
700 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
702 * Override componentResized to resize all components when frame's size is changed
704 public void componentResized(ComponentEvent arg0
) {
705 int intCurrentWidth
= this.getJContentPane().getWidth();
706 int intCurrentHeight
= this.getJContentPane().getHeight();
707 int intPreferredWidth
= this.getJContentPane().getPreferredSize().width
;
708 int intPreferredHeight
= this.getJContentPane().getPreferredSize().height
;
710 resizeComponentWidth(this.jComboBoxPcdIsDriver
, intCurrentWidth
, intPreferredWidth
);
711 resizeComponentWidth(this.jComboBoxType
, intCurrentWidth
, intPreferredWidth
);
712 resizeComponentWidth(this.jTextFieldC_Name
, intCurrentWidth
, intPreferredWidth
);
713 resizeComponentWidth(this.jTextFieldFeatureFlag
, intCurrentWidth
, intPreferredWidth
);
714 resizeComponentWidth(this.jScrollPaneArch
, intCurrentWidth
, intPreferredWidth
);
716 resizeComponentWidth(jComboBoxList
, intCurrentWidth
, intPreferredWidth
);
717 resizeComponent(jScrollPaneList
, intCurrentWidth
, intCurrentHeight
, intPreferredWidth
, intPreferredHeight
);
719 relocateComponentX(jButtonAdd
, intCurrentWidth
, intPreferredWidth
, DataType
.SPACE_TO_RIGHT_FOR_ADD_BUTTON
);
720 relocateComponentX(jButtonRemove
, intCurrentWidth
, intPreferredWidth
, DataType
.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON
);
721 relocateComponentX(jButtonUpdate
, intCurrentWidth
, intPreferredWidth
, DataType
.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON
);
724 private ExternsIdentification
getCurrentExterns() {
725 String arg0
= this.jTextFieldC_Name
.getText();
726 String arg1
= this.jComboBoxType
.getSelectedItem().toString();
728 String arg2
= this.jTextFieldFeatureFlag
.getText();
729 Vector
<String
> arg3
= this.iCheckBoxListArch
.getAllCheckedItemsString();
731 id
= new ExternsIdentification(arg0
, arg1
, arg2
, arg3
);
736 Add current item to Vector
739 private void addToList() {
740 intSelectedItemId
= vid
.size();
742 vid
.addExterns(getCurrentExterns());
744 jComboBoxList
.addItem(id
.getName());
745 jComboBoxList
.setSelectedItem(id
.getName());
748 // Reset select item index
750 intSelectedItemId
= vid
.size();
753 // Reload all fields of selected item
764 Remove current item from Vector
767 private void removeFromList() {
769 // Check if exist items
771 if (this.vid
.size() < 1) {
775 int intTempIndex
= intSelectedItemId
;
777 jComboBoxList
.removeItemAt(intSelectedItemId
);
779 vid
.removeExterns(intTempIndex
);
782 // Reload all fields of selected item
793 Update current item of Vector
796 private void updateForList() {
798 // Check if exist items
800 if (this.vid
.size() < 1) {
805 // Backup selected item index
807 int intTempIndex
= intSelectedItemId
;
809 vid
.updateExterns(getCurrentExterns(), intTempIndex
);
811 jComboBoxList
.removeAllItems();
812 for (int index
= 0; index
< vid
.size(); index
++) {
813 jComboBoxList
.addItem(vid
.getExterns(index
).getName());
817 // Restore selected item index
819 intSelectedItemId
= intTempIndex
;
822 // Reset select item index
824 jComboBoxList
.setSelectedIndex(intSelectedItemId
);
827 // Reload all fields of selected item
838 Refresh all fields' values of selected item of Vector
841 private void reloadFromList() {
842 if (vid
.size() > 0) {
844 // Get selected item index
846 intSelectedItemId
= jComboBoxList
.getSelectedIndex();
848 this.jTextFieldC_Name
.setText(vid
.getExterns(intSelectedItemId
).getName());
849 this.jComboBoxType
.setSelectedItem(vid
.getExterns(intSelectedItemId
).getType());
851 jTextFieldFeatureFlag
.setText(vid
.getExterns(intSelectedItemId
).getFeatureFlag());
852 iCheckBoxListArch
.setAllItemsUnchecked();
853 iCheckBoxListArch
.initCheckedItem(true, vid
.getExterns(intSelectedItemId
).getSupArchList());
862 Update list area pane via the elements of Vector
865 private void reloadListArea() {
866 String strListItem
= "";
867 for (int index
= 0; index
< vid
.size(); index
++) {
868 strListItem
= strListItem
+ vid
.getExterns(index
).getName() + DataType
.UNIX_LINE_SEPARATOR
;
870 this.jTextAreaList
.setText(strListItem
);
874 * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
876 * Reflesh the frame when selected item changed
879 public void itemStateChanged(ItemEvent arg0
) {
880 if (arg0
.getSource() == this.jComboBoxList
&& arg0
.getStateChange() == ItemEvent
.SELECTED
) {
883 if (arg0
.getSource() == this.jComboBoxPcdIsDriver
&& arg0
.getStateChange() == ItemEvent
.SELECTED
&& externs
!= null) {
884 String s
= this.jComboBoxPcdIsDriver
.getSelectedItem().toString();
885 if (s
.equals(DataType
.EMPTY_SELECT_ITEM
)) {
886 this.externs
.setPcdIsDriver(null);
888 this.externs
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(s
));
890 this.msa
.setExterns(externs
);
891 this.omt
.setSaved(false);