libClass[i][1] = lc.getIncludeHeader();\r
libClass[i][2] = lc.getHelpText();\r
// LAH added logic so you cannot set the version unless the GUID is defined.\r
-/* LAH do not set now\r
- if (lc.getRecommendedInstanceGuid() != null) {\r
+\r
+// if (lc.getRecommendedInstanceGuid() != null) {\r
libClass[i][3] = lc.getRecommendedInstanceGuid();\r
- if (lc.getRecommendedInstanceVersion() != null) {\r
+// if (lc.getRecommendedInstanceVersion() != null) {\r
libClass[i][4] = lc.getRecommendedInstanceVersion();\r
- }\r
- }\r
-*/\r
+// }\r
+// }\r
+\r
if (lc.getSupArchList() != null) {\r
libClass[i][5] = listToString(lc.getSupArchList());\r
}\r
incHdrAttribPath, incHdrAttribClass, incHdrAttribVer, incHdrAttribOverrideID,\r
incHdrAttribModuleType, spdLibClassDeclarations);\r
}\r
+ \r
+ public void getSpdLibClassDeclaration(String[] sa, int i) {\r
+ if (getSpdLibClassDeclarations() == null) {\r
+ return;\r
+ }\r
+ XmlCursor cursor = getSpdLibClassDeclarations().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass)cursor.getObject();\r
+ sa[0] = lc.getName();\r
+ sa[1] = lc.getIncludeHeader();\r
+ sa[2] = lc.getHelpText();\r
+ sa[3] = lc.getRecommendedInstanceGuid();\r
+ sa[4] = lc.getRecommendedInstanceVersion();\r
+ sa[5] = listToString(lc.getSupArchList());\r
+ sa[6] = listToString(lc.getSupModuleList());\r
+ }\r
+ cursor.dispose();\r
+ }\r
\r
/**\r
Set library class declaration contents under parent tag\r
setSpdMsaFile(msaFileName, moduleName, ver, guid, spdMsaFiles);\r
\r
}\r
+ \r
+ public void getSpdMsaFile (String[] sa, int i) {\r
+ if (getSpdMsaFiles() == null) {\r
+ return;\r
+ }\r
+ XmlCursor cursor = getSpdMsaFiles().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ sa[0] = cursor.getTextValue();\r
+ }\r
+ cursor.dispose();\r
+ }\r
\r
/**\r
Set MsaFile contents under parent element.\r
setSpdIncludeHeader(ModHdrModType, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass,\r
hdrAttribVer, hdrAttribOverID, spdModHdrs);\r
}\r
+ \r
+ public void getSpdModuleHeader(String[] sa, int i) {\r
+ if (getSpdModHdrs() == null) {\r
+ return;\r
+ }\r
+ XmlCursor cursor = getSpdModHdrs().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader)cursor.getObject();\r
+ sa[0] = ih.getModuleType()+"";\r
+ sa[1] = ih.getStringValue();\r
+ }\r
+ cursor.dispose();\r
+ }\r
\r
/**\r
Generate GUID declaration element using parameters passed in.\r
\r
setSpdEntry(ppiDeclEntryName, ppiDeclCName, ppiDeclGuid, ppiDeclFeatureFlag, archList, modTypeList, guidTypeList, spdPpiDeclarations);\r
}\r
+ \r
+ public void getSpdGuidDeclaration(String[] sa, int i) {\r
+ if (getSpdGuidDeclarations() == null) {\r
+ return;\r
+ }\r
+ getSpdEntry(sa, i, getSpdGuidDeclarations());\r
+ }\r
+ \r
+ public void getSpdProtocolDeclaration(String[] sa, int i) {\r
+ if (getSpdProtocolDeclarations() == null) {\r
+ return;\r
+ }\r
+ getSpdEntry(sa, i, getSpdProtocolDeclarations());\r
+ }\r
+ \r
+ public void getSpdPpiDeclaration(String[] sa, int i) {\r
+ if (getSpdPpiDeclarations() == null) {\r
+ return;\r
+ }\r
+ getSpdEntry(sa, i, getSpdPpiDeclarations());\r
+ }\r
\r
+ public void getSpdEntry(String[] sa, int i, XmlObject parent) {\r
+ XmlCursor cursor = parent.newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {\r
+ GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry)cursor.getObject();\r
+ sa[0] = e.getName();\r
+ sa[1] = e.getCName();\r
+ sa[2] = e.getGuidValue();\r
+ sa[3] = e.getHelpText();\r
+ sa[4] = listToString(e.getSupArchList());\r
+ sa[5] = listToString(e.getSupModuleList());\r
+ sa[6] = listToString(e.getGuidTypeList());\r
+ }\r
+ \r
+ if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
+ ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry)cursor.getObject();\r
+ sa[0] = e.getName();\r
+ sa[1] = e.getCName();\r
+ sa[2] = e.getGuidValue();\r
+ sa[3] = e.getHelpText();\r
+ sa[4] = listToString(e.getSupArchList());\r
+ sa[5] = listToString(e.getSupModuleList());\r
+ sa[6] = listToString(e.getGuidTypeList());\r
+ }\r
+ \r
+ if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
+ PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry)cursor.getObject();\r
+ sa[0] = e.getName();\r
+ sa[1] = e.getCName();\r
+ sa[2] = e.getGuidValue();\r
+ sa[3] = e.getHelpText();\r
+ sa[4] = listToString(e.getSupArchList());\r
+ sa[5] = listToString(e.getSupModuleList());\r
+ sa[6] = listToString(e.getGuidTypeList());\r
+ }\r
+ \r
+ }\r
+ cursor.dispose();\r
+ }\r
/**\r
Set Entry contents using parameters passed in\r
\r
setSpdPcdEntry(pcdItemTypes, cName, token, dataType, spaceGuid, help,\r
defaultString, archList, modTypeList, spdPcdDefinitions);\r
}\r
+ \r
+ public void getSpdPcdDeclaration(String[] sa, int i) {\r
+ if (getSpdPcdDefinitions() == null) {\r
+ return;\r
+ }\r
+ \r
+ XmlCursor cursor = getSpdPcdDefinitions().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ PcdDeclarationsDocument.PcdDeclarations.PcdEntry pe = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)cursor.getObject();\r
+ sa[0] = pe.getCName();\r
+ sa[1] = pe.getToken()+"";\r
+ sa[2] = pe.getTokenSpaceGuidCName();\r
+ sa[3] = pe.getDatumType()+"";\r
+ sa[4] = pe.getDefaultValue();\r
+ sa[5] = pe.getHelpText();\r
+ sa[6] = listToString(pe.getValidUsage());\r
+ sa[7] = listToString(pe.getSupArchList());\r
+ sa[8] = listToString(pe.getSupModuleList());\r
+ }\r
+ cursor.dispose();\r
+ }\r
\r
/**\r
Set Pcd entry contents under parent tag\r
\r
private JLabel jLabel3 = null;\r
\r
-\r
+ protected String[][] saa = null;\r
\r
/**\r
This method initializes this\r
}\r
else{\r
selectedRow = lsm.getMinSelectionIndex();\r
+ \r
}\r
}\r
});\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
\r
- updateRow(row, m);\r
+ updateRow(row, column, m);\r
}\r
}\r
\r
- protected void updateRow(int row, TableModel m){\r
+ protected void updateRow(int row, int column, TableModel m){\r
+ String[] sa = new String[7];\r
+ sfc.getSpdGuidDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\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
String name = m.getValueAt(row, 0) + "";\r
String cName = m.getValueAt(row, 1) + "";\r
String guid = m.getValueAt(row, 2) + "";\r
//\r
// initialize table using SpdFileContents object\r
//\r
- String[][] saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
+ saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
sfc.getSpdGuidDeclarations(saa);\r
int i = 0;\r
while (i < saa.length) {\r
\r
import org.tianocore.PackageSurfaceAreaDocument;\r
import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");\r
return;\r
}\r
+ if (jTextFieldBaseName.getText().equals(sfc.getSpdHdrPkgName())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrPkgName(jTextFieldBaseName.getText());\r
}\r
JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");\r
return;\r
}\r
+ if (jTextFieldGuid.getText().equals(sfc.getSpdHdrGuidValue())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());\r
}\r
JOptionPane.showMessageDialog(frame, "Version is NOT version type.");\r
return;\r
}\r
+ if (jTextFieldVersion.getText().equals(sfc.getSpdHdrVer())){\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrVer(jTextFieldVersion.getText());\r
} \r
if (jTextAreaLicense == null) {\r
jTextAreaLicense = new JTextArea();\r
jTextAreaLicense.setText("");\r
-// jTextAreaLicense.setPreferredSize(new java.awt.Dimension(317,77));\r
jTextAreaLicense.setLineWrap(true);\r
jTextAreaLicense.addFocusListener(new FocusAdapter(){\r
public void focusLost(FocusEvent e){\r
JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");\r
return;\r
}\r
+ if (jTextAreaLicense.getText().equals(sfc.getSpdHdrLicense())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrLicense(jTextAreaLicense.getText());\r
}\r
if (jTextAreaDescription == null) {\r
jTextAreaDescription = new JTextArea();\r
jTextAreaDescription.setLineWrap(true);\r
-// jTextAreaDescription.setPreferredSize(new java.awt.Dimension(317,77));\r
jTextAreaDescription.addFocusListener(new FocusAdapter(){\r
public void focusLost(FocusEvent e){\r
if (jTextAreaDescription.getText().length() == 0) {\r
JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");\r
return;\r
}\r
+ if (jTextAreaDescription.getText().equals(sfc.getSpdHdrDescription())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrDescription(jTextAreaDescription.getText());\r
}\r
JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
return;\r
}\r
+ if (jTextFieldAbstract.getText().equals(sfc.getSpdHdrAbs())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrAbs(jTextFieldAbstract.getText());\r
}\r
JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");\r
return;\r
}\r
+ if (jTextFieldCopyright.getText().equals(sfc.getSpdHdrCopyright())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
sfc.setSpdHdrCopyright(jTextFieldCopyright.getText());\r
} \r
jTextField.setPreferredSize(new java.awt.Dimension(320, 20));\r
jTextField.addFocusListener(new FocusAdapter(){\r
public void focusLost(FocusEvent e){\r
+ if (jTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
+ return;\r
+ }\r
+ if (jTextField.getText().equals(sfc.getSpdHdrUrl())) {\r
+ return;\r
+ }\r
sfc.setSpdHdrLicense(jTextAreaLicense.getText());\r
sfc.setSpdHdrUrl(jTextField.getText());\r
docConsole.setSaved(false);\r
*\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
- docConsole.setSaved(false);\r
- if (arg0.getSource() == jButtonOk) {\r
- this.save();\r
- this.setEdited(true);\r
- }\r
- if (arg0.getSource() == jButtonCancel) {\r
- this.setEdited(false);\r
- }\r
+ \r
if (arg0.getSource() == jButtonGenerateGuid) {\r
//ToDo: invoke GuidValueEditor\r
jTextFieldGuid.setText(Tools.generateUuidString());\r
+ docConsole.setSaved(false);\r
sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());\r
}\r
}\r
-\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean check() {\r
- //\r
- // Check if all required fields are not empty\r
- //\r
- if (isEmpty(this.jTextFieldBaseName.getText())) {\r
- Log.wrn("Update Spd Header", "Base Name couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldGuid.getText())) {\r
- Log.wrn("Update Spd Header", "Guid couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldVersion.getText())) {\r
- Log.wrn("Update Spd Header", "Version couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextAreaLicense.getText())) {\r
- Log.wrn("Update Spd Header", "License couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldCopyright.getText())) {\r
- Log.wrn("Update Spd Header", "Copyright couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextAreaDescription.getText())) {\r
- Log.wrn("Update Spd Header", "Description couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldAbstract.getText())) {\r
- Log.wrn("Update Spd Header", "Abstract couldn't be empty");\r
- return false;\r
- }\r
-\r
- //\r
- // Check if all fields have correct data types \r
- //\r
- if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
- Log.wrn("Update Spd Header", "Incorrect data type for Base Name");\r
- return false;\r
- }\r
- if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
- Log.wrn("Update Spd Header", "Incorrect data type for Guid");\r
- return false;\r
- }\r
- if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
- Log.wrn("Update Spd Header", "Incorrect data type for Abstract");\r
- return false;\r
- }\r
- if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
- Log.wrn("Update Spd Header", "Incorrect data type for Copyright");\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- Save all components of Spd Header\r
- if exists spdHeader, set the value directly\r
- if not exists spdHeader, new an instance first\r
- \r
- **/\r
- public void save() {\r
- try {\r
- \r
- } catch (Exception e) {\r
- Log.wrn("Save Package", e.getMessage());\r
- Log.err("Save Package", e.getMessage());\r
- }\r
- }\r
-\r
+ \r
/**\r
This method initializes Package type and Compontent type\r
\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
+ \r
String lib = m.getValueAt(row, cnClassName) + "";\r
String hdr = m.getValueAt(row, cnHdrFile) + "";\r
String hlp = m.getValueAt(row, cnHelpText) + "";\r
- String name = m.getValueAt(row, cnRecInstName) + "";\r
- String ver = m.getValueAt(row, cnRecInstVer) + "";\r
+ String name = null;\r
+ if (m.getValueAt(row, cnRecInstName) != null) {\r
+ name = m.getValueAt(row, cnRecInstName).toString();\r
+ } \r
+ String ver = null;\r
+ if (m.getValueAt(row, cnRecInstVer) != null){\r
+ ver = m.getValueAt(row, cnRecInstVer).toString();\r
+ }\r
String arch = null;\r
if (m.getValueAt(row, cnSupArch) != null) {\r
arch = m.getValueAt(row, cnSupArch).toString();\r
if (!dataValidation(rowData)) {\r
return;\r
}\r
- docConsole.setSaved(false);\r
\r
- getLibInstances(lib);\r
- String guid = nameToGuid(name);\r
+ String guid = null;\r
+ if (name != null && name.length() > 0) {\r
+ getLibInstances(lib);\r
+ guid = nameToGuid(name);\r
+ }\r
\r
+ String[] sa = new String[7];\r
+ sfc.getSpdLibClassDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\r
+ if (cellData == null) {\r
+ cellData = "";\r
+ }\r
+ if (column == cnRecInstName) {\r
+ if (guid == null) {\r
+ if (sa[cnRecInstName] == null) {\r
+ return;\r
+ }\r
+ }\r
+ else {\r
+ if (guid.equals(sa[cnRecInstName])) {\r
+ return;\r
+ }\r
+ }\r
+ }\r
+ else {\r
+ if (cellData.equals(sa[column])) {\r
+ return;\r
+ }\r
+ if (cellData.toString().length() == 0 && sa[column] == null) {\r
+ return;\r
+ }\r
+ }\r
+ docConsole.setSaved(false);\r
sfc.updateSpdLibClass(row, lib, hdr, hlp, guid, ver, arch, module);\r
}\r
}\r
if (!dataValidation(row)) {\r
return;\r
}\r
- model.addRow(row);\r
- jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
- docConsole.setSaved(false);\r
//\r
//convert to GUID before storing recommended lib instance.\r
//\r
String recommendGuid = nameToGuid(row[cnRecInstName]);\r
\r
sfc.genSpdLibClassDeclarations(row[cnClassName], recommendGuid, row[cnHdrFile], row[cnHelpText], row[cnSupArch], null, null, row[cnRecInstVer], null, row[cnSupMod]);\r
- \r
+ model.addRow(row);\r
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
+ docConsole.setSaved(false);\r
}\r
//\r
// remove selected line\r
JOptionPane.showMessageDialog(frame, "Help Text Must NOT be empty.");\r
return false;\r
}\r
- if (row[cnRecInstVer].length() > 0) {\r
+ if (row[cnRecInstVer] != null && row[cnRecInstVer].length() > 0) {\r
+ if (row[cnRecInstName] == null || row[cnRecInstName].length() == 0) {\r
+ JOptionPane.showMessageDialog(frame, "Recommended Instance Version must associate with Instance Name.");\r
+ return false;\r
+ }\r
+ \r
if (!DataValidation.isVersionDataType(row[cnRecInstVer])) {\r
JOptionPane.showMessageDialog(frame, "Recommended Instance Version is NOT VersionDataType.");\r
return false;\r
private String nameToGuid(String name) {\r
String s = null;\r
if (!libNameGuidMap.containsKey(name)) {\r
+ JOptionPane.showMessageDialog(frame, "Recommended Instance NOT exists.");\r
return s;\r
}\r
\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[1];\r
+ sfc.getSpdMsaFile(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\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
String file = m.getValueAt(row, 0) + "";\r
if (file.length() == 0) {\r
JOptionPane.showMessageDialog(this, "Msa File is NOT PathAndFilename type.");\r
jComboBoxReadOnly.setSelectedIndex(1);\r
jComboBoxReadOnly.addItemListener(new java.awt.event.ItemListener() {\r
public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jComboBoxReadOnly.getSelectedItem().equals(sfc.getSpdPkgDefsRdOnly())) {\r
+ return;\r
+ }\r
if (docConsole != null) {\r
- docConsole.setSaved(false);\r
+ docConsole.setSaved(false);\r
}\r
sfc.setSpdPkgDefsRdOnly(jComboBoxReadOnly.getSelectedItem()+"");\r
}\r
jComboBoxRePackage.setSelectedIndex(0);\r
jComboBoxRePackage.addItemListener(new java.awt.event.ItemListener() {\r
public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ if (jComboBoxRePackage.getSelectedItem().equals(sfc.getSpdPkgDefsRePkg())) {\r
+ return;\r
+ }\r
if (docConsole != null) {\r
docConsole.setSaved(false);\r
}\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[2];\r
+ sfc.getSpdModuleHeader(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\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
String pkg = m.getValueAt(row, 0) + "";\r
String hdr = m.getValueAt(row, 1) + "";\r
String[] rowData = {pkg, hdr};\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
+ \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
if (sfc.getSpdPpiDeclarationCount() == 0) {\r
return ;\r
}\r
- String[][] saa = new String[sfc.getSpdPpiDeclarationCount()][7];\r
+ saa = new String[sfc.getSpdPpiDeclarationCount()][7];\r
sfc.getSpdPpiDeclarations(saa);\r
int i = 0;\r
while (i < saa.length) {\r
}\r
}\r
\r
- protected void updateRow(int row, TableModel m){\r
+ protected void updateRow(int row, int column, TableModel m){\r
+ String[] sa = new String[7];\r
+ sfc.getSpdPpiDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\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
String name = m.getValueAt(row, 0) + "";\r
String cName = m.getValueAt(row, 1) + "";\r
String guid = m.getValueAt(row, 2) + "";\r
if (sfc.getSpdProtocolDeclarationCount() == 0) {\r
return ;\r
}\r
- String[][] saa = new String[sfc.getSpdProtocolDeclarationCount()][7];\r
+ saa = new String[sfc.getSpdProtocolDeclarationCount()][7];\r
sfc.getSpdProtocolDeclarations(saa);\r
int i = 0;\r
while (i < saa.length) {\r
\r
}\r
\r
- protected void updateRow(int row, TableModel m){\r
+ protected void updateRow(int row, int column, TableModel m){\r
+ String[] sa = new String[7];\r
+ sfc.getSpdProtocolDeclaration(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\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
String name = m.getValueAt(row, 0) + "";\r
String cName = m.getValueAt(row, 1) + "";\r
String guid = m.getValueAt(row, 2) + "";\r
import org.tianocore.PlatformSurfaceAreaDocument;\r
\r
import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");\r
return;\r
}\r
+ if (jTextFieldBaseName.getText().equals(ffc.getFpdHdrPlatformName())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrPlatformName(jTextFieldBaseName.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");\r
return;\r
}\r
+ if (jTextFieldGuid.getText().equals(ffc.getFpdHdrGuidValue())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrGuidValue(jTextFieldGuid.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "Version is NOT version type.");\r
return;\r
}\r
+ if (jTextFieldVersion.getText().equals(ffc.getFpdHdrVer())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrVer(jTextFieldVersion.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");\r
return;\r
}\r
+ if (jTextAreaLicense.getText().equals(ffc.getFpdHdrLicense())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");\r
return;\r
}\r
+ if (jTextAreaDescription.getText().equals(ffc.getFpdHdrDescription())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrDescription(jTextAreaDescription.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
return;\r
}\r
+ if (jTextFieldAbstract.getText().equals(ffc.getFpdHdrAbs())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrAbs(jTextFieldAbstract.getText());\r
} \r
JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");\r
return;\r
}\r
+ if (jTextFieldCopyright.getText().equals(ffc.getFpdHdrCopyright())) {\r
+ return;\r
+ }\r
docConsole.setSaved(false);\r
ffc.setFpdHdrCopyright(jTextFieldCopyright.getText());\r
} \r
jTextField.setPreferredSize(new Dimension(320, 20));\r
jTextField.addFocusListener(new FocusAdapter(){\r
public void focusLost(FocusEvent e){\r
+ if (jTextField.getText().length() == 0 && ffc.getFpdHdrUrl() == null) {\r
+ return;\r
+ }\r
+ if (jTextField.getText().equals(ffc.getFpdHdrUrl())) {\r
+ return;\r
+ }\r
ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
ffc.setFpdHdrUrl(jTextField.getText());\r
docConsole.setSaved(false);\r
*\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonOk) {\r
- this.save();\r
- this.setEdited(true);\r
- }\r
- if (arg0.getSource() == jButtonCancel) {\r
- this.setEdited(false);\r
- }\r
+ \r
if (arg0.getSource() == jButtonGenerateGuid) {\r
docConsole.setSaved(false);\r
jTextFieldGuid.setText(Tools.generateUuidString());\r
}\r
}\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean check() {\r
- //\r
- // Check if all required fields are not empty\r
- //\r
- if (isEmpty(this.jTextFieldBaseName.getText())) {\r
- Log.wrn("Update Fpd Header", "Base Name couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldGuid.getText())) {\r
- Log.wrn("Update Fpd Header", "Guid couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldVersion.getText())) {\r
- Log.wrn("Update Fpd Header", "Version couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextAreaLicense.getText())) {\r
- Log.wrn("Update Fpd Header", "License couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldCopyright.getText())) {\r
- Log.wrn("Update Fpd Header", "Copyright couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextAreaDescription.getText())) {\r
- Log.wrn("Update Fpd Header", "Description couldn't be empty");\r
- return false;\r
- }\r
- if (isEmpty(this.jTextFieldAbstract.getText())) {\r
- Log.wrn("Update Fpd Header", "Abstract couldn't be empty");\r
- return false;\r
- }\r
-\r
- //\r
- // Check if all fields have correct data types \r
- //\r
- if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
- Log.wrn("Update Fpd Header", "Incorrect data type for Base Name");\r
- return false;\r
- }\r
- if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
- Log.wrn("Update Fpd Header", "Incorrect data type for Guid");\r
- return false;\r
- }\r
- if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
- Log.wrn("Update Fpd Header", "Incorrect data type for Abstract");\r
- return false;\r
- }\r
- if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
- Log.wrn("Update Fpd Header", "Incorrect data type for Copyright");\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- Save all components of Fpd Header\r
- if exists FpdHeader, set the value directly\r
- if not exists FpdHeader, new an instance first\r
- \r
- **/\r
- public void save() {\r
- \r
- }\r
-\r
+ \r
/**\r
This method initializes Package type and Compontent type\r
\r