+++ /dev/null
-/** @file\r
-\r
- The file is used to create, update SystemTable 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
-\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.SystemTableUsage;\r
-import org.tianocore.SystemTablesDocument;\r
-import org.tianocore.common.DataValidation;\r
-import org.tianocore.common.Log;\r
-import org.tianocore.packaging.common.ui.IInternalFrame;\r
-import org.tianocore.packaging.common.ui.StarLabel;\r
-\r
-/**\r
- The class is used to create, update SystemTable of MSA/MBD file\r
- It extends IInternalFrame\r
- \r
- @since ModuleEditor 1.0\r
-\r
- **/\r
-public class ModuleSystemTables extends IInternalFrame {\r
-\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = 7488769180379442276L;\r
-\r
- //\r
- //Define class members\r
- //\r
- private SystemTablesDocument.SystemTables systemTables = null;\r
-\r
- private int location = -1;\r
-\r
- private JPanel jContentPane = null;\r
-\r
- private JLabel jLabelEntry = null;\r
-\r
- private JTextField jTextFieldEntry = 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 StarLabel jStarLabel1 = null;\r
-\r
- /**\r
- This method initializes jTextFieldEntry \r
- \r
- @return javax.swing.JTextField jTextFieldEntry\r
- \r
- **/\r
- private JTextField getJTextFieldEntry() {\r
- if (jTextFieldEntry == null) {\r
- jTextFieldEntry = new JTextField();\r
- jTextFieldEntry.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- }\r
- return jTextFieldEntry;\r
- }\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.setBounds(new java.awt.Rectangle(280, 90, 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.setBounds(new java.awt.Rectangle(390, 90, 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
- public static void main(String[] args) {\r
-\r
- }\r
-\r
- /**\r
- This is the default constructor\r
- \r
- **/\r
- public ModuleSystemTables() {\r
- super();\r
- init();\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the override edit constructor\r
- \r
- @param inSystemTables The input data of SystemTablesDocument.SystemTables\r
- \r
- **/\r
- public ModuleSystemTables(SystemTablesDocument.SystemTables inSystemTables) {\r
- super();\r
- init(inSystemTables);\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the override edit constructor\r
- \r
- @param inSystemTables The input data of SystemTablesDocument.SystemTables\r
- @param type The input data of node type\r
- @param index The input data of node index\r
- \r
- **/\r
- public ModuleSystemTables(SystemTablesDocument.SystemTables inSystemTables, int type, int index) {\r
- super();\r
- init(inSystemTables, type, index);\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- @param inSystemTables The input data of SystemTablesDocument.SystemTables\r
- \r
- **/\r
- private void init(SystemTablesDocument.SystemTables inSystemTables) {\r
- init();\r
- this.setSystemTables(inSystemTables);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inSystemTables The input data of SystemTablesDocument.SystemTables\r
- @param type The input data of node type\r
- @param index The input data of node index\r
- \r
- **/\r
- private void init(SystemTablesDocument.SystemTables inSystemTables, int type, int index) {\r
- init(inSystemTables);\r
- this.location = index;\r
- if (this.systemTables.getSystemTableList().size() > 0) {\r
- if (this.systemTables.getSystemTableArray(index).getEntryList() != null) {\r
- this.jTextFieldEntry.setText(this.systemTables.getSystemTableArray(index).getEntryList().get(0));\r
- }\r
- if (this.systemTables.getSystemTableArray(index).getUsage() != null) {\r
- this.jComboBoxUsage.setSelectedItem(this.systemTables.getSystemTableArray(index).getUsage().toString());\r
- }\r
- this.jTextFieldOverrideID.setText(String.valueOf(this.systemTables.getSystemTableArray(index)\r
- .getOverrideID()));\r
- }\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- @return void\r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJContentPane());\r
- this.setTitle("System Tables");\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.jTextFieldEntry.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- this.jTextFieldOverrideID.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
- jLabelEntry = new JLabel();\r
- jLabelEntry.setText("Entry");\r
- jLabelEntry.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.add(jLabelEntry, null);\r
- jContentPane.add(getJTextFieldEntry(), 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
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /**\r
- This method initializes Usage type\r
- \r
- **/\r
- private void initFrame() {\r
- jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
- jComboBoxUsage.addItem("SOMETIMES_CONSUMED");\r
- jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
- jComboBoxUsage.addItem("SOMETIMES_PRODUCED");\r
- jComboBoxUsage.addItem("PRIVATE");\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
- if (arg0.getSource() == jButtonCancel) {\r
- this.dispose();\r
- }\r
- }\r
-\r
- /**\r
- Get SystemTablesDocument.SystemTables\r
- \r
- @return SystemTablesDocument.SystemTables\r
- \r
- **/\r
- public SystemTablesDocument.SystemTables getSystemTables() {\r
- return systemTables;\r
- }\r
-\r
- /**\r
- Set SystemTablesDocument.SystemTables\r
- \r
- @param systemTables The input data of SystemTablesDocument.SystemTables\r
- \r
- **/\r
- public void setSystemTables(SystemTablesDocument.SystemTables systemTables) {\r
- this.systemTables = systemTables;\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 required fields are not empty\r
- //\r
- if (isEmpty(this.jTextFieldEntry.getText())) {\r
- Log.err("Entry couldn't be empty");\r
- return false;\r
- }\r
-\r
- //\r
- // Check if all fields have correct data types \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 SystemTables\r
- if exists systemTables, set the value directly\r
- if not exists systemTables, new an instance first\r
- \r
- **/\r
- public void save() {\r
- try {\r
- if (this.systemTables == null) {\r
- systemTables = SystemTablesDocument.SystemTables.Factory.newInstance();\r
- }\r
- SystemTablesDocument.SystemTables.SystemTable systemTable = SystemTablesDocument.SystemTables.SystemTable.Factory\r
- .newInstance();\r
- //systemTable.setEntry(this.jTextFieldEntry.getText());\r
-\r
- systemTable.setUsage(SystemTableUsage.Enum.forString(jComboBoxUsage.getSelectedItem().toString()));\r
- if (!isEmpty(this.jTextFieldOverrideID.getText())) {\r
- systemTable.setOverrideID(Integer.parseInt(this.jTextFieldOverrideID.getText()));\r
- }\r
- if (location > -1) {\r
- systemTables.setSystemTableArray(location, systemTable);\r
- } else {\r
- systemTables.addNewSystemTable();\r
- systemTables.setSystemTableArray(systemTables.getSystemTableList().size() - 1, systemTable);\r
- }\r
- } catch (Exception e) {\r
- Log.err("Update System Tables", e.getMessage());\r
- }\r
- }\r
-}\r