--- /dev/null
+/** @file\r
+ Java class SpdGuidDecls is GUI for create library definition elements of spd 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
+package org.tianocore.frameworkwizard.packaging.ui;\r
+\r
+import java.awt.Dimension;\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ComponentEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JOptionPane;\r
+import javax.swing.JPanel;\r
+import javax.swing.JTable;\r
+import javax.swing.JTextField;\r
+import javax.swing.JLabel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JButton;\r
+import javax.swing.JFrame;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.InternalFrameAdapter;\r
+import javax.swing.event.InternalFrameEvent;\r
+import javax.swing.event.ListSelectionEvent;\r
+import javax.swing.event.ListSelectionListener;\r
+import javax.swing.event.TableModelEvent;\r
+import javax.swing.event.TableModelListener;\r
+import javax.swing.table.DefaultTableModel;\r
+import javax.swing.table.TableModel;\r
+\r
+import org.tianocore.PackageSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
+import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
+import org.tianocore.frameworkwizard.platform.ui.ListEditor;\r
+\r
+/**\r
+ GUI for create library definition elements of spd file.\r
+ \r
+ @since PackageEditor 1.0\r
+**/\r
+public class SpdGuidDecls extends IInternalFrame implements TableModelListener{\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+\r
+ static JFrame frame;\r
+ \r
+ private SpdFileContents sfc = null;\r
+ \r
+ private OpeningPackageType docConsole = null;\r
+\r
+ private JTable jTable = null;\r
+\r
+ private DefaultTableModel model = null;\r
+\r
+ private JPanel jContentPane = null;\r
+\r
+ private JTextField jTextFieldGuid = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JButton jButtonAdd = null;\r
+\r
+ private JButton jButtonRemove = null;\r
+\r
+ private JButton jButtonClearAll = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonGen = null;\r
+ \r
+ private StarLabel jStarLabel1 = null;\r
+ \r
+ private StarLabel jStarLabel2 = null;\r
+ \r
+ private StarLabel jStarLabel3 = null;\r
+ \r
+ private StarLabel jStarLabel4 = null;\r
+\r
+ protected int selectedRow = -1;\r
+\r
+ private JLabel jLabelName = null;\r
+\r
+ private JScrollPane jScrollPaneModule = null;\r
+\r
+ private JTextField jTextFieldName = null;\r
+\r
+ private JScrollPane jScrollPaneArch = null;\r
+ \r
+ private JScrollPane jScrollPaneGuid = null;\r
+\r
+ private JLabel jLabelGuid = null;\r
+\r
+ private JScrollPane topScrollPane = null; // @jve:decl-index=0:visual-constraint="10,213"\r
+\r
+ private JLabel jLabelCName = null;\r
+\r
+ private GenGuidDialog guidDialog = null;\r
+\r
+ private JTextField jTextFieldCName = null;\r
+\r
+ private JLabel jLabelHelp = null;\r
+\r
+ private JTextField jTextFieldHelp = null;\r
+\r
+ private JLabel jLabelSupMod = null;\r
+\r
+ private JLabel jLabelSupArch = null;\r
+\r
+ private ICheckBoxList iCheckBoxListArch = null;\r
+\r
+ private ICheckBoxList iCheckBoxListGuid = null;\r
+\r
+ private ICheckBoxList iCheckBoxListMod = null;\r
+\r
+ private JLabel jLabelGuidType = null;\r
+\r
+ protected String[][] saa = null;\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ protected void initialize() {\r
+ \r
+ this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldGuid \r
+ \r
+ @return javax.swing.JTextField \r
+ **/\r
+ protected JTextField getJTextFieldGuid() {\r
+ if (jTextFieldGuid == null) {\r
+ jTextFieldGuid = new JTextField();\r
+ jTextFieldGuid.setBounds(new java.awt.Rectangle(137,60,435,20));\r
+ jTextFieldGuid.setPreferredSize(new java.awt.Dimension(200,20));\r
+ \r
+ }\r
+ return jTextFieldGuid;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ protected JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setBounds(new java.awt.Rectangle(5,256,472,292));\r
+ jScrollPane.setViewportView(getJTable());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTable \r
+ \r
+ @return javax.swing.JTable \r
+ **/\r
+ protected JTable getJTable() {\r
+ if (jTable == null) {\r
+ model = new DefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+ jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
+ model.addColumn("Name");\r
+ model.addColumn("The C Name");\r
+ model.addColumn("GUID Value");\r
+ model.addColumn("Help Text");\r
+ model.addColumn("Supported Architectures");\r
+ model.addColumn("Supported Module Types");\r
+ model.addColumn("GuidTypes");\r
+ jTable.getColumnModel().getColumn(2).setCellEditor(new GuidEditor());\r
+\r
+ Vector<String> vArch = new Vector<String>();\r
+ vArch.add("IA32");\r
+ vArch.add("X64");\r
+ vArch.add("IPF");\r
+ vArch.add("EBC");\r
+ vArch.add("ARM");\r
+ vArch.add("PPC");\r
+ jTable.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));\r
+ \r
+ Vector<String> vModule = new Vector<String>();\r
+ vModule.add("BASE");\r
+ vModule.add("SEC");\r
+ vModule.add("PEI_CORE");\r
+ vModule.add("PEIM");\r
+ vModule.add("DXE_CORE");\r
+ vModule.add("DXE_DRIVER");\r
+ vModule.add("DXE_RUNTIME_DRIVER");\r
+ vModule.add("DXE_SAL_DRIVER");\r
+ vModule.add("DXE_SMM_DRIVER");\r
+ vModule.add("UEFI_DRIVER");\r
+ vModule.add("UEFI_APPLICATION");\r
+ vModule.add("USER_DEFINED");\r
+ jTable.getColumnModel().getColumn(5).setCellEditor(new ListEditor(vModule));\r
+ \r
+ Vector<String> vGuid = new Vector<String>();\r
+ vGuid.add("DATA_HUB_RECORD");\r
+ vGuid.add("EFI_EVENT");\r
+ vGuid.add("EFI_SYSTEM_CONFIGURATION_TABLE");\r
+ vGuid.add("EFI_VARIABLE");\r
+ vGuid.add("GUID");\r
+ vGuid.add("HII_PACKAGE_LIST");\r
+ vGuid.add("HOB");\r
+ vGuid.add("TOKEN_SPACE_GUID");\r
+ jTable.getColumnModel().getColumn(6).setCellEditor(new ListEditor(vGuid));\r
+ \r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
+ public void valueChanged(ListSelectionEvent e) {\r
+ if (e.getValueIsAdjusting()){\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ }\r
+ else{\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ \r
+ }\r
+ }\r
+ });\r
+ \r
+ jTable.getModel().addTableModelListener(this);\r
+ }\r
+ return jTable;\r
+ }\r
+ \r
+\r
+ public void tableChanged(TableModelEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ int row = arg0.getFirstRow();\r
+ int column = arg0.getColumn();\r
+ TableModel m = (TableModel)arg0.getSource();\r
+ if (arg0.getType() == TableModelEvent.UPDATE){\r
+ \r
+ updateRow(row, column, m);\r
+ }\r
+ }\r
+ \r
+ protected void updateRow(int row, int column, TableModel m){\r
+ String[] sa = new String[7];\r
+ sfc.getSpdGuidDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\r
+ if (cellData == null) {\r
+ cellData = "";\r
+ }\r
+ if (cellData.equals(sa[column])) {\r
+ return;\r
+ }\r
+ if (cellData.toString().length() == 0 && sa[column] == null) {\r
+ return;\r
+ }\r
+ \r
+ String name = m.getValueAt(row, 0) + "";\r
+ String cName = m.getValueAt(row, 1) + "";\r
+ String guid = m.getValueAt(row, 2) + "";\r
+ String help = m.getValueAt(row, 3) + "";\r
+ String archList = null;\r
+ if (m.getValueAt(row, 4) != null){\r
+ archList = m.getValueAt(row, 4).toString();\r
+ }\r
+ String modTypeList = null;\r
+ if (m.getValueAt(row, 5) != null) {\r
+ modTypeList = m.getValueAt(row, 5).toString(); \r
+ }\r
+ String guidTypeList = null;\r
+ if (m.getValueAt(row, 6) != null){\r
+ guidTypeList = m.getValueAt(row, 6).toString();\r
+ }\r
+ String[] rowData = {name, cName, guid, help};\r
+ if (!dataValidation(rowData)){\r
+ return;\r
+ }\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ sfc.updateSpdGuidDecl(row, name, cName, guid, help, archList, modTypeList, guidTypeList);\r
+ }\r
+ /**\r
+ This method initializes jButtonAdd \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonAdd() {\r
+ if (jButtonAdd == null) {\r
+ jButtonAdd = new JButton();\r
+ jButtonAdd.setBounds(new java.awt.Rectangle(167,227,90,20));\r
+ jButtonAdd.setText("Add");\r
+ jButtonAdd.addActionListener(this);\r
+ }\r
+ return jButtonAdd;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonRemove \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonRemove() {\r
+ if (jButtonRemove == null) {\r
+ jButtonRemove = new JButton();\r
+ jButtonRemove.setBounds(new java.awt.Rectangle(270,227,90,20));\r
+ jButtonRemove.setText("Remove");\r
+ jButtonRemove.addActionListener(this);\r
+ }\r
+ return jButtonRemove;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonRemoveAll \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonClearAll() {\r
+ if (jButtonClearAll == null) {\r
+ jButtonClearAll = new JButton();\r
+ jButtonClearAll.setBounds(new java.awt.Rectangle(380,227,90,20));\r
+ jButtonClearAll.setText("Clear All");\r
+ jButtonClearAll.addActionListener(this);\r
+ }\r
+ return jButtonClearAll;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
+ jButtonCancel.setLocation(new java.awt.Point(390, 305));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.setSize(new java.awt.Dimension(90, 20));\r
+ jButtonCancel.setVisible(false);\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButton \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setSize(new java.awt.Dimension(90, 20));\r
+ jButtonOk.setText("OK");\r
+ jButtonOk.setLocation(new java.awt.Point(290, 305));\r
+ jButtonOk.setVisible(false);\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This is the default constructor\r
+ **/\r
+ public SpdGuidDecls() {\r
+ super();\r
+ initialize();\r
+ init();\r
+ \r
+ }\r
+\r
+ public SpdGuidDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa){\r
+ this();\r
+ sfc = new SpdFileContents(inPsa);\r
+ init(sfc);\r
+ }\r
+ \r
+ public SpdGuidDecls(OpeningPackageType opt) {\r
+ this(opt.getXmlSpd());\r
+ docConsole = opt;\r
+ }\r
+ /**\r
+ This method initializes this\r
+ \r
+ @return void\r
+ **/\r
+ protected void init() {\r
+ this.setContentPane(getJContentPane());\r
+ this.addInternalFrameListener(new InternalFrameAdapter(){\r
+ public void internalFrameDeactivated(InternalFrameEvent e){\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ }\r
+ });\r
+ this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
+ this.setVisible(true);\r
+ initFrame();\r
+ }\r
+\r
+ protected void init(SpdFileContents sfc){\r
+ if (sfc.getSpdGuidDeclarationCount() == 0) {\r
+ return ;\r
+ }\r
+ //\r
+ // initialize table using SpdFileContents object\r
+ //\r
+ saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
+ sfc.getSpdGuidDeclarations(saa);\r
+ int i = 0;\r
+ while (i < saa.length) {\r
+ model.addRow(saa[i]);\r
+ i++;\r
+ }\r
+ }\r
+ \r
+ protected JScrollPane getJContentPane(){\r
+ if (topScrollPane == null){\r
+ topScrollPane = new JScrollPane();\r
+ topScrollPane.setSize(new java.awt.Dimension(617,500));\r
+ topScrollPane.setPreferredSize(new java.awt.Dimension(498,500));\r
+ topScrollPane.setViewportView(getJContentPane1());\r
+ }\r
+ return topScrollPane;\r
+ }\r
+ \r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel\r
+ **/\r
+ protected JPanel getJContentPane1() {\r
+ if (jContentPane == null) {\r
+ jLabelGuidType = new JLabel();\r
+ jLabelGuidType.setBounds(new java.awt.Rectangle(400,122,103,16));\r
+ jLabelGuidType.setText("GUID Type List");\r
+ jLabelGuidType.setEnabled(true);\r
+ jLabelSupArch = new JLabel();\r
+ jLabelSupArch.setBounds(new java.awt.Rectangle(197,122,108,16));\r
+ jLabelSupArch.setText("Supported Arch");\r
+ jLabelSupArch.setEnabled(true);\r
+ jLabelSupMod = new JLabel();\r
+ jLabelSupMod.setBounds(new java.awt.Rectangle(14,120,110,16));\r
+ jLabelSupMod.setText("Supported Module");\r
+ jLabelSupMod.setEnabled(true);\r
+ jLabelHelp = new JLabel();\r
+ jLabelHelp.setText("HelpText");\r
+ jLabelHelp.setSize(new java.awt.Dimension(109,20));\r
+ jLabelHelp.setLocation(new java.awt.Point(14,85));\r
+ jLabelCName = new JLabel();\r
+ jLabelCName.setBounds(new java.awt.Rectangle(14,35,111,20));\r
+ jLabelCName.setText("C Name");\r
+ jLabelGuid = new JLabel();\r
+ jLabelGuid.setBounds(new java.awt.Rectangle(15,60,112,20));\r
+ jLabelGuid.setText("Guid Value");\r
+ jLabelName = new JLabel();\r
+ jLabelName.setBounds(new java.awt.Rectangle(15,10,113,20));\r
+ jLabelName.setText("Name");\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel3 = new StarLabel();\r
+ jStarLabel3.setLocation(new java.awt.Point(0, 35));\r
+ jStarLabel4 = new StarLabel();\r
+ jStarLabel4.setLocation(new java.awt.Point(0, 60));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 85));\r
+ jStarLabel2.setVisible(true);\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new Dimension(480, 375));\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(jStarLabel3, null);\r
+ jContentPane.add(jStarLabel4, null);\r
+ jContentPane.add(jLabelCName, null);\r
+ jContentPane.add(getJTextFieldCName(), null);\r
+ jContentPane.add(getJTextFieldGuid(), null);\r
+ jContentPane.add(getJScrollPane(), null);\r
+ jContentPane.add(getJButtonAdd(), null);\r
+ jContentPane.add(getJButtonRemove(), null);\r
+ jContentPane.add(getJButtonClearAll(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ \r
+ jContentPane.add(getJButtonGen(), null);\r
+ jContentPane.add(jLabelName, null);\r
+ jContentPane.add(getJTextFieldName(), null);\r
+ jContentPane.add(jLabelGuid, null);\r
+ jContentPane.add(jLabelHelp, null);\r
+ jContentPane.add(getJTextFieldHelp(), null);\r
+ jContentPane.add(jLabelSupMod, null);\r
+ jContentPane.add(jLabelSupArch, null);\r
+ jContentPane.add(getJScrollPaneArch(), null);\r
+ jContentPane.add(getJScrollPaneGuid(), null);\r
+ jContentPane.add(getJScrollPaneModule(), null);\r
+ jContentPane.add(jLabelGuidType, null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ fill ComboBoxes with pre-defined contents\r
+ **/\r
+ protected void initFrame() {\r
+ \r
+ this.setTitle("GUID Declarations");\r
+\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ \r
+ if (arg0.getSource() == jButtonOk) {\r
+ this.save();\r
+ this.dispose();\r
+\r
+ }\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.dispose();\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonAdd) {\r
+ \r
+ //ToDo: check before add\r
+ String[] row = {"", "", "", "", "", "", ""};\r
+ row[3] = jTextFieldHelp.getText();\r
+ row[2] = jTextFieldGuid.getText();\r
+ row[1] = jTextFieldCName.getText();\r
+ row[0] = jTextFieldName.getText();\r
+ row[4] = vectorToString(iCheckBoxListArch.getAllCheckedItemsString());\r
+ if (row[4].length() == 0) {\r
+ row[4] = null;\r
+ }\r
+ row[5] = vectorToString(iCheckBoxListMod.getAllCheckedItemsString());\r
+ if (row[5].length() == 0) {\r
+ row[5] = null;\r
+ }\r
+ row[6] = vectorToString(iCheckBoxListGuid.getAllCheckedItemsString());\r
+ if (row[6].length() == 0) {\r
+ row[6] = null;\r
+ }\r
+ \r
+ if (!dataValidation(row)) {\r
+ return;\r
+ }\r
+ \r
+ if (addRow(row) == -1) {\r
+ return;\r
+ }\r
+ model.addRow(row);\r
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
+ \r
+ }\r
+ //\r
+ // remove selected line\r
+ //\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()){\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ int rowSelected = selectedRow;\r
+ if (rowSelected >= 0) {\r
+ model.removeRow(rowSelected);\r
+ removeRow(rowSelected);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonClearAll) {\r
+ if (model.getRowCount() == 0) {\r
+ return;\r
+ }\r
+ model.setRowCount(0);\r
+ clearAllRow();\r
+ }\r
+ \r
+ if (arg0.getSource() == jButtonGen) {\r
+ jTextFieldGuid.setText(Tools.generateUuidString());\r
+ }\r
+ \r
+ if (arg0.getActionCommand().equals("GenGuidValue")) {\r
+ jTextFieldGuid.setText(guidDialog.getGuid());\r
+ }\r
+ \r
+ }\r
+ \r
+ protected boolean dataValidation(String[] row){\r
+ if (!DataValidation.isUiNameType(row[0])) {\r
+ JOptionPane.showMessageDialog(this, "Name must start with an alpha character.");\r
+ return false;\r
+ }\r
+ if (!DataValidation.isGuid(row[2])) {\r
+ JOptionPane.showMessageDialog(this, "Guid Value must be in registry format, 8-4-4-4-12.");\r
+ return false;\r
+ }\r
+ if (!DataValidation.isC_NameType(row[1])) {\r
+ JOptionPane.showMessageDialog(this, "C Name does not match C Name datatype.");\r
+ return false;\r
+ }\r
+ if (row[3].length() == 0) {\r
+ JOptionPane.showMessageDialog(this, "Help Text must be entered!");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+ \r
+ protected int addRow(String[] row) {\r
+ Vector<String> vArch = iCheckBoxListArch.getAllCheckedItemsString();\r
+ if (vArch.size() == 0) {\r
+ vArch = null;\r
+ }\r
+ Vector<String> vModType = iCheckBoxListMod.getAllCheckedItemsString();\r
+ if (vModType.size() == 0) {\r
+ vModType = null;\r
+ }\r
+ Vector<String> vguidType = iCheckBoxListGuid.getAllCheckedItemsString();\r
+ if (vguidType.size() == 0) {\r
+ vguidType = null;\r
+ }\r
+ if (vguidType == null) {\r
+ JOptionPane.showMessageDialog(this, "You must select one GUID type.");\r
+ return -1;\r
+ }\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ sfc.genSpdGuidDeclarations(row[0], row[1], row[2], row[3], vArch, vModType, vguidType);\r
+ return 0;\r
+ }\r
+ \r
+ protected void removeRow(int i){\r
+ sfc.removeSpdGuidDeclaration(i);\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+ \r
+ protected void clearAllRow(){\r
+ sfc.removeSpdGuidDeclaration();\r
+ if (docConsole != null) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Add contents in list to sfc\r
+ **/\r
+ protected void save() {\r
+ \r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonBrowse \r
+ \r
+ @return javax.swing.JButton \r
+ **/\r
+ protected JButton getJButtonGen() {\r
+ if (jButtonGen == null) {\r
+ jButtonGen = new JButton();\r
+ jButtonGen.setBounds(new java.awt.Rectangle(379,58,92,21));\r
+ jButtonGen.setText("Gen GUID");\r
+ jButtonGen.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonGen.addActionListener(this);\r
+ }\r
+ return jButtonGen;\r
+ }\r
+ \r
+ /**\r
+ * This method initializes jTextFieldName \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ protected JTextField getJTextFieldName() {\r
+ if (jTextFieldName == null) {\r
+ jTextFieldName = new JTextField();\r
+ jTextFieldName.setBounds(new java.awt.Rectangle(138,10,337,20));\r
+ jTextFieldName.setPreferredSize(new java.awt.Dimension(335,20));\r
+ }\r
+ return jTextFieldName;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldCName \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ protected JTextField getJTextFieldCName() {\r
+ if (jTextFieldCName == null) {\r
+ jTextFieldCName = new JTextField();\r
+ jTextFieldCName.setBounds(new java.awt.Rectangle(137,35,337,20));\r
+ jTextFieldCName.setPreferredSize(new java.awt.Dimension(335,20));\r
+ }\r
+ return jTextFieldCName;\r
+ }\r
+\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intPreferredWidth = 500;\r
+ \r
+ Tools.resizeComponentWidth(this.jTextFieldName, this.getWidth(), intPreferredWidth);\r
+\r
+ Tools.resizeComponentWidth(this.jTextFieldCName, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextFieldHelp, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
+ Tools.relocateComponentX(this.jButtonGen, this.getWidth(), this.getPreferredSize().width, 40);\r
+ \r
+ }\r
+ \r
+ /**\r
+ * This method initializes jTextField \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldHelp() {\r
+ if (jTextFieldHelp == null) {\r
+ jTextFieldHelp = new JTextField();\r
+ jTextFieldHelp.setBounds(new java.awt.Rectangle(136,85,337,20));\r
+ jTextFieldHelp.setPreferredSize(new Dimension(335, 20));\r
+ }\r
+ return jTextFieldHelp;\r
+ }\r
+\r
+ private JScrollPane getJScrollPaneArch() {\r
+ if (jScrollPaneArch == null) {\r
+ jScrollPaneArch = new JScrollPane();\r
+ jScrollPaneArch.setBounds(new java.awt.Rectangle(197,142,188,74));\r
+ jScrollPaneArch.setPreferredSize(new java.awt.Dimension(188, 74));\r
+ jScrollPaneArch.setViewportView(getICheckBoxListArch());\r
+ }\r
+ return jScrollPaneArch;\r
+ }\r
+ /**\r
+ * This method initializes iCheckBoxList \r
+ * \r
+ * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
+ */\r
+ private ICheckBoxList getICheckBoxListArch() {\r
+ if (iCheckBoxListArch == null) {\r
+ iCheckBoxListArch = new ICheckBoxList();\r
+ iCheckBoxListArch.setBounds(new java.awt.Rectangle(197,142,188,74));\r
+ Vector<String> v = new Vector<String>();\r
+ v.add("IA32");\r
+ v.add("X64");\r
+ v.add("IPF");\r
+ v.add("EBC");\r
+ v.add("ARM");\r
+ v.add("PPC");\r
+ iCheckBoxListArch.setAllItems(v);\r
+ }\r
+ return iCheckBoxListArch;\r
+ }\r
+\r
+ protected JScrollPane getJScrollPaneGuid() {\r
+ if (jScrollPaneGuid== null) {\r
+ jScrollPaneGuid = new JScrollPane();\r
+ jScrollPaneGuid.setPreferredSize(new java.awt.Dimension(190,74));\r
+ jScrollPaneGuid.setLocation(new java.awt.Point(400,142));\r
+ jScrollPaneGuid.setSize(new java.awt.Dimension(260,74));\r
+ jScrollPaneGuid.setViewportView(getICheckBoxListGuid());\r
+ }\r
+ return jScrollPaneGuid;\r
+ }\r
+ /**\r
+ * This method initializes iCheckBoxList1 \r
+ * \r
+ * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
+ */\r
+ private ICheckBoxList getICheckBoxListGuid() {\r
+ if (iCheckBoxListGuid == null) {\r
+ iCheckBoxListGuid = new ICheckBoxList();\r
+ iCheckBoxListGuid.setBounds(new java.awt.Rectangle(400,142,177,74));\r
+ Vector<String> v = new Vector<String>();\r
+ v.add("DATA_HUB_RECORD");\r
+ v.add("EFI_EVENT");\r
+ v.add("EFI_SYSTEM_CONFIGURATION_TABLE");\r
+ v.add("EFI_VARIABLE");\r
+ v.add("GUID");\r
+ v.add("HII_PACKAGE_LIST");\r
+ v.add("HOB");\r
+ v.add("TOKEN_SPACE_GUID");\r
+ \r
+ iCheckBoxListGuid.setAllItems(v);\r
+ }\r
+ return iCheckBoxListGuid;\r
+ }\r
+\r
+ private JScrollPane getJScrollPaneModule() {\r
+ if (jScrollPaneModule == null) {\r
+ jScrollPaneModule = new JScrollPane();\r
+ jScrollPaneModule.setBounds(new java.awt.Rectangle(14,142,170,74));\r
+ jScrollPaneModule.setPreferredSize(new java.awt.Dimension(170, 74));\r
+ jScrollPaneModule.setViewportView(getICheckBoxListMod());\r
+ }\r
+ return jScrollPaneModule;\r
+ }\r
+ /**\r
+ * This method initializes iCheckBoxList2 \r
+ * \r
+ * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
+ */\r
+ private ICheckBoxList getICheckBoxListMod() {\r
+ if (iCheckBoxListMod == null) {\r
+ iCheckBoxListMod = new ICheckBoxList();\r
+ iCheckBoxListMod.setBounds(new java.awt.Rectangle(14,142,170,74));\r
+ Vector<String> v = new Vector<String>();\r
+ v.add("BASE");\r
+ v.add("SEC");\r
+ v.add("PEI_CORE");\r
+ v.add("PEIM");\r
+ v.add("DXE_CORE");\r
+ v.add("DXE_DRIVER");\r
+ v.add("DXE_RUNTIME_DRIVER");\r
+ v.add("DXE_SAL_DRIVER");\r
+ v.add("DXE_SMM_DRIVER");\r
+ v.add("UEFI_DRIVER");\r
+ v.add("UEFI_APPLICATION");\r
+ v.add("USER_DEFINED");\r
+ iCheckBoxListMod.setAllItems(v);\r
+ }\r
+ return iCheckBoxListMod;\r
+ }\r
+\r
+ public static void main(String[] args){\r
+ new SpdGuidDecls().setVisible(true);\r
+ }\r
+\r
+ protected DefaultTableModel getModel() {\r
+ return model;\r
+ }\r
+\r
+ protected void setModel(DefaultTableModel model) {\r
+ this.model = model;\r
+ }\r
+ \r
+ protected String vectorToString(Vector<String> v) {\r
+ String s = " ";\r
+ for (int i = 0; i < v.size(); ++i) {\r
+ s += v.get(i);\r
+ s += " ";\r
+ }\r
+ return s.trim();\r
+ }\r
+ \r
+ protected Vector<String> stringToVector(String s){\r
+ if (s == null) {\r
+ return null;\r
+ }\r
+ String[] sArray = s.split(" ");\r
+ Vector<String> v = new Vector<String>();\r
+ for (int i = 0; i < sArray.length; ++i) {\r
+ v.add(sArray[i]);\r
+ }\r
+ return v;\r
+ }\r
+\r
+ protected JLabel getJLabelGuidType() {\r
+ return jLabelGuidType;\r
+ }\r
+}\r
+\r
+\r