**/\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
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
@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
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 (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
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
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
}\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
\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
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