+++ /dev/null
-/** @file\r
- \r
- The file is used to create, update Externs section of the MSA 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.frameworkwizard.module.ui.dialog;\r
-\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
-import java.util.Vector;\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.JScrollPane;\r
-import javax.swing.JTextField;\r
-\r
-import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
-import org.tianocore.frameworkwizard.common.Log;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
-import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
-import org.tianocore.frameworkwizard.common.ui.IDialog;\r
-import org.tianocore.frameworkwizard.common.ui.IFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.module.Identifications.Externs.ExternsIdentification;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
-\r
-/**\r
- * The class is used to create, update Externs section of the MSA file\r
- * \r
- * It extends IDialog\r
- * \r
- */\r
-public class ExternsDlg extends IDialog 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 JPanel jContentPane = null;\r
-\r
- private JLabel jLabelName = null;\r
-\r
- private JComboBox jComboBoxType = null;\r
-\r
- private JScrollPane jScrollPane = null;\r
-\r
- private JLabel jLabelSpecification = null;\r
-\r
- private JTextField jTextFieldSpecification = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private ArchCheckBox jArchCheckBox = null;\r
-\r
- private JButton jButtonOk = null;\r
-\r
- private JButton jButtonCancel = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private JPanel jPanelSpecification = null;\r
-\r
- private JPanel jPanelImage = null;\r
-\r
- private JPanel jPanelDriver = null;\r
-\r
- private JPanel jPanelLibrary = null;\r
-\r
- private JPanel jPanelCallBack = null;\r
-\r
- private JLabel jLabelModuleEntryPoint = null;\r
-\r
- private JTextField jTextFieldModuleEntryPoint = null;\r
-\r
- private JLabel jLabelModuleUnloadImage = null;\r
-\r
- private JTextField jTextFieldModuleUnloadImage = null;\r
-\r
- private JLabel jLabelDriverBinding = null;\r
-\r
- private JTextField jTextFieldDriverBinding = null;\r
-\r
- private JLabel jLabelComponentName = null;\r
-\r
- private JTextField jTextFieldComponentName = null;\r
-\r
- private JLabel jLabelDriverConfig = null;\r
-\r
- private JTextField jTextFieldDriverConfig = null;\r
-\r
- private JLabel jLabelDriverDiagnostic = null;\r
-\r
- private JTextField jTextFieldDriverDiagnostic = 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 JLabel jLabelVirtualAddressMap = null;\r
-\r
- private JTextField jTextFieldVirtualAddressMap = null;\r
-\r
- private JLabel jLabelExitBootServices = null;\r
-\r
- private JTextField jTextFieldExitBootServices = null;\r
-\r
- //\r
- // Not used by UI\r
- //\r
- private ExternsIdentification id = null;\r
-\r
- private EnumerationData ed = new EnumerationData();\r
- \r
- private WorkspaceTools wt = new WorkspaceTools();\r
- \r
- private Vector<String> vArchList = new Vector<String>();\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(168, 12, 320, 20));\r
- jComboBoxType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxType.addItemListener(this);\r
- }\r
- return jComboBoxType;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPane \r
- \r
- @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setViewportView(getJContentPane());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldSpecification() {\r
- if (jTextFieldSpecification == null) {\r
- jTextFieldSpecification = new JTextField();\r
- jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldSpecification.setBounds(new java.awt.Rectangle(168, 0, 320, 20));\r
- }\r
- return jTextFieldSpecification;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(168, 87, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldFeatureFlag.setEnabled(false);\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jButtonOk \r
- \r
- @return javax.swing.JButton \r
- \r
- **/\r
- private JButton getJButtonOk() {\r
- if (jButtonOk == null) {\r
- jButtonOk = new JButton();\r
- jButtonOk.setBounds(new java.awt.Rectangle(300, 187, 90, 20));\r
- jButtonOk.setText("Ok");\r
- jButtonOk.addActionListener(this);\r
- }\r
- return jButtonOk;\r
- }\r
-\r
- /**\r
- This method initializes jButtonCancel \r
- \r
- @return javax.swing.JButton \r
- \r
- **/\r
- private JButton getJButtonCancel() {\r
- if (jButtonCancel == null) {\r
- jButtonCancel = new JButton();\r
- jButtonCancel.setBounds(new java.awt.Rectangle(400, 187, 90, 20));\r
- jButtonCancel.setText("Cancel");\r
- jButtonCancel.addActionListener(this);\r
- }\r
- return jButtonCancel;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelSpecification \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelSpecification() {\r
- if (jPanelSpecification == null) {\r
- jPanelSpecification = new JPanel();\r
- jPanelSpecification.setBounds(new java.awt.Rectangle(0, 37, 505, 20));\r
- jPanelSpecification.setLayout(null);\r
-\r
- jLabelSpecification = new JLabel();\r
- jLabelSpecification.setBounds(new java.awt.Rectangle(12, 0, 140, 20));\r
- jLabelSpecification.setText("Specification Name");\r
-\r
- jPanelSpecification.add(jLabelSpecification, null);\r
- jPanelSpecification.add(getJTextFieldSpecification(), null);\r
- }\r
- return jPanelSpecification;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelImage \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelImage() {\r
- if (jPanelImage == null) {\r
- jLabelModuleUnloadImage = new JLabel();\r
- jLabelModuleUnloadImage.setBounds(new java.awt.Rectangle(12, 25, 140, 20));\r
- jLabelModuleUnloadImage.setText("Module Unload Image");\r
- jLabelModuleEntryPoint = new JLabel();\r
- jLabelModuleEntryPoint.setBounds(new java.awt.Rectangle(12, 0, 140, 20));\r
- jLabelModuleEntryPoint.setText("Module Entry Point");\r
- jPanelImage = new JPanel();\r
- jPanelImage.setBounds(new java.awt.Rectangle(0, 37, 505, 45));\r
- jPanelImage.setLayout(null);\r
- jPanelImage.add(jLabelModuleEntryPoint, null);\r
- jPanelImage.add(getJTextFieldModuleEntryPoint(), null);\r
- jPanelImage.add(jLabelModuleUnloadImage, null);\r
- jPanelImage.add(getJTextFieldModuleUnloadImage(), null);\r
- }\r
- return jPanelImage;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelDriver \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelDriver() {\r
- if (jPanelDriver == null) {\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 0));\r
- jLabelDriverDiagnostic = new JLabel();\r
- jLabelDriverDiagnostic.setBounds(new java.awt.Rectangle(12, 75, 140, 20));\r
- jLabelDriverDiagnostic.setText("Driver Diagnostic");\r
- jLabelDriverConfig = new JLabel();\r
- jLabelDriverConfig.setBounds(new java.awt.Rectangle(12, 50, 140, 20));\r
- jLabelDriverConfig.setText("Driver Config");\r
- jLabelComponentName = new JLabel();\r
- jLabelComponentName.setBounds(new java.awt.Rectangle(12, 25, 140, 20));\r
- jLabelComponentName.setText("Component Name");\r
- jLabelDriverBinding = new JLabel();\r
- jLabelDriverBinding.setBounds(new java.awt.Rectangle(12, 0, 140, 20));\r
- jLabelDriverBinding.setText("Driver Binding");\r
- jPanelDriver = new JPanel();\r
- jPanelDriver.setBounds(new java.awt.Rectangle(0, 37, 505, 95));\r
- jPanelDriver.setLayout(null);\r
- jPanelDriver.add(jStarLabel1, null);\r
- jPanelDriver.add(jLabelDriverBinding, null);\r
- jPanelDriver.add(getJTextFieldDriverBinding(), null);\r
- jPanelDriver.add(jLabelComponentName, null);\r
- jPanelDriver.add(getJTextFieldComponentName(), null);\r
- jPanelDriver.add(jLabelDriverConfig, null);\r
- jPanelDriver.add(getJTextFieldDriverConfig(), null);\r
- jPanelDriver.add(jLabelDriverDiagnostic, null);\r
- jPanelDriver.add(getJTextFieldDriverDiagnostic(), null);\r
- }\r
- return jPanelDriver;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibrary \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibrary() {\r
- if (jPanelLibrary == null) {\r
- jLabelDestructor = new JLabel();\r
- jLabelDestructor.setBounds(new java.awt.Rectangle(12, 25, 140, 20));\r
- jLabelDestructor.setText("Destructor");\r
- jLabelConstructor = new JLabel();\r
- jLabelConstructor.setBounds(new java.awt.Rectangle(12, 0, 140, 20));\r
- jLabelConstructor.setText("Constructor");\r
- jPanelLibrary = new JPanel();\r
- jPanelLibrary.setBounds(new java.awt.Rectangle(0, 37, 505, 45));\r
- jPanelLibrary.setLayout(null);\r
- jPanelLibrary.add(jLabelConstructor, null);\r
- jPanelLibrary.add(getJTextFieldConstructor(), null);\r
- jPanelLibrary.add(jLabelDestructor, null);\r
- jPanelLibrary.add(getJTextFieldDestructor(), null);\r
- }\r
- return jPanelLibrary;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelCallBack \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelCallBack() {\r
- if (jPanelCallBack == null) {\r
- jLabelExitBootServices = new JLabel();\r
- jLabelExitBootServices.setBounds(new java.awt.Rectangle(12, 25, 140, 20));\r
- jLabelExitBootServices.setText("Exit Boot Services");\r
- jLabelVirtualAddressMap = new JLabel();\r
- jLabelVirtualAddressMap.setBounds(new java.awt.Rectangle(12, 0, 140, 20));\r
- jLabelVirtualAddressMap.setText("Virtual Address Map");\r
- jPanelCallBack = new JPanel();\r
- jPanelCallBack.setBounds(new java.awt.Rectangle(0, 37, 505, 45));\r
- jPanelCallBack.setLayout(null);\r
- jPanelCallBack.add(jLabelVirtualAddressMap, null);\r
- jPanelCallBack.add(getJTextFieldVirtualAddressMap(), null);\r
- jPanelCallBack.add(jLabelExitBootServices, null);\r
- jPanelCallBack.add(getJTextFieldExitBootServices(), null);\r
- }\r
- return jPanelCallBack;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldModuleEntryPoint \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldModuleEntryPoint() {\r
- if (jTextFieldModuleEntryPoint == null) {\r
- jTextFieldModuleEntryPoint = new JTextField();\r
- jTextFieldModuleEntryPoint.setBounds(new java.awt.Rectangle(168, 0, 320, 20));\r
- }\r
- return jTextFieldModuleEntryPoint;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldModuleUnloadImage \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldModuleUnloadImage() {\r
- if (jTextFieldModuleUnloadImage == null) {\r
- jTextFieldModuleUnloadImage = new JTextField();\r
- jTextFieldModuleUnloadImage.setBounds(new java.awt.Rectangle(168, 25, 320, 20));\r
- }\r
- return jTextFieldModuleUnloadImage;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldDriverBinding \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldDriverBinding() {\r
- if (jTextFieldDriverBinding == null) {\r
- jTextFieldDriverBinding = new JTextField();\r
- jTextFieldDriverBinding.setBounds(new java.awt.Rectangle(168, 0, 320, 20));\r
- }\r
- return jTextFieldDriverBinding;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldComponentName \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldComponentName() {\r
- if (jTextFieldComponentName == null) {\r
- jTextFieldComponentName = new JTextField();\r
- jTextFieldComponentName.setBounds(new java.awt.Rectangle(168, 25, 320, 20));\r
- }\r
- return jTextFieldComponentName;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldDriverConfig \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldDriverConfig() {\r
- if (jTextFieldDriverConfig == null) {\r
- jTextFieldDriverConfig = new JTextField();\r
- jTextFieldDriverConfig.setBounds(new java.awt.Rectangle(168, 50, 320, 20));\r
- }\r
- return jTextFieldDriverConfig;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldDriverDiagnostic \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldDriverDiagnostic() {\r
- if (jTextFieldDriverDiagnostic == null) {\r
- jTextFieldDriverDiagnostic = new JTextField();\r
- jTextFieldDriverDiagnostic.setBounds(new java.awt.Rectangle(168, 75, 320, 20));\r
- }\r
- return jTextFieldDriverDiagnostic;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldConstructor \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldConstructor() {\r
- if (jTextFieldConstructor == null) {\r
- jTextFieldConstructor = new JTextField();\r
- jTextFieldConstructor.setBounds(new java.awt.Rectangle(168, 0, 320, 20));\r
- }\r
- return jTextFieldConstructor;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldDestructor \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldDestructor() {\r
- if (jTextFieldDestructor == null) {\r
- jTextFieldDestructor = new JTextField();\r
- jTextFieldDestructor.setBounds(new java.awt.Rectangle(168, 25, 320, 20));\r
- }\r
- return jTextFieldDestructor;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldVirtualAddressMap \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldVirtualAddressMap() {\r
- if (jTextFieldVirtualAddressMap == null) {\r
- jTextFieldVirtualAddressMap = new JTextField();\r
- jTextFieldVirtualAddressMap.setBounds(new java.awt.Rectangle(168, 0, 320, 20));\r
- }\r
- return jTextFieldVirtualAddressMap;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldExitBootServices \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldExitBootServices() {\r
- if (jTextFieldExitBootServices == null) {\r
- jTextFieldExitBootServices = new JTextField();\r
- jTextFieldExitBootServices.setBounds(new java.awt.Rectangle(168, 25, 320, 20));\r
- }\r
- return jTextFieldExitBootServices;\r
- }\r
-\r
- public static void main(String[] args) {\r
-\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(515, 250);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Externs");\r
- initFrame();\r
- this.centerWindow();\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inExternsId\r
-\r
- **/\r
- private void init(ExternsIdentification inExternsId, ModuleIdentification mid) {\r
- init();\r
- this.id = inExternsId;\r
- \r
- //\r
- // Init arch with module's arch\r
- //\r
- this.vArchList = wt.getModuleArch(mid);\r
-\r
- if (this.id != null) {\r
- String type = id.getType();\r
- //\r
- // Filter the type to lock down the type\r
- //\r
- this.jComboBoxType.removeAllItems();\r
- this.jComboBoxType.addItem(type);\r
-\r
- this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
- this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
-\r
- //\r
- // Init specification\r
- //\r
- if (type.equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
- this.jTextFieldSpecification.setText(id.getName0());\r
- }\r
-\r
- //\r
- // Init image\r
- //\r
- if (type.equals(EnumerationData.EXTERNS_IMAGE)) {\r
- this.jTextFieldModuleEntryPoint.setText(id.getName0());\r
- this.jTextFieldModuleUnloadImage.setText(id.getName1());\r
- }\r
-\r
- //\r
- // Init library\r
- //\r
- if (type.equals(EnumerationData.EXTERNS_LIBRARY)) {\r
- this.jTextFieldConstructor.setText(id.getName0());\r
- this.jTextFieldDestructor.setText(id.getName1());\r
- }\r
-\r
- //\r
- // Init driver\r
- //\r
- if (type.equals(EnumerationData.EXTERNS_DRIVER)) {\r
- this.jTextFieldDriverBinding.setText(id.getName0());\r
- this.jTextFieldComponentName.setText(id.getName1());\r
- this.jTextFieldDriverConfig.setText(id.getName2());\r
- this.jTextFieldDriverDiagnostic.setText(id.getName3());\r
- }\r
-\r
- //\r
- // Init library\r
- //\r
- if (type.equals(EnumerationData.EXTERNS_CALL_BACK)) {\r
- this.jTextFieldVirtualAddressMap.setText(id.getName0());\r
- this.jTextFieldExitBootServices.setText(id.getName1());\r
- }\r
- }\r
- }\r
-\r
- /**\r
- This is the override edit constructor\r
- \r
- @param inBootModesIdentification\r
- @param iFrame\r
- \r
- **/\r
- public ExternsDlg(ExternsIdentification inExternsIdentification, IFrame iFrame, ModuleIdentification mid) {\r
- super(iFrame, true);\r
- init(inExternsIdentification, mid);\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
- jArchCheckBox = new ArchCheckBox();\r
- jArchCheckBox.setBounds(new java.awt.Rectangle(168, 62, 320, 20));\r
- jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
-\r
- jLabelName = new JLabel();\r
- jLabelName.setText("Choose Extern Type");\r
- jLabelName.setBounds(new java.awt.Rectangle(12, 12, 155, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(12, 62, 155, 20));\r
- jLabelArch.setText("Supported Architectures");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 87, 155, 20));\r
- jLabelFeatureFlag.setText("Feature Flag Expression");\r
- jLabelFeatureFlag.setEnabled(false);\r
-\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(505, 200));\r
-\r
- jContentPane.add(jLabelName, null);\r
- jContentPane.add(getJComboBoxType(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
-\r
- jContentPane.add(jArchCheckBox, null);\r
- jContentPane.add(getJButtonOk(), null);\r
- jContentPane.add(getJButtonCancel(), null);\r
-\r
- jContentPane.add(getJPanelSpecification(), null);\r
- jContentPane.add(getJPanelImage(), null);\r
- jContentPane.add(getJPanelDriver(), null);\r
- jContentPane.add(getJPanelLibrary(), null);\r
- jContentPane.add(getJPanelCallBack(), null);\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /**\r
- This method initializes Usage type and Externs type\r
- \r
- **/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(this.jComboBoxType, ed.getVExternTypes());\r
- this.jPanelSpecification.setVisible(true);\r
- this.jPanelImage.setVisible(false);\r
- this.jPanelLibrary.setVisible(false);\r
- this.jPanelDriver.setVisible(false);\r
- this.jPanelCallBack.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
- if (checkAdd()) {\r
- this.getCurrentExterns();\r
- this.returnType = DataType.RETURN_TYPE_OK;\r
- this.setVisible(false);\r
- }\r
- }\r
-\r
- if (arg0.getSource() == jButtonCancel) {\r
- this.returnType = DataType.RETURN_TYPE_CANCEL;\r
- this.setVisible(false);\r
- }\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 checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check specification\r
- //\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
- if (isEmpty(this.jTextFieldSpecification.getText())) {\r
- Log.wrn("Update Externs", "Please type specification's name");\r
- return false;\r
- }\r
- if (!DataValidation.isSentence(this.jTextFieldSpecification.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Specification");\r
- return false;\r
- }\r
-\r
- //\r
- // No need to check feature flag, return true directly here.\r
- //\r
- return true;\r
- }\r
-\r
- //\r
- // Check image\r
- //\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_IMAGE)) {\r
- if (isEmpty(this.jTextFieldModuleEntryPoint.getText())\r
- && isEmpty(this.jTextFieldModuleUnloadImage.getText())) {\r
- Log.wrn("Update Externs", "At least one of ModuleEntryPoint or ModuleUnloadImage should have a value");\r
- return false;\r
- }\r
- if (!isEmpty(this.jTextFieldModuleEntryPoint.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldModuleEntryPoint.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Module Entry Point");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldModuleUnloadImage.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldModuleUnloadImage.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Module Unload Image");\r
- return false;\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Check library\r
- //\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_LIBRARY)) {\r
- if (isEmpty(this.jTextFieldConstructor.getText()) && isEmpty(this.jTextFieldDestructor.getText())) {\r
- Log.wrn("Update Externs", "At least one of Constructor or Destructor should have a value");\r
- return false;\r
- }\r
- if (!isEmpty(this.jTextFieldConstructor.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldConstructor.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Constructor");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldDestructor.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldDestructor.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Destructor");\r
- return false;\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Check driver\r
- //\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_DRIVER)) {\r
- if (isEmpty(this.jTextFieldDriverBinding.getText())) {\r
- Log.wrn("Update Externs", "DriverBinding must have a value");\r
- return false;\r
- }\r
- if (!isEmpty(this.jTextFieldDriverBinding.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldDriverBinding.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for DriverBinding");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldComponentName.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldComponentName.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for ComponentName");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldDriverConfig.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldDriverConfig.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for DriverConfig");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldDriverDiagnostic.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldDriverDiagnostic.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for DriverDiagnostic");\r
- return false;\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Check call back\r
- //\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_CALL_BACK)) {\r
- if (isEmpty(this.jTextFieldVirtualAddressMap.getText())\r
- && isEmpty(this.jTextFieldExitBootServices.getText())) {\r
- Log.wrn("Update Externs", "At least one of VirtualAddressMap or ExitBootServices should have a value");\r
- return false;\r
- }\r
- if (!isEmpty(this.jTextFieldVirtualAddressMap.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldVirtualAddressMap.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Virtual Address Map");\r
- return false;\r
- }\r
- }\r
- if (!isEmpty(this.jTextFieldExitBootServices.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldExitBootServices.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Exit Boot Services");\r
- return false;\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.wrn("Update Externs", "Incorrect data type for Feature Flag");\r
- return false;\r
- }\r
- }\r
-\r
- return true;\r
- }\r
-\r
- private ExternsIdentification getCurrentExterns() {\r
- String arg0 = "";\r
- String arg1 = "";\r
- String arg2 = "";\r
- String arg3 = "";\r
-\r
- String type = this.jComboBoxType.getSelectedItem().toString();\r
- String featureFlag = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
-\r
- if (type.equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
- arg0 = this.jTextFieldSpecification.getText();\r
- id = new ExternsIdentification(arg0, type);\r
- }\r
-\r
- if (type.equals(EnumerationData.EXTERNS_IMAGE)) {\r
- arg0 = this.jTextFieldModuleEntryPoint.getText();\r
- arg1 = this.jTextFieldModuleUnloadImage.getText();\r
- id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);\r
- }\r
-\r
- if (type.equals(EnumerationData.EXTERNS_LIBRARY)) {\r
- arg0 = this.jTextFieldConstructor.getText();\r
- arg1 = this.jTextFieldDestructor.getText();\r
- id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);\r
- }\r
-\r
- if (type.equals(EnumerationData.EXTERNS_DRIVER)) {\r
- arg0 = this.jTextFieldDriverBinding.getText();\r
- arg1 = this.jTextFieldComponentName.getText();\r
- arg2 = this.jTextFieldDriverConfig.getText();\r
- arg3 = this.jTextFieldDriverDiagnostic.getText();\r
- id = new ExternsIdentification(arg0, arg1, arg2, arg3, type, featureFlag, arch);\r
- }\r
-\r
- if (type.equals(EnumerationData.EXTERNS_CALL_BACK)) {\r
- arg0 = this.jTextFieldVirtualAddressMap.getText();\r
- arg1 = this.jTextFieldExitBootServices.getText();\r
- id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);\r
- }\r
-\r
- return id;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == jComboBoxType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
- this.jPanelSpecification.setVisible(true);\r
- this.jPanelImage.setVisible(false);\r
- this.jPanelLibrary.setVisible(false);\r
- this.jPanelDriver.setVisible(false);\r
- this.jPanelCallBack.setVisible(false);\r
- this.jLabelArch.setEnabled(false);\r
- this.jArchCheckBox.setAllItemsEnabled(false);\r
- this.jLabelArch.setLocation(12, 62);\r
- this.jArchCheckBox.setLocation(168, 62);\r
- this.jLabelFeatureFlag.setLocation(12, 87);\r
- this.jTextFieldFeatureFlag.setLocation(168, 87);\r
- } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_IMAGE)) {\r
- this.jPanelSpecification.setVisible(false);\r
- this.jPanelImage.setVisible(true);\r
- this.jPanelLibrary.setVisible(false);\r
- this.jPanelDriver.setVisible(false);\r
- this.jPanelCallBack.setVisible(false);\r
- this.jLabelArch.setEnabled(true);\r
- this.jArchCheckBox.setEnabledItems(this.vArchList);\r
- this.jLabelArch.setLocation(12, 87);\r
- this.jArchCheckBox.setLocation(168, 87);\r
- this.jLabelFeatureFlag.setLocation(12, 112);\r
- this.jTextFieldFeatureFlag.setLocation(168, 112);\r
- } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_LIBRARY)) {\r
- this.jPanelSpecification.setVisible(false);\r
- this.jPanelImage.setVisible(false);\r
- this.jPanelLibrary.setVisible(true);\r
- this.jPanelDriver.setVisible(false);\r
- this.jPanelCallBack.setVisible(false);\r
- this.jLabelArch.setEnabled(true);\r
- this.jArchCheckBox.setEnabledItems(this.vArchList);\r
- this.jLabelArch.setLocation(12, 87);\r
- this.jArchCheckBox.setLocation(168, 87);\r
- this.jLabelFeatureFlag.setLocation(12, 112);\r
- this.jTextFieldFeatureFlag.setLocation(168, 112);\r
- } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_DRIVER)) {\r
- this.jPanelSpecification.setVisible(false);\r
- this.jPanelImage.setVisible(false);\r
- this.jPanelLibrary.setVisible(false);\r
- this.jPanelDriver.setVisible(true);\r
- this.jPanelCallBack.setVisible(false);\r
- this.jLabelArch.setEnabled(true);\r
- this.jArchCheckBox.setEnabledItems(this.vArchList);\r
- this.jLabelArch.setLocation(12, 137);\r
- this.jArchCheckBox.setLocation(168, 137);\r
- this.jLabelFeatureFlag.setLocation(12, 162);\r
- this.jTextFieldFeatureFlag.setLocation(168, 162);\r
- } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_CALL_BACK)) {\r
- this.jPanelSpecification.setVisible(false);\r
- this.jPanelImage.setVisible(false);\r
- this.jPanelLibrary.setVisible(false);\r
- this.jPanelDriver.setVisible(false);\r
- this.jPanelCallBack.setVisible(true);\r
- this.jLabelArch.setEnabled(true);\r
- this.jArchCheckBox.setEnabledItems(this.vArchList);\r
- this.jLabelArch.setLocation(12, 87);\r
- this.jArchCheckBox.setLocation(168, 87);\r
- this.jLabelFeatureFlag.setLocation(12, 112);\r
- this.jTextFieldFeatureFlag.setLocation(168, 112);\r
- }\r
- }\r
- }\r
-\r
- public ExternsIdentification getId() {\r
- return id;\r
- }\r
-\r
- public void setId(ExternsIdentification id) {\r
- this.id = id;\r
- }\r
-}\r