\r
private JLabel jLabelTokenSpace = null;\r
\r
- private JTextField jTextFieldTsGuid = null;\r
+ private JComboBox jComboBoxTsGuid = null;\r
\r
private JLabel jLabelVarVal = null;\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
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(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
- docConsole.setSaved(false);\r
+ \r
if (arg0.getSource() == jButtonOk) {\r
this.save();\r
this.dispose();\r
\r
if (arg0.getSource() == jButtonAdd) {\r
//ToDo: check before add\r
+ \r
boolean[] b = {jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected()};\r
if (!checkValidUsage(b)) {\r
return;\r
modTypeList = null;\r
}\r
Object[] row = {jTextFieldC_Name.getText(), jTextFieldToken.getText(),\r
- jTextFieldTsGuid.getText(), jComboBoxDataType.getSelectedItem(), \r
+ jComboBoxTsGuid.getSelectedItem(), jComboBoxDataType.getSelectedItem(), \r
jTextFieldDefaultValue.getText(), jTextFieldHelp.getText(),\r
jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(),\r
jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
if (!dataValidation(row)) {\r
return;\r
}\r
+ \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
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
}\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.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
+ 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
Tools.resizeComponentWidth(this.jTextFieldC_Name, this.getWidth(), intPreferredWidth);\r
Tools.resizeComponentWidth(this.jTextFieldToken, this.getWidth(), intPreferredWidth);\r
- Tools.resizeComponentWidth(this.jTextFieldTsGuid, 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
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 jCheckBoxFeatureFlag;\r
}\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 jCheckBoxFixedAtBuild;\r
}\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 jCheckBoxPatchInMod;\r
}\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 jCheckBoxDyn;\r
}\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 jCheckBoxDynEx;\r
}\r
return usage.trim();\r
}\r
\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