\r
import org.tianocore.PackageSurfaceAreaDocument;\r
\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
import javax.swing.JScrollPane;\r
import javax.swing.JTable;\r
import javax.swing.JCheckBox;\r
import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
+import org.tianocore.frameworkwizard.platform.ui.ListEditor;\r
+\r
import java.awt.Rectangle;\r
import java.util.Vector;\r
\r
\r
private JButton jButtonClearAll = null;\r
\r
- private JButton jButtonGen = null;\r
- \r
- private GenGuidDialog guidDialog = null;\r
-\r
private JScrollPane jScrollPane = null;\r
\r
private JTable jTable = null;\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonClearAll(), null);\r
- jContentPane.add(getJButtonGen(), null);\r
jContentPane.add(getJScrollPane(), null);\r
jContentPane.add(starLabel, null);\r
jContentPane.add(getJCheckBox(), null);\r
if (arg0.getSource() == jButtonOk) {\r
this.save();\r
this.dispose();\r
-\r
}\r
if (arg0.getSource() == jButtonCancel) {\r
this.dispose();\r
\r
if (arg0.getSource() == jButtonAdd) {\r
//ToDo: check before add\r
- if (!checkValid()) {\r
+ boolean[] b = {jCheckBox.isSelected(), jCheckBox1.isSelected(), jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected()};\r
+ if (!checkValidUsage(b)) {\r
return;\r
}\r
- \r
String archList = vectorToString(iCheckBoxList.getAllCheckedItemsString());\r
if (archList.length() == 0) {\r
archList = null;\r
jCheckBox.isSelected(), jCheckBox1.isSelected(),\r
jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected(),\r
archList, modTypeList};\r
- \r
+ if (!dataValidation(row)) {\r
+ return;\r
+ }\r
model.addRow(row);\r
\r
String usage = getValidUsage(jCheckBox.isSelected(), jCheckBox1.isSelected(), jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected());\r
sfc.removeSpdPcdDefinition();\r
}\r
\r
- if (arg0.getSource() == jButtonGen) {\r
- guidDialog = new GenGuidDialog(this);\r
- guidDialog.setGuid(jTextFieldTsGuid.getText());\r
- guidDialog.setVisible(true);\r
- }\r
- \r
- if (arg0.getActionCommand().equals("GenGuidValue")) {\r
- jTextFieldTsGuid.setText(guidDialog.getGuid());\r
- }\r
-\r
}\r
\r
protected void save() {\r
private JTextField getJTextFieldTsGuid() {\r
if (jTextFieldTsGuid == null) {\r
jTextFieldTsGuid = new JTextField();\r
- jTextFieldTsGuid.setBounds(new java.awt.Rectangle(156,58,249,20));\r
- jTextFieldTsGuid.setPreferredSize(new java.awt.Dimension(250,20));\r
+ jTextFieldTsGuid.setPreferredSize(new java.awt.Dimension(315,20));\r
+ jTextFieldTsGuid.setSize(new java.awt.Dimension(317,20));\r
+ jTextFieldTsGuid.setLocation(new java.awt.Point(156,58));\r
}\r
return jTextFieldTsGuid;\r
}\r
return jButtonClearAll;\r
}\r
\r
- /**\r
- * This method initializes jButtonGen \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonGen() {\r
- if (jButtonGen == null) {\r
- jButtonGen = new JButton();\r
- jButtonGen.setBounds(new java.awt.Rectangle(414,57,58,20));\r
- jButtonGen.setPreferredSize(new java.awt.Dimension(56,20));\r
- jButtonGen.setText("Gen");\r
- jButtonGen.addActionListener(this);\r
- }\r
- return jButtonGen;\r
- }\r
- \r
public void componentResized(ComponentEvent arg0) {\r
int intPreferredWidth = 500;\r
\r
resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
\r
- resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
// relocateComponentX(this.jButtonClearAll, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
// relocateComponentX(this.jButtonRemove, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
// relocateComponentX(this.jButtonAdd, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
- relocateComponentX(this.jButtonGen, this.getWidth(), this.getPreferredSize().width, 30);\r
}\r
\r
/**\r
if (jTable == null) {\r
model = new CheckboxTableModel();\r
jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
jTable.setSize(new Dimension(1000, 300));\r
\r
model.addColumn("DynamicEx");\r
model.addColumn("SupportedArch");\r
model.addColumn("SupportedModule");\r
- jTable.getColumnModel().getColumn(2).setCellEditor(new GuidEditor());\r
\r
//ToDo: add a valid usage editor\r
\r
TableColumn dataTypeColumn = jTable.getColumnModel().getColumn(3);\r
dataTypeColumn.setCellEditor(new DefaultCellEditor(jComboBoxDataType));\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(11).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(12).setCellEditor(new ListEditor(vModule));\r
+ \r
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
public void valueChanged(ListSelectionEvent e) {\r
String usage = getValidUsage(new Boolean(m.getValueAt(row, 6)+""), new Boolean(m.getValueAt(row, 7)+""), new Boolean(m.getValueAt(row, 8)+""), new Boolean(m.getValueAt(row, 9)+""), new Boolean(m.getValueAt(row, 10)+""));\r
String archList = vectorToString(iCheckBoxList.getAllCheckedItemsString());\r
String modTypeList = vectorToString(iCheckBoxList1.getAllCheckedItemsString());\r
+ if (usage.length() == 0) {\r
+ JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
+ return;\r
+ }\r
+ Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
+ if (!dataValidation(o)){\r
+ return;\r
+ }\r
sfc.updateSpdPcdDefinition(row, cName, token, dataType, usage, ts, defaultVal, help, archList, modTypeList);\r
}\r
}\r
return usage.trim();\r
}\r
\r
- private boolean checkValid() {\r
- if (!(jCheckBox.isSelected() || jCheckBox1.isSelected() || jCheckBox2.isSelected() || jCheckBox3.isSelected() || jCheckBox4.isSelected())){\r
+ private boolean checkValidUsage(boolean[] b) {\r
+ if (!(b[0] || b[1] || b[2] || b[3] || b[4])){\r
JOptionPane.showMessageDialog(frame, "You must specify at least one usage.");\r
return false;\r
}\r
return true;\r
}\r
+ private boolean dataValidation(Object[] row) {\r
+ \r
+ if (!DataValidation.isC_NameType(row[0].toString())) {\r
+ JOptionPane.showMessageDialog(frame, "C_Name is NOT C_NameType.");\r
+ return false;\r
+ }\r
+ if (!(DataValidation.isHexDoubleWordDataType(row[1].toString()) || \r
+ DataValidation.isInt(row[1].toString(), 0, 0xffffffff))) {\r
+ JOptionPane.showMessageDialog(frame, "Token is NOT correct.");\r
+ return false;\r
+ }\r
+ if (!DataValidation.isC_NameType(row[2].toString())) {\r
+ JOptionPane.showMessageDialog(frame, "Token Space is NOT C_NameType");\r
+ return false;\r
+ }\r
+ if (row[5].toString().length() == 0) {\r
+ JOptionPane.showMessageDialog(frame, "HelpText could NOT be empty.");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
\r
/**\r
* This method initializes jScrollPane1 \r
v.add("X64");\r
v.add("IPF");\r
v.add("EBC");\r
+ v.add("ARM");\r
+ v.add("PPC");\r
iCheckBoxList.setAllItems(v);\r
}\r
return iCheckBoxList;\r