import javax.swing.table.TableModel;\r
\r
import org.apache.xmlbeans.XmlObject;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
import org.tianocore.frameworkwizard.platform.ui.global.GlobalData;\r
import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery;\r
import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification;\r
private HashMap<String, ArrayList<String>> classConsumed = null;\r
private JPanel jPanel8 = null;\r
private JLabel jLabel6 = null;\r
- private JTextField jTextField = null;\r
+ private JTextField jTextFieldFvBinding = null;\r
private JLabel jLabel7 = null;\r
- private JTextField jTextField1 = null;\r
+ private JTextField jTextFieldFileGuid = null;\r
private JLabel jLabel8 = null;\r
- private JTextField jTextField2 = null;\r
+ private JTextField jTextFieldFfsKey = null;\r
private JScrollPane jScrollPane6 = null;\r
private JTable jTable4 = null;\r
private JButton jButton4 = null;\r
private JTextField jTextField4 = null;\r
private JButton jButton6 = null;\r
private JComboBox jComboBox1 = null;\r
+ private OpeningPlatformType docConsole = null;\r
+ private JLabel jLabel12 = null;\r
/**\r
* This is the default constructor\r
*/\r
this.ffc = ffc;\r
}\r
\r
- public void setKey(String k){\r
+ public void setKey(String k, int i, OpeningPlatformType dc){\r
this.moduleKey = k;\r
+ this.docConsole = dc;\r
jTabbedPane.setSelectedIndex(0);\r
+ initPcdBuildDefinition(i);\r
}\r
\r
/**\r
init will be called each time FpdModuleSA object is to be shown.\r
@param key Module information.\r
**/\r
- public void initPcdBuildDefinition(String key) {\r
+ public void initPcdBuildDefinition(int i) {\r
//\r
// display pcd for key.\r
//\r
model.setRowCount(0);\r
- int pcdCount = ffc.getPcdDataCount(key);\r
+ int pcdCount = ffc.getPcdDataCount(i);\r
if (pcdCount != 0) {\r
String[][] saa = new String[pcdCount][7];\r
- ffc.getPcdData(key, saa);\r
- for (int i = 0; i < saa.length; ++i) {\r
- model.addRow(saa[i]);\r
+ ffc.getPcdData(i, saa);\r
+ for (int j = 0; j < saa.length; ++j) {\r
+ model.addRow(saa[j]);\r
}\r
}\r
}\r
//\r
// display library classes that need to be resolved. also potential instances for them.\r
//\r
- resolveLibraryInstances(key);\r
+ resolveLibraryInstances(moduleKey);\r
//\r
// display lib instances already selected for key\r
//\r
//\r
String fvBinding = ffc.getFvBinding(key);\r
if (fvBinding != null) {\r
- jTextField.setText(fvBinding);\r
+ jTextFieldFvBinding.setText(fvBinding);\r
}\r
String fileGuid = ffc.getFfsFileNameGuid(key);\r
if (fileGuid != null) {\r
- jTextField1.setText(fileGuid);\r
+ jTextFieldFileGuid.setText(fileGuid);\r
}\r
String ffsKey = ffc.getFfsFormatKey(key);\r
if (ffsKey != null) {\r
- jTextField2.setText(ffsKey);\r
+ jTextFieldFfsKey.setText(ffsKey);\r
+ }\r
+ \r
+ optionsTableModel.setRowCount(0);\r
+ String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6];\r
+ ffc.getModuleSAOptions(key, saa);\r
+ for (int i = 0; i < saa.length; ++i) {\r
+ optionsTableModel.addRow(saa[i]);\r
}\r
}\r
\r
\r
private ModuleIdentification getModuleId(String key){\r
//\r
- // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion into string array.\r
+ // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array.\r
//\r
String[] keyPart = key.split(" ");\r
Set<PackageIdentification> spi = GlobalData.getPackageList();\r
\r
while(ispi.hasNext()) {\r
PackageIdentification pi = (PackageIdentification)ispi.next();\r
- if ( !pi.getGuid().equals(keyPart[2])){\r
-// || !pi.getVersion().equals(keyPart[3])){\r
+ if ( !pi.getGuid().equals(keyPart[2])){ \r
+\r
continue;\r
}\r
+ if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){\r
+ if(!pi.getVersion().equals(keyPart[3])){\r
+ continue;\r
+ }\r
+ }\r
Set<ModuleIdentification> smi = GlobalData.getModules(pi);\r
Iterator ismi = smi.iterator();\r
while(ismi.hasNext()) {\r
ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
if (mi.getGuid().equals(keyPart[0])){\r
-// && mi.getVersion().equals(keyPart[1])){\r
+ if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){\r
+ if(!mi.getVersion().equals(keyPart[1])){\r
+ continue;\r
+ }\r
+ }\r
+\r
return mi;\r
}\r
}\r
jPanel.add(getJPanel2(), java.awt.BorderLayout.SOUTH);\r
jPanel.addComponentListener(new java.awt.event.ComponentAdapter() {\r
public void componentShown(java.awt.event.ComponentEvent e) {\r
- initPcdBuildDefinition(moduleKey);\r
+// initPcdBuildDefinition(moduleKey);\r
}\r
});\r
\r
private JPanel getJPanel4() {\r
if (jPanel4 == null) {\r
jLabel1 = new JLabel();\r
- jLabel1.setText("Library Classes Consumed");\r
+ jLabel1.setText("Library Classes Uninstantiated");\r
jPanel4 = new JPanel();\r
jPanel4.add(jLabel1, null);\r
jPanel4.add(getJScrollPane3(), null);\r
private JScrollPane getJScrollPane4() {\r
if (jScrollPane4 == null) {\r
jScrollPane4 = new JScrollPane();\r
- jScrollPane4.setPreferredSize(new java.awt.Dimension(450,170));\r
+ jScrollPane4.setPreferredSize(new java.awt.Dimension(430,170));\r
jScrollPane4.setViewportView(getJTable3());\r
}\r
return jScrollPane4;\r
if (row < 0) {\r
return;\r
}\r
+ docConsole.setSaved(false);\r
Object[] s = {model3.getValueAt(row, 0), model3.getValueAt(row, 1),\r
model3.getValueAt(row, 2), model3.getValueAt(row, 3),\r
model3.getValueAt(row, 4)};\r
model3.getValueAt(row, 2) + " " +\r
model3.getValueAt(row, 3) + " " +\r
model3.getValueAt(row, 4);\r
- ffc.genLibraryInstance(model3.getValueAt(row, 1)+"", model3.getValueAt(row, 2)+"", model3.getValueAt(row, 3)+"", model3.getValueAt(row, 4)+"", moduleKey);\r
+ ModuleIdentification libMi = getModuleId(instanceValue);\r
+ ffc.genLibraryInstance(libMi, moduleKey);\r
//\r
// Add pcd information of selected instance to current moduleSA\r
//\r
try{\r
- ffc.addFrameworkModulesPcdBuildDefs(getModuleId(instanceValue), ffc.getModuleSA(moduleKey));\r
+ ffc.addFrameworkModulesPcdBuildDefs(libMi, null, ffc.getModuleSA(moduleKey));\r
}\r
catch (Exception exception) {\r
JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());\r
if (row < 0) {\r
return;\r
}\r
+ docConsole.setSaved(false);\r
removeInstance(model1.getValueAt(row, 1) + " " + \r
model1.getValueAt(row, 2) + " " +\r
model1.getValueAt(row, 3) + " " +\r
public void actionPerformed(ActionEvent arg0) {\r
\r
if (arg0.getSource() == jButton2) {\r
-// ffc.removeLibraryInstances(moduleKey);\r
-// for (int i = 0; i < model1.getRowCount(); ++i) {\r
-// String mg = model1.getValueAt(i, 1)+"";\r
-// String mv = model1.getValueAt(i, 2)+"";\r
-// String pg = model1.getValueAt(i, 3)+"";\r
-// String pv = model1.getValueAt(i, 4)+"";\r
-// ffc.genLibraryInstance(mg, mv, pg, pv, moduleKey);\r
-// }\r
+ if (jTable4.isEditing()) {\r
+ jTable4.getCellEditor().stopCellEditing();\r
+ }\r
this.setVisible(false);\r
}\r
}\r
*/\r
private JPanel getJPanel8() {\r
if (jPanel8 == null) {\r
+ jLabel12 = new JLabel();\r
+ jLabel12.setText("");\r
+ jLabel12.setPreferredSize(new java.awt.Dimension(250,16));\r
+ FlowLayout flowLayout4 = new FlowLayout();\r
+ flowLayout4.setAlignment(java.awt.FlowLayout.LEFT);\r
jLabel8 = new JLabel();\r
jLabel8.setText("FFS Format Key");\r
+ jLabel8.setPreferredSize(new java.awt.Dimension(90,16));\r
jLabel7 = new JLabel();\r
jLabel7.setText("FFS File GUID");\r
+ jLabel7.setPreferredSize(new java.awt.Dimension(90,16));\r
jLabel6 = new JLabel();\r
jLabel6.setText("FV Binding");\r
+ jLabel6.setPreferredSize(new java.awt.Dimension(90,16));\r
jPanel8 = new JPanel();\r
+ jPanel8.setLayout(flowLayout4);\r
jPanel8.add(jLabel6, null);\r
- jPanel8.add(getJTextField(), null);\r
+ jPanel8.add(getJTextFieldFvBinding(), null);\r
jPanel8.add(jLabel7, null);\r
- jPanel8.add(getJTextField1(), null);\r
+ jPanel8.add(getJTextFieldFileGuid(), null);\r
jPanel8.add(jLabel8, null);\r
- jPanel8.add(getJTextField2(), null);\r
+ jPanel8.add(getJTextFieldFfsKey(), null);\r
jPanel8.add(getJScrollPane6(), null);\r
+ jPanel8.add(jLabel12, null);\r
jPanel8.add(getJButton4(), null);\r
jPanel8.add(getJButton5(), null);\r
jPanel8.addComponentListener(new java.awt.event.ComponentAdapter() {\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField() {\r
- if (jTextField == null) {\r
- jTextField = new JTextField();\r
- jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
- jTextField.addFocusListener(new java.awt.event.FocusAdapter() {\r
+ private JTextField getJTextFieldFvBinding() {\r
+ if (jTextFieldFvBinding == null) {\r
+ jTextFieldFvBinding = new JTextField();\r
+ jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(150,20));\r
+ jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() {\r
public void focusLost(java.awt.event.FocusEvent e) {\r
- ffc.setFvBinding(moduleKey, jTextField.getText());\r
+ String originalFvBinding = ffc.getFvBinding(moduleKey);\r
+ String newFvBinding = jTextFieldFvBinding.getText();\r
+ if (newFvBinding.equals(originalFvBinding)) {\r
+ return;\r
+ }\r
+ if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
+ return;\r
+ }\r
+ docConsole.setSaved(false);\r
+ ffc.setFvBinding(moduleKey, newFvBinding);\r
}\r
});\r
+ \r
}\r
- return jTextField;\r
+ return jTextFieldFvBinding;\r
}\r
/**\r
* This method initializes jTextField1 \r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField1() {\r
- if (jTextField1 == null) {\r
- jTextField1 = new JTextField();\r
- jTextField1.setPreferredSize(new java.awt.Dimension(100,20));\r
- jTextField1.addFocusListener(new java.awt.event.FocusAdapter() {\r
+ private JTextField getJTextFieldFileGuid() {\r
+ if (jTextFieldFileGuid == null) {\r
+ jTextFieldFileGuid = new JTextField();\r
+ jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20));\r
+ jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() {\r
public void focusLost(java.awt.event.FocusEvent e) {\r
- ffc.setFfsFileNameGuid(moduleKey, jTextField1.getText());\r
+ String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey);\r
+ String newFileGuid = jTextFieldFileGuid.getText();\r
+ if (newFileGuid.equals(originalFileGuid)) {\r
+ return;\r
+ }\r
+ if (newFileGuid.length() == 0 && originalFileGuid == null) {\r
+ return;\r
+ }\r
+ if (newFileGuid.length() > 0) {\r
+ if (!DataValidation.isGuid(newFileGuid)) {\r
+ JOptionPane.showMessageDialog(frame, "FFS File Guid is NOT GUID Type.");\r
+ return;\r
+ }\r
+ }\r
+ \r
+ docConsole.setSaved(false);\r
+ if (newFileGuid.length() == 0) {\r
+ newFileGuid = null;\r
+ }\r
+ ffc.setFfsFileNameGuid(moduleKey, newFileGuid);\r
}\r
});\r
+ \r
}\r
- return jTextField1;\r
+ return jTextFieldFileGuid;\r
}\r
/**\r
- * This method initializes jTextField2 \r
+ * This method initializes jTextFieldFfsKey \r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField2() {\r
- if (jTextField2 == null) {\r
- jTextField2 = new JTextField();\r
- jTextField2.setPreferredSize(new java.awt.Dimension(100,20));\r
- jTextField2.addFocusListener(new java.awt.event.FocusAdapter() {\r
+ private JTextField getJTextFieldFfsKey() {\r
+ if (jTextFieldFfsKey == null) {\r
+ jTextFieldFfsKey = new JTextField();\r
+ jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(150,20));\r
+ jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
public void focusLost(java.awt.event.FocusEvent e) {\r
- ffc.setFfsFormatKey(moduleKey, jTextField2.getText());\r
+ String originalFfsKey = ffc.getFfsFormatKey(moduleKey);\r
+ String newFfsKey = jTextFieldFfsKey.getText();\r
+ if (newFfsKey.equals(originalFfsKey)) {\r
+ return;\r
+ }\r
+ if (newFfsKey.length() == 0 && originalFfsKey == null) {\r
+ return;\r
+ }\r
+ docConsole.setSaved(false);\r
+ ffc.setFfsFormatKey(moduleKey, newFfsKey);\r
}\r
});\r
+ \r
}\r
- return jTextField2;\r
+ return jTextFieldFfsKey;\r
}\r
/**\r
* This method initializes jScrollPane6 \r
}\r
\r
String contents = m.getValueAt(row, 5) + "";\r
- \r
+ docConsole.setSaved(false);\r
ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents);\r
}\r
}\r
jButton4.setText("New");\r
jButton4.addActionListener(new java.awt.event.ActionListener() {\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- String[] row = {"", "", "", "", "IA32", ""};\r
+ String[] row = {"", "", "", "", "", ""};\r
optionsTableModel.addRow(row);\r
Vector<Object> v = new Vector<Object>();\r
- Vector<Object> v1 = new Vector<Object>();\r
- v1.add("IA32");\r
+ Vector<Object> v1 = null;\r
+ docConsole.setSaved(false);\r
ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");\r
}\r
});\r
if (jTable4.getSelectedRow() < 0) {\r
return;\r
}\r
- \r
+ docConsole.setSaved(false);\r
ffc.removeModuleSAOptionsOpt(moduleKey, jTable4.getSelectedRow());\r
optionsTableModel.removeRow(jTable4.getSelectedRow());\r
}\r
ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
for (int i = 0; i < al.size(); ++i) {\r
String[] s = al.get(i).split(" ");\r
- String mKey = s[0] + s[1] + s[2] + s[3];\r
+ String mKey = s[0] + " " + s[1]+ " " + s[2] + " " + s[3];\r
ffc.updatePcdData(mKey, cName, tsGuid, jComboBox.getSelectedItem()+"", jTextField3.getText(), jTextField4.isVisible() ? jTextField4.getText() : jComboBox1.getSelectedItem()+"");\r
s[4] = jComboBox.getSelectedItem()+"";\r
al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);\r
if (row < 0) {\r
return;\r
}\r
+ docConsole.setSaved(false);\r
model.setValueAt(jComboBox.getSelectedItem(), row, 2);\r
model.setValueAt(jTextField3.getText(), row, 4);\r
model.setValueAt(jTextField4.isVisible()? jTextField4.getText():jComboBox1.getSelectedItem(), row, 6);\r