+++ /dev/null
-/** @file\r
- \r
- The file is used to create, update DataHub of MSA/MBD file\r
- \r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
- \r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
- \r
- **/\r
-package org.tianocore.packaging.module.ui;\r
-\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
-\r
-import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
-import javax.swing.JPanel;\r
-import javax.swing.JTextField;\r
-\r
-import org.tianocore.ExternUsage;\r
-import org.tianocore.ExternsDocument;\r
-import org.tianocore.common.DataValidation;\r
-import org.tianocore.common.Log;\r
-import org.tianocore.packaging.common.ui.IComboBox;\r
-import org.tianocore.packaging.common.ui.IInternalFrame;\r
-\r
-/**\r
- The class is used to create, update DataHub of MSA/MBD file \r
- It extends IInternalFrame\r
- \r
- @since ModuleEditor 1.0\r
-\r
- **/\r
-public class ModuleExterns extends IInternalFrame implements ItemListener {\r
-\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = -7382008402932047191L;\r
-\r
- //\r
- //Define class members\r
- //\r
- private ExternsDocument.Externs externs = null;\r
-\r
- private int location = -1;\r
-\r
- private JPanel jContentPane = null;\r
-\r
- private JLabel jLabelName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private JButton jButtonOk = null;\r
-\r
- private JButton jButtonCancel = null;\r
-\r
- private JLabel jLabelOverrideID = null;\r
-\r
- private JTextField jTextFieldOverrideID = null;\r
-\r
- private JPanel jPanelType1 = null;\r
-\r
- private JLabel jLabelModuleEntryPoint = null;\r
-\r
- private JLabel jLabelModuleUnloadImage = null;\r
-\r
- private IComboBox iComboBoxModuleEntryPoint = null;\r
-\r
- private IComboBox iComboBoxModuleUnloadImage = null;\r
-\r
- private JPanel jPanelType2 = null;\r
-\r
- private JLabel jLabelConstructor = null;\r
-\r
- private JTextField jTextFieldConstructor = null;\r
-\r
- private JLabel jLabelDestructor = null;\r
-\r
- private JTextField jTextFieldDestructor = null;\r
-\r
- private JComboBox jComboBoxType = null;\r
-\r
- private JPanel jPanelType3 = null;\r
-\r
- private JLabel jLabelDriverBinding = null;\r
-\r
- private JLabel jLabelComponentName = null;\r
-\r
- private IComboBox iComboBoxComponentName = null;\r
-\r
- private IComboBox iComboBoxDriverBinding = null;\r
-\r
- private JLabel jLabelDriverConfig = null;\r
-\r
- private JLabel jLabelDriverDiag = null;\r
-\r
- private IComboBox iComboBoxDriverDiag = null;\r
-\r
- private IComboBox iComboBoxDriverConfig = null;\r
-\r
- private JPanel jPanelType4 = null;\r
-\r
- private JLabel jLabelSetVirtualAddressMapCallBack = null;\r
-\r
- private IComboBox iComboBoxSetVirtualAddressMapCallBack = null;\r
-\r
- private JLabel jLabelExitBootServicesCallBack = null;\r
-\r
- private IComboBox iComboBoxExitBootServicesCallBack = null;\r
-\r
- private JPanel jPanelType5 = null;\r
-\r
- private JLabel jLabelUserDefined = null;\r
-\r
- private IComboBox iComboBoxUserDefined = null;\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- This method initializes jButtonOk \r
- \r
- @return javax.swing.JButton jButtonOk\r
- \r
- **/\r
- private JButton getJButtonOk() {\r
- if (jButtonOk == null) {\r
- jButtonOk = new JButton();\r
- jButtonOk.setText("OK");\r
- jButtonOk.setLocation(new java.awt.Point(290, 215));\r
- jButtonOk.setSize(new java.awt.Dimension(90, 20));\r
- jButtonOk.addActionListener(this);\r
- }\r
- return jButtonOk;\r
- }\r
-\r
- /**\r
- This method initializes jButtonCancel \r
- \r
- @return javax.swing.JButton jButtonCancel\r
- \r
- **/\r
- private JButton getJButtonCancel() {\r
- if (jButtonCancel == null) {\r
- jButtonCancel = new JButton();\r
- jButtonCancel.setText("Cancel");\r
- jButtonCancel.setLocation(new java.awt.Point(390, 215));\r
- jButtonCancel.setSize(new java.awt.Dimension(90, 20));\r
- jButtonCancel.addActionListener(this);\r
- }\r
- return jButtonCancel;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldOverrideID \r
- \r
- @return javax.swing.JTextField jTextFieldOverrideID\r
- \r
- **/\r
- private JTextField getJTextFieldOverrideID() {\r
- if (jTextFieldOverrideID == null) {\r
- jTextFieldOverrideID = new JTextField();\r
- jTextFieldOverrideID.setBounds(new java.awt.Rectangle(160, 60, 50, 20));\r
- }\r
- return jTextFieldOverrideID;\r
- }\r
-\r
- /**\r
- This method initializes jPanelType1 \r
- \r
- @return javax.swing.JPanel jPanelType1\r
- \r
- **/\r
- private JPanel getJPanelType1() {\r
- if (jPanelType1 == null) {\r
- jLabelModuleUnloadImage = new JLabel();\r
- jLabelModuleUnloadImage.setBounds(new java.awt.Rectangle(15, 30, 140, 20));\r
- jLabelModuleUnloadImage.setText("Module Unload Image");\r
- jLabelModuleEntryPoint = new JLabel();\r
- jLabelModuleEntryPoint.setBounds(new java.awt.Rectangle(15, 5, 140, 20));\r
- jLabelModuleEntryPoint.setText("Module Entry Point");\r
- jPanelType1 = new JPanel();\r
- jPanelType1.setLayout(null);\r
- jPanelType1.setBounds(new java.awt.Rectangle(0, 105, 490, 55));\r
- jPanelType1.add(jLabelModuleEntryPoint, null);\r
- jPanelType1.add(jLabelModuleUnloadImage, null);\r
- jPanelType1.add(getIComboBoxModuleUnloadImage(), null);\r
- jPanelType1.add(getIComboBoxModuleEntryPoint(), null);\r
- }\r
- return jPanelType1;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxModuleEntryPoint \r
- \r
- @return javax.swing.JComboBox iComboBoxModuleEntryPoint\r
- \r
- **/\r
- private IComboBox getIComboBoxModuleEntryPoint() {\r
- if (iComboBoxModuleEntryPoint == null) {\r
- iComboBoxModuleEntryPoint = new IComboBox();\r
- iComboBoxModuleEntryPoint.setBounds(new java.awt.Rectangle(160, 5, 320, 20));\r
- }\r
- return iComboBoxModuleEntryPoint;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxModuleUnloadImage \r
- \r
- @return javax.swing.JComboBox iComboBoxModuleUnloadImage\r
- \r
- **/\r
- private IComboBox getIComboBoxModuleUnloadImage() {\r
- if (iComboBoxModuleUnloadImage == null) {\r
- iComboBoxModuleUnloadImage = new IComboBox();\r
- iComboBoxModuleUnloadImage.setBounds(new java.awt.Rectangle(160, 30, 320, 20));\r
- }\r
- return iComboBoxModuleUnloadImage;\r
- }\r
-\r
- /**\r
- This method initializes jPanelType2 \r
- \r
- @return javax.swing.JPanel jPanelType2\r
- \r
- **/\r
- private JPanel getJPanelType2() {\r
- if (jPanelType2 == null) {\r
- jLabelDestructor = new JLabel();\r
- jLabelDestructor.setBounds(new java.awt.Rectangle(15, 30, 140, 20));\r
- jLabelDestructor.setText("Destructor");\r
- jLabelConstructor = new JLabel();\r
- jLabelConstructor.setBounds(new java.awt.Rectangle(15, 5, 140, 20));\r
- jLabelConstructor.setText("Constructor");\r
- jPanelType2 = new JPanel();\r
- jPanelType2.setLayout(null);\r
- jPanelType2.setBounds(new java.awt.Rectangle(0, 105, 490, 55));\r
- jPanelType2.add(jLabelConstructor, null);\r
- jPanelType2.add(getJTextFieldConstructor(), null);\r
- jPanelType2.add(jLabelDestructor, null);\r
- jPanelType2.add(getJTextFieldDestructor(), null);\r
- }\r
- return jPanelType2;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldConstructor \r
- \r
- @return javax.swing.JTextField jTextFieldConstructor\r
- \r
- **/\r
- private JTextField getJTextFieldConstructor() {\r
- if (jTextFieldConstructor == null) {\r
- jTextFieldConstructor = new JTextField();\r
- jTextFieldConstructor.setBounds(new java.awt.Rectangle(160, 5, 320, 20));\r
- }\r
- return jTextFieldConstructor;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldDestructor \r
- \r
- @return javax.swing.JTextField jTextFieldDestructor\r
- \r
- **/\r
- private JTextField getJTextFieldDestructor() {\r
- if (jTextFieldDestructor == null) {\r
- jTextFieldDestructor = new JTextField();\r
- jTextFieldDestructor.setBounds(new java.awt.Rectangle(160, 30, 320, 20));\r
- }\r
- return jTextFieldDestructor;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxType \r
- \r
- @return javax.swing.JComboBox jComboBoxType\r
- \r
- **/\r
- private JComboBox getJComboBoxType() {\r
- if (jComboBoxType == null) {\r
- jComboBoxType = new JComboBox();\r
- jComboBoxType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxType.addItemListener(this);\r
- }\r
- return jComboBoxType;\r
- }\r
-\r
- /**\r
- This method initializes jPanelType3 \r
- \r
- @return javax.swing.JPanel jPanelType3\r
- \r
- **/\r
- private JPanel getJPanelType3() {\r
- if (jPanelType3 == null) {\r
- jLabelDriverDiag = new JLabel();\r
- jLabelDriverDiag.setBounds(new java.awt.Rectangle(15, 80, 140, 20));\r
- jLabelDriverDiag.setText("Driver Diag");\r
- jLabelDriverConfig = new JLabel();\r
- jLabelDriverConfig.setBounds(new java.awt.Rectangle(15, 55, 140, 20));\r
- jLabelDriverConfig.setText("Driver Config");\r
- jLabelComponentName = new JLabel();\r
- jLabelComponentName.setBounds(new java.awt.Rectangle(15, 30, 140, 20));\r
- jLabelComponentName.setText("Component Name");\r
- jLabelDriverBinding = new JLabel();\r
- jLabelDriverBinding.setBounds(new java.awt.Rectangle(15, 5, 140, 20));\r
- jLabelDriverBinding.setText("Driver Binding");\r
- jPanelType3 = new JPanel();\r
- jPanelType3.setLayout(null);\r
- jPanelType3.setBounds(new java.awt.Rectangle(0, 105, 490, 105));\r
- jPanelType3.add(jLabelDriverBinding, null);\r
- jPanelType3.add(jLabelComponentName, null);\r
- jPanelType3.add(getIComboBoxComponentName(), null);\r
- jPanelType3.add(getIComboBoxDriverBinding(), null);\r
- jPanelType3.add(jLabelDriverConfig, null);\r
- jPanelType3.add(jLabelDriverDiag, null);\r
- jPanelType3.add(getIComboBoxDriverDiag(), null);\r
- jPanelType3.add(getIComboBoxDriverConfig(), null);\r
- }\r
- return jPanelType3;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxComponentName \r
- \r
- @return javax.swing.JComboBox iComboBoxComponentName\r
- \r
- **/\r
- private IComboBox getIComboBoxComponentName() {\r
- if (iComboBoxComponentName == null) {\r
- iComboBoxComponentName = new IComboBox();\r
- iComboBoxComponentName.setBounds(new java.awt.Rectangle(160, 30, 320, 20));\r
- }\r
- return iComboBoxComponentName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxDriverBinding \r
- \r
- @return javax.swing.JComboBox iComboBoxDriverBinding\r
- \r
- **/\r
- private IComboBox getIComboBoxDriverBinding() {\r
- if (iComboBoxDriverBinding == null) {\r
- iComboBoxDriverBinding = new IComboBox();\r
- iComboBoxDriverBinding.setBounds(new java.awt.Rectangle(160, 5, 320, 20));\r
- }\r
- return iComboBoxDriverBinding;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxDriverDiag \r
- \r
- @return javax.swing.JComboBox iComboBoxDriverDiag\r
- \r
- **/\r
- private IComboBox getIComboBoxDriverDiag() {\r
- if (iComboBoxDriverDiag == null) {\r
- iComboBoxDriverDiag = new IComboBox();\r
- iComboBoxDriverDiag.setBounds(new java.awt.Rectangle(160, 80, 320, 20));\r
- }\r
- return iComboBoxDriverDiag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxDriverConfig \r
- \r
- @return javax.swing.JComboBox iComboBoxDriverConfig\r
- \r
- */\r
- private IComboBox getIComboBoxDriverConfig() {\r
- if (iComboBoxDriverConfig == null) {\r
- iComboBoxDriverConfig = new IComboBox();\r
- iComboBoxDriverConfig.setBounds(new java.awt.Rectangle(160, 55, 320, 20));\r
- }\r
- return iComboBoxDriverConfig;\r
- }\r
-\r
- /**\r
- This method initializes jPanelType4 \r
- \r
- @return javax.swing.JPanel jPanelType4\r
- \r
- **/\r
- private JPanel getJPanelType4() {\r
- if (jPanelType4 == null) {\r
- jLabelExitBootServicesCallBack = new JLabel();\r
- jLabelExitBootServicesCallBack.setBounds(new java.awt.Rectangle(15, 30, 200, 20));\r
- jLabelExitBootServicesCallBack.setText("Exit Boot Services Call Back");\r
- jLabelSetVirtualAddressMapCallBack = new JLabel();\r
- jLabelSetVirtualAddressMapCallBack.setBounds(new java.awt.Rectangle(15, 5, 200, 20));\r
- jLabelSetVirtualAddressMapCallBack.setText("Set Virtual Address Map Call Back");\r
- jPanelType4 = new JPanel();\r
- jPanelType4.setLayout(null);\r
- jPanelType4.setBounds(new java.awt.Rectangle(0, 105, 490, 55));\r
- jPanelType4.add(jLabelSetVirtualAddressMapCallBack, null);\r
- jPanelType4.add(getIComboBoxSetVirtualAddressMapCallBack(), null);\r
- jPanelType4.add(jLabelExitBootServicesCallBack, null);\r
- jPanelType4.add(getIComboBoxExitBootServicesCallBack(), null);\r
- }\r
- return jPanelType4;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxSetVirtualAddressMapCallBack \r
- \r
- @return javax.swing.JComboBox iComboBoxSetVirtualAddressMapCallBack\r
- \r
- **/\r
- private IComboBox getIComboBoxSetVirtualAddressMapCallBack() {\r
- if (iComboBoxSetVirtualAddressMapCallBack == null) {\r
- iComboBoxSetVirtualAddressMapCallBack = new IComboBox();\r
- iComboBoxSetVirtualAddressMapCallBack.setBounds(new java.awt.Rectangle(220, 5, 260, 20));\r
- }\r
- return iComboBoxSetVirtualAddressMapCallBack;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxExitBootServicesCallBack \r
- \r
- @return javax.swing.JComboBox iComboBoxExitBootServicesCallBack\r
- \r
- **/\r
- private IComboBox getIComboBoxExitBootServicesCallBack() {\r
- if (iComboBoxExitBootServicesCallBack == null) {\r
- iComboBoxExitBootServicesCallBack = new IComboBox();\r
- iComboBoxExitBootServicesCallBack.setBounds(new java.awt.Rectangle(220, 30, 260, 20));\r
- }\r
- return iComboBoxExitBootServicesCallBack;\r
- }\r
-\r
- /**\r
- This method initializes jPanelType5 \r
- \r
- @return javax.swing.JPanel jPanelType5\r
- \r
- **/\r
- private JPanel getJPanelType5() {\r
- if (jPanelType5 == null) {\r
- jLabelUserDefined = new JLabel();\r
- jLabelUserDefined.setBounds(new java.awt.Rectangle(15, 5, 140, 20));\r
- jLabelUserDefined.setText("User Defined");\r
- jPanelType5 = new JPanel();\r
- jPanelType5.setLayout(null);\r
- jPanelType5.setBounds(new java.awt.Rectangle(0, 105, 490, 30));\r
- jPanelType5.add(jLabelUserDefined, null);\r
- jPanelType5.add(getIComboBoxUserDefined(), null);\r
- }\r
- return jPanelType5;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUserDefined \r
- \r
- @return javax.swing.JComboBox iComboBoxUserDefined\r
- \r
- **/\r
- private IComboBox getIComboBoxUserDefined() {\r
- if (iComboBoxUserDefined == null) {\r
- iComboBoxUserDefined = new IComboBox();\r
- iComboBoxUserDefined.setBounds(new java.awt.Rectangle(160, 5, 320, 20));\r
- }\r
- return iComboBoxUserDefined;\r
- }\r
-\r
- public static void main(String[] args) {\r
-\r
- }\r
-\r
- /**\r
- This is the default constructor\r
- \r
- **/\r
- public ModuleExterns() {\r
- super();\r
- init();\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the override edit constructor\r
- \r
- @param inExterns The input data of ExternsDocument.Externs\r
- \r
- **/\r
- public ModuleExterns(ExternsDocument.Externs inExterns) {\r
- super();\r
- init(inExterns);\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the override edit constructor\r
- \r
- @param inExterns The input data of ExternsDocument.Externs\r
- @param type The input data of node type\r
- @param index The input data of node index\r
- \r
- **/\r
- public ModuleExterns(ExternsDocument.Externs inExterns, int type, int index) {\r
- super();\r
- init(inExterns, type, index);\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- @param inExterns The input data of ExternsDocument.Externs\r
- \r
- **/\r
- private void init(ExternsDocument.Externs inExterns) {\r
- init();\r
- this.setExterns(inExterns);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inExterns The input data of ExternsDocument.Externs\r
- @param type The input data of node type\r
- @param index The input data of node index\r
- \r
- **/\r
- private void init(ExternsDocument.Externs inExterns, int type, int index) {\r
- init(inExterns);\r
- this.location = index;\r
- if (this.externs.getExternList().size() > 0) {\r
- //\r
- //Get common fields\r
- //\r
- if (this.externs.getExternArray(index).getUsage() != null) {\r
- this.jComboBoxUsage.setSelectedItem(this.externs.getExternArray(index).getUsage().toString());\r
- }\r
- this.jTextFieldOverrideID.setText(String.valueOf(this.externs.getExternArray(index).getOverrideID()));\r
- //\r
- //Type 1\r
- //\r
- if (this.externs.getExternArray(index).getModuleEntryPointList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(0);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getModuleEntryPointList().size(); indexI++) {\r
- this.iComboBoxModuleEntryPoint.addItem(this.externs.getExternArray(index)\r
- .getModuleEntryPointArray(indexI));\r
- }\r
- }\r
- if (this.externs.getExternArray(index).getModuleUnloadImageList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(0);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getModuleUnloadImageList().size(); indexI++) {\r
- this.iComboBoxModuleUnloadImage.addItem(this.externs.getExternArray(index)\r
- .getModuleUnloadImageArray(indexI));\r
- }\r
- }\r
-\r
- //\r
- //Type 2\r
- //\r
- if (this.externs.getExternArray(index).getConstructor() != null) {\r
- this.jComboBoxType.setSelectedIndex(1);\r
- this.jTextFieldConstructor.setText(this.externs.getExternArray(index).getConstructor());\r
- }\r
- if (this.externs.getExternArray(index).getDestructor() != null) {\r
- this.jComboBoxType.setSelectedIndex(1);\r
- this.jTextFieldDestructor.setText(this.externs.getExternArray(index).getDestructor());\r
- }\r
-\r
- //\r
- //Type 3\r
- //\r
- if (this.externs.getExternArray(index).getDriverBindingList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(2);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getDriverBindingList().size(); indexI++) {\r
- this.iComboBoxDriverBinding.addItem(this.externs.getExternArray(index)\r
- .getDriverBindingArray(indexI));\r
- }\r
- }\r
- if (this.externs.getExternArray(index).getComponentNameList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(2);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getComponentNameList().size(); indexI++) {\r
- this.iComboBoxComponentName.addItem(this.externs.getExternArray(index)\r
- .getComponentNameArray(indexI));\r
- }\r
- }\r
- if (this.externs.getExternArray(index).getDriverConfigList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(2);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getDriverConfigList().size(); indexI++) {\r
- this.iComboBoxDriverConfig.addItem(this.externs.getExternArray(index).getDriverConfigArray(indexI));\r
- }\r
- }\r
- if (this.externs.getExternArray(index).getDriverDiagList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(2);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getDriverDiagList().size(); indexI++) {\r
- this.iComboBoxDriverDiag.addItem(this.externs.getExternArray(index).getDriverDiagArray(indexI));\r
- }\r
- }\r
-\r
- //\r
- //Type 4\r
- //\r
- if (this.externs.getExternArray(index).getSetVirtualAddressMapCallBackList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(3);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getSetVirtualAddressMapCallBackList()\r
- .size(); indexI++) {\r
- this.iComboBoxSetVirtualAddressMapCallBack\r
- .addItem(this.externs\r
- .getExternArray(index)\r
- .getSetVirtualAddressMapCallBackArray(\r
- indexI));\r
- }\r
- }\r
- if (this.externs.getExternArray(index).getExitBootServicesCallBackList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(3);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getExitBootServicesCallBackList()\r
- .size(); indexI++) {\r
- this.iComboBoxExitBootServicesCallBack\r
- .addItem(this.externs\r
- .getExternArray(index)\r
- .getExitBootServicesCallBackArray(indexI));\r
- }\r
- }\r
-\r
- //\r
- //Type 5\r
- //\r
- if (this.externs.getExternArray(index).getUserDefinedList().size() > 0) {\r
- this.jComboBoxType.setSelectedIndex(4);\r
- for (int indexI = 0; indexI < this.externs.getExternArray(index).getUserDefinedList().size(); indexI++) {\r
- this.iComboBoxUserDefined.addItem(this.externs.getExternArray(index).getUserDefinedArray(indexI));\r
- }\r
- }\r
-\r
- this.jComboBoxType.setEnabled(false);\r
- switchType();\r
- }\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJContentPane());\r
- this.setTitle("Externs");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- this.jButtonOk.setVisible(false);\r
- this.jButtonCancel.setVisible(false);\r
- if (isView) {\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- this.jTextFieldOverrideID.setEnabled(!isView);\r
- //\r
- //Type 1\r
- //\r
- this.iComboBoxModuleEntryPoint.setEnabled(!isView);\r
- this.iComboBoxModuleUnloadImage.setEnabled(!isView);\r
-\r
- //\r
- //Type 2\r
- //\r
- this.jTextFieldConstructor.setEnabled(!isView);\r
- this.jTextFieldDestructor.setEnabled(!isView);\r
-\r
- //\r
- //Type 3\r
- //\r
- this.iComboBoxDriverBinding.setEnabled(!isView);\r
- this.iComboBoxComponentName.setEnabled(!isView);\r
- this.iComboBoxDriverConfig.setEnabled(!isView);\r
- this.iComboBoxDriverDiag.setEnabled(!isView);\r
-\r
- //\r
- //Type 4\r
- //\r
- this.iComboBoxSetVirtualAddressMapCallBack.setEnabled(!isView);\r
- this.iComboBoxExitBootServicesCallBack.setEnabled(!isView);\r
-\r
- //\r
- //Type 5\r
- //\r
- this.iComboBoxUserDefined.setEnabled(!isView);\r
-\r
- this.jComboBoxType.setEnabled(!isView);\r
- this.jButtonCancel.setEnabled(!isView);\r
- this.jButtonOk.setEnabled(!isView);\r
- }\r
- }\r
-\r
- /**\r
- This method initializes jContentPane\r
- \r
- @return javax.swing.JPanel jContentPane\r
- \r
- **/\r
- private JPanel getJContentPane() {\r
- if (jContentPane == null) {\r
- jLabelOverrideID = new JLabel();\r
- jLabelOverrideID.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelOverrideID.setText("Override ID");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelName = new JLabel();\r
- jLabelName.setText("Choose Type");\r
- jLabelName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.setSize(new java.awt.Dimension(490, 244));\r
- jContentPane.add(getJPanelType2(), null);\r
- jContentPane.add(jLabelName, null);\r
- jContentPane.add(getJComboBoxType(), null);\r
- jContentPane.add(getJPanelType3(), null);\r
- jContentPane.add(getJPanelType4(), null);\r
- jContentPane.add(getJPanelType5(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jContentPane.add(getJButtonOk(), null);\r
- jContentPane.add(getJButtonCancel(), null);\r
- jContentPane.add(jLabelOverrideID, null);\r
- jContentPane.add(getJTextFieldOverrideID(), null);\r
-\r
- jContentPane.add(getJPanelType1(), null);\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /**\r
- This method initializes Usage type and Externs type\r
- \r
- **/\r
- private void initFrame() {\r
- jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
- jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
-\r
- jComboBoxType.addItem("Entry/Unload");\r
- jComboBoxType.addItem("Library");\r
- jComboBoxType.addItem("Driver Bindings");\r
- jComboBoxType.addItem("Call Backs");\r
- jComboBoxType.addItem("Other");\r
-\r
- jPanelType1.setVisible(true);\r
- jPanelType2.setVisible(false);\r
- jPanelType3.setVisible(false);\r
- jPanelType4.setVisible(false);\r
- jPanelType5.setVisible(false);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- * Override actionPerformed to listen all actions\r
- * \r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonOk) {\r
- this.setEdited(true);\r
- this.save();\r
- this.dispose();\r
- }\r
-\r
- if (arg0.getSource() == jButtonCancel) {\r
- this.dispose();\r
- }\r
- }\r
-\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == jComboBoxType) {\r
- if (arg0.getStateChange() == ItemEvent.SELECTED) {\r
- switchType();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- Show/Hide relevant fields via select different types\r
- \r
- **/\r
- private void switchType() {\r
- if (jComboBoxType.getSelectedIndex() == 0) {\r
- jPanelType1.setVisible(true);\r
- jPanelType2.setVisible(false);\r
- jPanelType3.setVisible(false);\r
- jPanelType4.setVisible(false);\r
- jPanelType5.setVisible(false);\r
- }\r
- if (jComboBoxType.getSelectedIndex() == 1) {\r
- jPanelType1.setVisible(false);\r
- jPanelType2.setVisible(true);\r
- jPanelType3.setVisible(false);\r
- jPanelType4.setVisible(false);\r
- jPanelType5.setVisible(false);\r
- }\r
- if (jComboBoxType.getSelectedIndex() == 2) {\r
- jPanelType1.setVisible(false);\r
- jPanelType2.setVisible(false);\r
- jPanelType3.setVisible(true);\r
- jPanelType4.setVisible(false);\r
- jPanelType5.setVisible(false);\r
- }\r
- if (jComboBoxType.getSelectedIndex() == 3) {\r
- jPanelType1.setVisible(false);\r
- jPanelType2.setVisible(false);\r
- jPanelType3.setVisible(false);\r
- jPanelType4.setVisible(true);\r
- jPanelType5.setVisible(false);\r
- }\r
- if (jComboBoxType.getSelectedIndex() == 4) {\r
- jPanelType1.setVisible(false);\r
- jPanelType2.setVisible(false);\r
- jPanelType3.setVisible(false);\r
- jPanelType4.setVisible(false);\r
- jPanelType5.setVisible(true);\r
- }\r
- }\r
-\r
- /**\r
- Set ExternsDocument.Externs\r
- \r
- @return ExternsDocument.Externs\r
- \r
- \r
- **/\r
- public ExternsDocument.Externs getExterns() {\r
- return externs;\r
- }\r
-\r
- /**\r
- Get ExternsDocument.Externs\r
- \r
- @param externs The input ExternsDocument.Externs\r
- \r
- **/\r
- public void setExterns(ExternsDocument.Externs externs) {\r
- this.externs = externs;\r
- }\r
-\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean check() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 1) {\r
- if (!isEmpty(this.jTextFieldConstructor.getText())\r
- && !DataValidation.isConstructor(this.jTextFieldConstructor.getText())) {\r
- Log.err("Incorrect data type for Constructor");\r
- return false;\r
- }\r
- if (!isEmpty(this.jTextFieldDestructor.getText())\r
- && !DataValidation.isDestructor(this.jTextFieldDestructor.getText())) {\r
- Log.err("Incorrect data type for Destructor");\r
- return false;\r
- }\r
- }\r
-\r
- if (!isEmpty(this.jTextFieldOverrideID.getText())\r
- && !DataValidation.isOverrideID(this.jTextFieldOverrideID.getText())) {\r
- Log.err("Incorrect data type for Override ID");\r
- return false;\r
- }\r
-\r
- return true;\r
- }\r
-\r
- /**\r
- Save all components of Externs\r
- if exists externs, set the value directly\r
- if not exists externs, new an instance first\r
- \r
- **/\r
- public void save() {\r
- try {\r
- if (this.externs == null) {\r
- externs = ExternsDocument.Externs.Factory.newInstance();\r
- }\r
- ExternsDocument.Externs.Extern extern = ExternsDocument.Externs.Extern.Factory.newInstance();\r
- //\r
- //Save common fields\r
- //\r
- extern.setUsage(ExternUsage.Enum.forString(jComboBoxUsage.getSelectedItem().toString()));\r
- if (!isEmpty(this.jTextFieldOverrideID.getText())) {\r
- extern.setOverrideID(Integer.parseInt(this.jTextFieldOverrideID.getText()));\r
- }\r
-\r
- //\r
- //Save type 1\r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 0) {\r
- if (this.iComboBoxModuleEntryPoint.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxModuleEntryPoint.getItemCount(); index++) {\r
- extern.addNewModuleEntryPoint();\r
- extern.setModuleEntryPointArray(index, this.iComboBoxModuleEntryPoint.getItemAt(index)\r
- .toString());\r
- }\r
- }\r
- if (this.iComboBoxModuleEntryPoint.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxModuleUnloadImage.getItemCount(); index++) {\r
- extern.addNewModuleUnloadImage();\r
- extern.setModuleUnloadImageArray(index, this.iComboBoxModuleUnloadImage.getItemAt(index)\r
- .toString());\r
- }\r
- }\r
- }\r
-\r
- //\r
- //Save type 2\r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 1) {\r
- if (!isEmpty(this.jTextFieldConstructor.getText())) {\r
- extern.setConstructor(this.jTextFieldConstructor.getText());\r
- }\r
- if (!isEmpty(this.jTextFieldDestructor.getText())) {\r
- extern.setDestructor(this.jTextFieldDestructor.getText());\r
- }\r
- }\r
-\r
- //\r
- //Save type 3\r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 2) {\r
- if (this.iComboBoxDriverBinding.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxDriverBinding.getItemCount(); index++) {\r
- extern.addNewDriverBinding();\r
- extern.setDriverBindingArray(index, this.iComboBoxDriverBinding.getItemAt(index).toString());\r
- }\r
- }\r
- if (this.iComboBoxComponentName.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxComponentName.getItemCount(); index++) {\r
- extern.addNewComponentName();\r
- extern.setComponentNameArray(index, this.iComboBoxComponentName.getItemAt(index).toString());\r
- }\r
- }\r
- if (this.iComboBoxDriverConfig.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxDriverConfig.getItemCount(); index++) {\r
- extern.addNewDriverConfig();\r
- extern.setDriverConfigArray(index, this.iComboBoxDriverConfig.getItemAt(index).toString());\r
- }\r
- }\r
- if (this.iComboBoxDriverDiag.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxDriverDiag.getItemCount(); index++) {\r
- extern.addNewDriverDiag();\r
- extern.setDriverDiagArray(index, this.iComboBoxDriverDiag.getItemAt(index).toString());\r
- }\r
- }\r
- }\r
-\r
- //\r
- //Save type 4\r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 3) {\r
- if (this.iComboBoxSetVirtualAddressMapCallBack.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxSetVirtualAddressMapCallBack.getItemCount(); index++) {\r
- extern.addNewSetVirtualAddressMapCallBack();\r
- extern\r
- .setSetVirtualAddressMapCallBackArray(\r
- index,\r
- this.iComboBoxSetVirtualAddressMapCallBack\r
- .getItemAt(\r
- index)\r
- .toString());\r
- }\r
- }\r
- if (this.iComboBoxExitBootServicesCallBack.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxExitBootServicesCallBack.getItemCount(); index++) {\r
- extern.addNewExitBootServicesCallBack();\r
- extern.setExitBootServicesCallBackArray(index,\r
- this.iComboBoxExitBootServicesCallBack.getItemAt(index)\r
- .toString());\r
- }\r
- }\r
- }\r
- //\r
- //Save type 5\r
- //\r
- if (this.jComboBoxType.getSelectedIndex() == 4) {\r
- if (this.iComboBoxUserDefined.getItemCount() > 0) {\r
- for (int index = 0; index < this.iComboBoxUserDefined.getItemCount(); index++) {\r
- extern.addNewUserDefined();\r
- extern.setUserDefinedArray(index, this.iComboBoxUserDefined.getItemAt(index).toString());\r
- }\r
- }\r
- }\r
-\r
- if (location > -1) {\r
- externs.setExternArray(location, extern);\r
- } else {\r
- externs.addNewExtern();\r
- externs.setExternArray(externs.getExternList().size() - 1, extern);\r
- }\r
- } catch (Exception e) {\r
- Log.err("Update Externs", e.getMessage());\r
- }\r
- }\r
-}\r