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
\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 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
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 Arch");\r
+ jLabelSupArch.setEnabled(true);\r
+ jLabelSupMod = new JLabel();\r
+ jLabelSupMod.setBounds(new java.awt.Rectangle(15,193,103,16));\r
+ jLabelSupMod.setText("Supported Module");\r
+ jLabelSupMod.setEnabled(true);\r
starLabel = new StarLabel();\r
starLabel.setBounds(new java.awt.Rectangle(2,134,10,20));\r
jLabelDefVal = new JLabel();\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(getJButtonClearAll(), 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
\r
if (arg0.getSource() == jButtonAdd) {\r
//ToDo: check before add\r
- boolean[] b = {jCheckBox.isSelected(), jCheckBox1.isSelected(), jCheckBox2.isSelected(), jCheckBox3.isSelected(), jCheckBox4.isSelected()};\r
+ boolean[] b = {jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected()};\r
if (!checkValidUsage(b)) {\r
return;\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
+ jTextFieldDefaultValue.getText(), jTextFieldHelp.getText(),\r
+ jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(),\r
+ jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
archList, modTypeList};\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
+ 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
* \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
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.jTextFieldTsGuid, 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.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
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
* @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
}\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
}\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
}\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
}\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
}\r
- return jCheckBox4;\r
+ return jCheckBoxDynEx;\r
}\r
\r
private String getValidUsage(boolean ff, boolean fab, boolean pim, boolean d, boolean de) {\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("EBC");\r
v.add("ARM");\r
v.add("PPC");\r
- iCheckBoxList.setAllItems(v);\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