import org.tianocore.PackageSurfaceAreaDocument;\r
\r
import org.tianocore.frameworkwizard.common.DataValidation;\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
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
**/\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
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
\r
public void actionPerformed(ActionEvent arg0) {\r
\r
+ docConsole.setSaved(false);\r
if (arg0.getSource() == jButtonOk) {\r
this.save();\r
this.dispose();\r
return;\r
}\r
model.addRow(row);\r
- \r
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
String usage = getValidUsage(jCheckBox.isSelected(), jCheckBox1.isSelected(), jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected());\r
if (usage.length() == 0) {\r
usage = null;\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
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
- if (usage.length() == 0) {\r
- JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
- return;\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
private JCheckBox getJCheckBox1() {\r
if (jCheckBox1 == null) {\r
jCheckBox1 = new JCheckBox();\r
- jCheckBox1.setBounds(new java.awt.Rectangle(302,133,108,20));\r
+ jCheckBox1.setBounds(new java.awt.Rectangle(312,133,108,20));\r
jCheckBox1.setText("Fixed at Build");\r
jCheckBox1.setPreferredSize(new java.awt.Dimension(21,20));\r
}\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