\r
import org.tianocore.PackageSurfaceAreaDocument;\r
\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 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
private JComboBox jComboBoxDataType = null;\r
\r
private SpdFileContents sfc = null;\r
+ \r
+ private OpeningPackageType docConsole = null;\r
\r
private StarLabel jStarLabel2 = null;\r
\r
\r
private JLabel jLabelTokenSpace = null;\r
\r
- private JTextField jTextFieldTsGuid = null;\r
+ private JComboBox jComboBoxTsGuid = null;\r
\r
private JLabel jLabelVarVal = null;\r
\r
- private JTextField jTextField = null;\r
+ private JTextField jTextFieldHelp = null;\r
\r
private JLabel jLabelDefVal = null;\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
\r
private StarLabel starLabel = null;\r
\r
- private JCheckBox jCheckBox = null;\r
+ private JCheckBox jCheckBoxFeatureFlag = null;\r
\r
- private JCheckBox jCheckBox1 = null;\r
+ private JCheckBox jCheckBoxFixedAtBuild = null;\r
\r
- private JCheckBox jCheckBox2 = null;\r
+ private JCheckBox jCheckBoxPatchInMod = null;\r
\r
- private JCheckBox jCheckBox3 = null;\r
+ private JCheckBox jCheckBoxDyn = null;\r
\r
- private JCheckBox jCheckBox4 = null;\r
+ private JCheckBox jCheckBoxDynEx = null;\r
\r
- private JScrollPane jScrollPane1 = null;\r
+ private JScrollPane jScrollPaneArch = null;\r
\r
- private ICheckBoxList iCheckBoxList = null;\r
+ private ICheckBoxList iCheckBoxListArch = null;\r
\r
- private JScrollPane jScrollPane2 = null;\r
+ private JScrollPane jScrollPaneMod = null;\r
\r
- private ICheckBoxList iCheckBoxList1 = null;\r
+ private ICheckBoxList iCheckBoxListMod = null;\r
\r
- private JLabel jLabel = null;\r
+ private JLabel jLabelSupMod = null;\r
\r
- private JLabel jLabel1 = null;\r
+ private JLabel jLabelSupArch = null;\r
\r
/**\r
This method initializes this\r
\r
**/\r
private void initialize() {\r
- this.setTitle("PCD Definition");\r
+ this.setTitle("PCD Declarations");\r
this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
\r
}\r
sfc = new SpdFileContents(inPsa);\r
init(sfc);\r
}\r
+ \r
+ public SpdPcdDefs(OpeningPackageType opt) {\r
+ this(opt.getXmlSpd());\r
+ docConsole = opt;\r
+ }\r
/**\r
This method initializes this\r
\r
}\r
}\r
});\r
- initFrame();\r
+ \r
this.setVisible(true);\r
}\r
\r
private void init(SpdFileContents sfc){\r
+ initFrame(sfc);\r
if (sfc.getSpdPcdDefinitionCount() == 0) {\r
return ;\r
}\r
for (int k = 0; k < 6; ++k) {\r
rowData[k] = saa[i][k];\r
}\r
- for (int m = 7; m < 11; ++m) {\r
+ for (int m = 6; m < 11; ++m) {\r
rowData[m] = new Boolean("false");\r
}\r
int j = 0;\r
private JPanel getJContentPane1() {\r
if (jContentPane == null) { \r
\r
- jLabel1 = new JLabel();\r
- jLabel1.setBounds(new java.awt.Rectangle(241,192,89,16));\r
- jLabel1.setText("Supported Arch");\r
- jLabel1.setEnabled(true);\r
- jLabel = new JLabel();\r
- jLabel.setBounds(new java.awt.Rectangle(15,193,103,16));\r
- jLabel.setText("Supported Module");\r
- jLabel.setEnabled(true);\r
+ jLabelSupArch = new JLabel();\r
+ jLabelSupArch.setBounds(new java.awt.Rectangle(241,192,89,16));\r
+ jLabelSupArch.setText("Supported Architectures");\r
+ jLabelSupArch.setEnabled(true);\r
+ jLabelSupMod = new JLabel();\r
+ jLabelSupMod.setBounds(new java.awt.Rectangle(15,193,103,16));\r
+ jLabelSupMod.setText("Supported Module type");\r
+ jLabelSupMod.setEnabled(true);\r
starLabel = new StarLabel();\r
starLabel.setBounds(new java.awt.Rectangle(2,134,10,20));\r
jLabelDefVal = new JLabel();\r
jLabelVarVal.setBounds(new java.awt.Rectangle(11,133,84,20));\r
jLabelVarVal.setText("Valid Usage");\r
jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("C_Name");\r
+ jLabelC_Name.setText("C Name");\r
jLabelC_Name.setBounds(new java.awt.Rectangle(11,9,140,20));\r
jLabelTokenSpace = new JLabel();\r
jLabelTokenSpace.setBounds(new java.awt.Rectangle(11,58,140,20));\r
jLabelDataType.setText("Data Type");\r
jLabelDataType.setBounds(new java.awt.Rectangle(11,83,140,20));\r
jLabelToken = new JLabel();\r
- jLabelToken.setText("Token");\r
+ jLabelToken.setText("Token Number");\r
jLabelToken.setBounds(new java.awt.Rectangle(11,33,140,20));\r
jLabelItemType = new JLabel();\r
jLabelItemType.setText("Help Text");\r
jContentPane.add(jLabelItemType, null);\r
jContentPane.add(jLabelC_Name, null);\r
jContentPane.add(jLabelTokenSpace, null);\r
- jContentPane.add(getJTextFieldTsGuid(), null);\r
+ jContentPane.add(getJComboBoxTsGuid(), null);\r
jContentPane.add(jLabelVarVal, null);\r
jContentPane.add(getJTextFieldC_Name(), null);\r
jContentPane.add(jLabelToken, null);\r
jContentPane.add(jStarLabel, null);\r
jContentPane.add(jStarLabel1, null);\r
jContentPane.add(jStarLabel4, null);\r
- jContentPane.add(getJTextField(), null);\r
+ jContentPane.add(getJTextFieldHelp(), null);\r
jContentPane.add(jLabelDefVal, null);\r
jContentPane.add(getJTextFieldDefaultValue(), 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
- jContentPane.add(getJCheckBox1(), null);\r
- jContentPane.add(getJCheckBox2(), null);\r
- jContentPane.add(getJCheckBox3(), null);\r
- jContentPane.add(getJCheckBox4(), null);\r
- jContentPane.add(getJScrollPane1(), null);\r
- jContentPane.add(getJScrollPane2(), null);\r
- jContentPane.add(jLabel, null);\r
- jContentPane.add(jLabel1, null);\r
+ jContentPane.add(getJCheckBoxFeatureFlag(), null);\r
+ jContentPane.add(getJCheckBoxFixedAtBuild(), null);\r
+ jContentPane.add(getJCheckBoxPatchInMod(), null);\r
+ jContentPane.add(getJCheckBoxDyn(), null);\r
+ jContentPane.add(getJCheckBoxDynEx(), null);\r
+ jContentPane.add(getJScrollPaneArch(), null);\r
+ jContentPane.add(getJScrollPaneMod(), null);\r
+ jContentPane.add(jLabelSupMod, null);\r
+ jContentPane.add(jLabelSupArch, null);\r
}\r
return jContentPane;\r
}\r
jContentPane.add(jLabelTokenSpace, null);\r
\r
**/\r
- private void initFrame() {\r
+ private void initFrame(SpdFileContents sfc) {\r
\r
jComboBoxDataType.addItem("UINT8");\r
jComboBoxDataType.addItem("UINT16");\r
jComboBoxDataType.addItem("VOID*");\r
jComboBoxDataType.addItem("BOOLEAN");\r
jComboBoxDataType.setSelectedIndex(0);\r
+ \r
+ Vector<String> vGuidCName = new Vector<String>();\r
+ sfc.getSpdGuidDeclWithType(vGuidCName, "TOKEN_SPACE_GUID");\r
+ for (int i = 0; i < vGuidCName.size(); ++i) {\r
+ jComboBoxTsGuid.addItem(vGuidCName.get(i));\r
+ }\r
}\r
\r
public void actionPerformed(ActionEvent arg0) {\r
\r
+ \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
+ \r
+ boolean[] b = {jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected()};\r
+ if (!checkValidUsage(b)) {\r
return;\r
}\r
- \r
- String archList = vectorToString(iCheckBoxList.getAllCheckedItemsString());\r
+ String archList = vectorToString(iCheckBoxListArch.getAllCheckedItemsString());\r
if (archList.length() == 0) {\r
archList = null;\r
}\r
- String modTypeList = vectorToString(iCheckBoxList1.getAllCheckedItemsString());\r
+ String modTypeList = vectorToString(iCheckBoxListMod.getAllCheckedItemsString());\r
if (modTypeList.length() == 0) {\r
modTypeList = null;\r
}\r
Object[] row = {jTextFieldC_Name.getText(), jTextFieldToken.getText(),\r
- jTextFieldTsGuid.getText(), jComboBoxDataType.getSelectedItem(), \r
- jTextFieldDefaultValue.getText(), jTextField.getText(),\r
- jCheckBox.isSelected(), jCheckBox1.isSelected(),\r
- jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected(),\r
+ jComboBoxTsGuid.getSelectedItem(), jComboBoxDataType.getSelectedItem(), \r
+ jTextFieldDefaultValue.getText(), jTextFieldHelp.getText(),\r
+ jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(),\r
+ jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
archList, modTypeList};\r
- \r
- model.addRow(row);\r
+ if (!dataValidation(row)) {\r
+ return;\r
+ }\r
\r
- String usage = getValidUsage(jCheckBox.isSelected(), jCheckBox1.isSelected(), jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected());\r
+ if (tokenCNameExisted(jTextFieldToken.getText(), jTextFieldC_Name.getText())) {\r
+ return;\r
+ }\r
+ \r
+ model.addRow(row);\r
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
+ String usage = getValidUsage(jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected());\r
if (usage.length() == 0) {\r
usage = null;\r
}\r
sfc.genSpdPcdDefinitions(row[0]+"", row[1]+"", row[3]+"", usage, row[2]+"", row[4]+"", row[5]+"", archList, modTypeList);\r
+ docConsole.setSaved(false);\r
}\r
//\r
// remove selected line\r
if (rowSelected >= 0) {\r
model.removeRow(rowSelected);\r
sfc.removeSpdPcdDefinition(rowSelected);\r
+ docConsole.setSaved(false);\r
}\r
}\r
\r
}\r
model.setRowCount(0);\r
sfc.removeSpdPcdDefinition();\r
+ docConsole.setSaved(false);\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
}\r
\r
/**\r
- * This method initializes jTextFieldTsGuid \r
+ * This method initializes jComboBoxTsGuid \r
* \r
- * @return javax.swing.JTextField \r
+ * @return javax.swing.JComboBox \r
*/\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
+ private JComboBox getJComboBoxTsGuid() {\r
+ if (jComboBoxTsGuid == null) {\r
+ jComboBoxTsGuid = new JComboBox();\r
+ jComboBoxTsGuid.setBounds(new java.awt.Rectangle(156,58,315,20));\r
+ \r
}\r
- return jTextFieldTsGuid;\r
+ return jComboBoxTsGuid;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField() {\r
- if (jTextField == null) {\r
- jTextField = new JTextField();\r
- jTextField.setBounds(new java.awt.Rectangle(156,108,317,20));\r
- jTextField.setPreferredSize(new java.awt.Dimension(315,20));\r
+ private JTextField getJTextFieldHelp() {\r
+ if (jTextFieldHelp == null) {\r
+ jTextFieldHelp = new JTextField();\r
+ jTextFieldHelp.setBounds(new java.awt.Rectangle(156,108,317,20));\r
+ jTextFieldHelp.setPreferredSize(new java.awt.Dimension(315,20));\r
}\r
- return jTextField;\r
+ return jTextFieldHelp;\r
}\r
\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.jTextFieldC_Name, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldToken, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldTsGuid, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextFieldC_Name, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextFieldToken, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jComboBoxTsGuid, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextFieldHelp, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
\r
- resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
+ Tools.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
private JScrollPane getJScrollPane() {\r
if (jScrollPane == null) {\r
jScrollPane = new JScrollPane();\r
- jScrollPane.setBounds(new java.awt.Rectangle(5,301,1473,137));\r
+ jScrollPane.setBounds(new java.awt.Rectangle(5,301,1473,259));\r
jScrollPane.setViewportView(getJTable());\r
}\r
return jScrollPane;\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
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
+ String[] sa = new String[9];\r
+ sfc.getSpdPcdDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\r
+ if (column < 6) {\r
+ \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
+ \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
+ if (usage.length() == 0) {\r
+ JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
+ return;\r
+ }\r
+ if (column <= 10 && column >= 6) {\r
+ if (compareTwoVectors(stringToVector(usage), stringToVector(sa[6]))) {\r
+ return;\r
+ }\r
+ }\r
+ \r
+ if (column == 11) {\r
+ if (cellData == null) {\r
+ cellData = "";\r
+ }\r
+ if (cellData.equals(sa[7])) {\r
+ return;\r
+ }\r
+ if (cellData.toString().length() == 0 && sa[7] == null) {\r
+ return;\r
+ }\r
+ }\r
\r
+ if (column == 12) {\r
+ if (cellData == null) {\r
+ cellData = "";\r
+ }\r
+ if (cellData.equals(sa[8])) {\r
+ return;\r
+ }\r
+ if (cellData.toString().length() == 0 && sa[8] == null) {\r
+ return;\r
+ }\r
+ }\r
String cName = m.getValueAt(row, 0) + "";\r
String token = m.getValueAt(row, 1) + "";\r
String ts = m.getValueAt(row, 2) + "";\r
String dataType = m.getValueAt(row, 3) + "";\r
String defaultVal = m.getValueAt(row, 4) + "";\r
String help = m.getValueAt(row, 5) + "";\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
+ \r
+ \r
+ String archList = null;\r
+ if (m.getValueAt(row, 11) != null){\r
+ archList = m.getValueAt(row, 11).toString();\r
+ }\r
+ String modTypeList = null;\r
+ if (m.getValueAt(row, 12) != null) {\r
+ modTypeList = m.getValueAt(row, 12).toString(); \r
+ }\r
+ \r
+ Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
+ if (!dataValidation(o)){\r
+ return;\r
+ }\r
+ docConsole.setSaved(false);\r
sfc.updateSpdPcdDefinition(row, cName, token, dataType, usage, ts, defaultVal, help, archList, modTypeList);\r
}\r
}\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox() {\r
- if (jCheckBox == null) {\r
- jCheckBox = new JCheckBox();\r
- jCheckBox.setBounds(new java.awt.Rectangle(156,161,100,21));\r
- jCheckBox.setText("Feature Flag");\r
- jCheckBox.setPreferredSize(new java.awt.Dimension(21,20));\r
+ private JCheckBox getJCheckBoxFeatureFlag() {\r
+ if (jCheckBoxFeatureFlag == null) {\r
+ jCheckBoxFeatureFlag = new JCheckBox();\r
+ jCheckBoxFeatureFlag.setBounds(new java.awt.Rectangle(156,161,100,21));\r
+ jCheckBoxFeatureFlag.setText("Feature Flag");\r
+ jCheckBoxFeatureFlag.setPreferredSize(new java.awt.Dimension(21,20));\r
+ jCheckBoxFeatureFlag.addItemListener(new java.awt.event.ItemListener() {\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jCheckBoxFeatureFlag.isSelected()) {\r
+ jCheckBoxPatchInMod.setSelected(false);\r
+ jCheckBoxFixedAtBuild.setSelected(false);\r
+ jCheckBoxDyn.setSelected(false);\r
+ jCheckBoxDynEx.setSelected(false);\r
+ }\r
+ }\r
+ });\r
}\r
- return jCheckBox;\r
+ return jCheckBoxFeatureFlag;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox1() {\r
- if (jCheckBox1 == null) {\r
- jCheckBox1 = new JCheckBox();\r
- jCheckBox1.setBounds(new java.awt.Rectangle(302,133,108,20));\r
- jCheckBox1.setText("Fixed at Build");\r
- jCheckBox1.setPreferredSize(new java.awt.Dimension(21,20));\r
+ private JCheckBox getJCheckBoxFixedAtBuild() {\r
+ if (jCheckBoxFixedAtBuild == null) {\r
+ jCheckBoxFixedAtBuild = new JCheckBox();\r
+ jCheckBoxFixedAtBuild.setBounds(new java.awt.Rectangle(312,133,108,20));\r
+ jCheckBoxFixedAtBuild.setText("Fixed at Build");\r
+ jCheckBoxFixedAtBuild.setPreferredSize(new java.awt.Dimension(21,20));\r
+ jCheckBoxFixedAtBuild.addItemListener(new java.awt.event.ItemListener() {\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jCheckBoxFixedAtBuild.isSelected()) {\r
+ jCheckBoxFeatureFlag.setSelected(false);\r
+ }\r
+ }\r
+ });\r
}\r
- return jCheckBox1;\r
+ return jCheckBoxFixedAtBuild;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox2() {\r
- if (jCheckBox2 == null) {\r
- jCheckBox2 = new JCheckBox();\r
- jCheckBox2.setBounds(new java.awt.Rectangle(156,133,154,20));\r
- jCheckBox2.setText("Patchable in Module");\r
- jCheckBox2.setPreferredSize(new java.awt.Dimension(21,20));\r
+ private JCheckBox getJCheckBoxPatchInMod() {\r
+ if (jCheckBoxPatchInMod == null) {\r
+ jCheckBoxPatchInMod = new JCheckBox();\r
+ jCheckBoxPatchInMod.setBounds(new java.awt.Rectangle(156,133,154,20));\r
+ jCheckBoxPatchInMod.setText("Patchable in Module");\r
+ jCheckBoxPatchInMod.setPreferredSize(new java.awt.Dimension(21,20));\r
+ jCheckBoxPatchInMod.addItemListener(new java.awt.event.ItemListener() {\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jCheckBoxPatchInMod.isSelected()) {\r
+ jCheckBoxFeatureFlag.setSelected(false);\r
+ }\r
+ }\r
+ });\r
}\r
- return jCheckBox2;\r
+ return jCheckBoxPatchInMod;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox3() {\r
- if (jCheckBox3 == null) {\r
- jCheckBox3 = new JCheckBox();\r
- jCheckBox3.setBounds(new java.awt.Rectangle(278,161,80,20));\r
- jCheckBox3.setText("Dynamic");\r
- jCheckBox3.setPreferredSize(new java.awt.Dimension(21,20));\r
+ private JCheckBox getJCheckBoxDyn() {\r
+ if (jCheckBoxDyn == null) {\r
+ jCheckBoxDyn = new JCheckBox();\r
+ jCheckBoxDyn.setBounds(new java.awt.Rectangle(278,161,80,20));\r
+ jCheckBoxDyn.setText("Dynamic");\r
+ jCheckBoxDyn.setPreferredSize(new java.awt.Dimension(21,20));\r
+ jCheckBoxDyn.addItemListener(new java.awt.event.ItemListener() {\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jCheckBoxDyn.isSelected()) {\r
+ jCheckBoxFeatureFlag.setSelected(false);\r
+ }\r
+ }\r
+ });\r
}\r
- return jCheckBox3;\r
+ return jCheckBoxDyn;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox4() {\r
- if (jCheckBox4 == null) {\r
- jCheckBox4 = new JCheckBox();\r
- jCheckBox4.setBounds(new java.awt.Rectangle(371,161,99,20));\r
- jCheckBox4.setText("DynamicEx");\r
- jCheckBox4.setPreferredSize(new java.awt.Dimension(21,20));\r
+ private JCheckBox getJCheckBoxDynEx() {\r
+ if (jCheckBoxDynEx == null) {\r
+ jCheckBoxDynEx = new JCheckBox();\r
+ jCheckBoxDynEx.setBounds(new java.awt.Rectangle(371,161,99,20));\r
+ jCheckBoxDynEx.setText("DynamicEx");\r
+ jCheckBoxDynEx.setPreferredSize(new java.awt.Dimension(21,20));\r
+ jCheckBoxDynEx.addItemListener(new java.awt.event.ItemListener() {\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jCheckBoxDynEx.isSelected()) {\r
+ jCheckBoxFeatureFlag.setSelected(false);\r
+ }\r
+ }\r
+ });\r
}\r
- return jCheckBox4;\r
+ return jCheckBoxDynEx;\r
}\r
\r
private String getValidUsage(boolean ff, boolean fab, boolean pim, boolean d, boolean de) {\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 tokenCNameExisted(String token, String cName) {\r
+ Integer inputToken = Integer.decode(token);\r
+ \r
+ for (int i = 0; i < jTable.getRowCount(); ++i) {\r
+ if (jTable.getValueAt(i, 0).equals(cName)) {\r
+ JOptionPane.showMessageDialog(frame, "C_Name already existed in table.");\r
+ return true;\r
+ }\r
+ if (jTable.getValueAt(i, 1).equals(token)) {\r
+ JOptionPane.showMessageDialog(frame, "Token already existed in table.");\r
+ return true;\r
+ }\r
+ Integer tokenValue = Integer.decode(jTable.getValueAt(i, 1)+"");\r
+ if (tokenValue.equals(inputToken)) {\r
+ JOptionPane.showMessageDialog(frame, "Same token value already existed in table.");\r
+ return true;\r
+ }\r
+ \r
+ }\r
+ return false;\r
+ }\r
+ \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(), Integer.MIN_VALUE, Integer.MAX_VALUE)) {\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
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane1() {\r
- if (jScrollPane1 == null) {\r
- jScrollPane1 = new JScrollPane();\r
- jScrollPane1.setBounds(new java.awt.Rectangle(242,213,188,54));\r
- jScrollPane1.setViewportView(getICheckBoxList());\r
- jScrollPane1.setPreferredSize(new Dimension(188, 74));\r
+ private JScrollPane getJScrollPaneArch() {\r
+ if (jScrollPaneArch == null) {\r
+ jScrollPaneArch = new JScrollPane();\r
+ jScrollPaneArch.setBounds(new java.awt.Rectangle(242,213,188,54));\r
+ jScrollPaneArch.setViewportView(getICheckBoxListArch());\r
+ jScrollPaneArch.setPreferredSize(new Dimension(188, 74));\r
}\r
- return jScrollPane1;\r
+ return jScrollPaneArch;\r
}\r
\r
/**\r
* \r
* @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
*/\r
- private ICheckBoxList getICheckBoxList() {\r
- if (iCheckBoxList == null) {\r
- iCheckBoxList = new ICheckBoxList();\r
- iCheckBoxList.setBounds(new Rectangle(197, 142, 188, 74));\r
+ private ICheckBoxList getICheckBoxListArch() {\r
+ if (iCheckBoxListArch == null) {\r
+ iCheckBoxListArch = new ICheckBoxList();\r
+ iCheckBoxListArch.setBounds(new 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
- iCheckBoxList.setAllItems(v);\r
+ v.add("ARM");\r
+ v.add("PPC");\r
+ iCheckBoxListArch.setAllItems(v);\r
}\r
- return iCheckBoxList;\r
+ return iCheckBoxListArch;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane2() {\r
- if (jScrollPane2 == null) {\r
- jScrollPane2 = new JScrollPane();\r
- jScrollPane2.setBounds(new java.awt.Rectangle(15,213,199,55));\r
- jScrollPane2.setViewportView(getICheckBoxList1());\r
- jScrollPane2.setPreferredSize(new Dimension(170, 74));\r
+ private JScrollPane getJScrollPaneMod() {\r
+ if (jScrollPaneMod == null) {\r
+ jScrollPaneMod = new JScrollPane();\r
+ jScrollPaneMod.setBounds(new java.awt.Rectangle(15,213,199,55));\r
+ jScrollPaneMod.setViewportView(getICheckBoxListMod());\r
+ jScrollPaneMod.setPreferredSize(new Dimension(170, 74));\r
}\r
- return jScrollPane2;\r
+ return jScrollPaneMod;\r
}\r
\r
/**\r
* \r
* @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
*/\r
- private ICheckBoxList getICheckBoxList1() {\r
- if (iCheckBoxList1 == null) {\r
- iCheckBoxList1 = new ICheckBoxList();\r
- iCheckBoxList1.setBounds(new Rectangle(14, 142, 170, 74));\r
+ private ICheckBoxList getICheckBoxListMod() {\r
+ if (iCheckBoxListMod == null) {\r
+ iCheckBoxListMod = new ICheckBoxList();\r
+ iCheckBoxListMod.setBounds(new Rectangle(14, 142, 170, 74));\r
Vector<String> v = new Vector<String>();\r
v.add("BASE");\r
v.add("SEC");\r
v.add("UEFI_DRIVER");\r
v.add("UEFI_APPLICATION");\r
v.add("USER_DEFINED");\r
- iCheckBoxList1.setAllItems(v);\r
+ iCheckBoxListMod.setAllItems(v);\r
}\r
- return iCheckBoxList1;\r
+ return iCheckBoxListMod;\r
}\r
\r
protected String vectorToString(Vector<String> v) {\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
+ private boolean compareTwoVectors(Vector v1, Vector v2) {\r
+ if (v1.size() != v2.size()) {\r
+ return false;\r
+ }\r
+ for (int i = 0; i < v1.size(); ++i) {\r
+ if (!v2.contains(v1.get(i))) {\r
+ return false;\r
+ }\r
+ }\r
+ return true;\r
+ }\r
} // @jve:decl-index=0:visual-constraint="22,11"\r
\r
class CheckboxTableModel extends DefaultTableModel {\r