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
+ \r
\r
String archList = null;\r
if (m.getValueAt(row, 11) != null){\r
if (m.getValueAt(row, 12) != null) {\r
modTypeList = m.getValueAt(row, 12).toString(); \r
}\r
- if (usage.length() == 0) {\r
- JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
- return;\r
- }\r
+ \r
Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
if (!dataValidation(o)){\r
return;\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