]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java
Add Data Validations for SPD editor.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdGuidDecls.java
index 2eaf87054cc8a876c2f9fd981b587883fca20f70..6fe9d43bb2aced958d1dcba78c790bb755f05d4c 100644 (file)
@@ -12,25 +12,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 package org.tianocore.frameworkwizard.packaging.ui;\r
 \r
-import java.awt.BorderLayout;\r
 import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
 import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
 import java.awt.event.ComponentEvent;\r
-import java.io.File;\r
 import java.util.Vector;\r
 \r
-import javax.swing.DefaultListModel;\r
-import javax.swing.JFileChooser;\r
 import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
-import javax.swing.JRadioButton;\r
 import javax.swing.JTable;\r
 import javax.swing.JTextField;\r
-import javax.swing.JComboBox;\r
 import javax.swing.JLabel;\r
-import javax.swing.JList;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JButton;\r
 import javax.swing.JFrame;\r
@@ -45,11 +36,12 @@ import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableModel;\r
 \r
 import org.tianocore.PackageSurfaceAreaDocument;\r
-import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
 import org.tianocore.frameworkwizard.common.Tools;\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
@@ -57,6 +49,11 @@ import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;
  @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
@@ -190,6 +187,41 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
            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
@@ -238,7 +270,10 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
        if (m.getValueAt(row, 6) != null){\r
            guidTypeList = m.getValueAt(row, 6).toString();\r
        }\r
-       \r
+       String[] rowData = {name, cName, guid, help};\r
+       if (!dataValidation(rowData)){\r
+           return;\r
+       }\r
        \r
        sfc.updateSpdGuidDecl(row, name, cName, guid, help, archList, modTypeList, guidTypeList);\r
    }\r
@@ -481,7 +516,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
         if (arg0.getSource() == jButtonAdd) {\r
             \r
             //ToDo: check before add\r
-            String[] row = {"", "", "", "", "", "", null};\r
+            String[] row = {"", "", "", "", "", "", ""};\r
             row[3] = jTextField.getText();\r
             row[2] = jTextFieldAdd.getText();\r
             row[1] = jTextFieldVersion.getText();\r
@@ -494,8 +529,13 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
             if (row[5].length() == 0) {\r
                 row[5] = null;\r
             }\r
-            if (iCheckBoxList1.getAllCheckedItemsString() != null) {\r
-                row[6] = vectorToString(iCheckBoxList1.getAllCheckedItemsString());\r
+            row[6] = vectorToString(iCheckBoxList1.getAllCheckedItemsString());\r
+            if (row[6].length() == 0) {\r
+                row[6] = null;\r
+            }\r
+            \r
+            if (!dataValidation(row)) {\r
+                return;\r
             }\r
             model.addRow(row);\r
             addRow(row);\r
@@ -523,9 +563,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
         }\r
         \r
         if (arg0.getSource() == jButtonGen) {\r
-            guidDialog = new GenGuidDialog(this);\r
-            guidDialog.setGuid(jTextFieldAdd.getText());\r
-            guidDialog.setVisible(true);\r
+            jTextFieldAdd.setText(Tools.generateUuidString());\r
         }\r
         \r
         if (arg0.getActionCommand().equals("GenGuidValue")) {\r
@@ -534,6 +572,26 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
         \r
     }\r
     \r
+    protected boolean dataValidation(String[] row){\r
+        if (!DataValidation.isUiNameType(row[0])) {\r
+            JOptionPane.showMessageDialog(this, "Name is NOT UiNameType.");\r
+            return false;\r
+        }\r
+        if (!DataValidation.isGuid(row[2])) {\r
+            JOptionPane.showMessageDialog(this, "Guid Value is NOT GuidType.");\r
+            return false;\r
+        }\r
+        if (!DataValidation.isC_NameType(row[1])) {\r
+            JOptionPane.showMessageDialog(this, "C_Name is NOT C_NameType.");\r
+            return false;\r
+        }\r
+        if (row[3].length() == 0) {\r
+            JOptionPane.showMessageDialog(this, "HelpText could NOT be empty.");\r
+            return false;\r
+        }\r
+        return true;\r
+    }\r
+    \r
     protected void addRow(String[] row) {\r
         Vector<String> vArch = iCheckBoxList.getAllCheckedItemsString();\r
         Vector<String> vModType = iCheckBoxList2.getAllCheckedItemsString();\r
@@ -649,7 +707,8 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
             v.add("X64");\r
             v.add("IPF");\r
             v.add("EBC");\r
-            \r
+            v.add("ARM");\r
+            v.add("PPC");\r
             iCheckBoxList.setAllItems(v);\r
         }\r
         return iCheckBoxList;\r