diff options
11 files changed, 413 insertions, 199 deletions
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java index a66861c30c..00e7f81bdf 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java @@ -641,14 +641,14 @@ public class SpdFileContents { libClass[i][1] = lc.getIncludeHeader();
libClass[i][2] = lc.getHelpText();
// LAH added logic so you cannot set the version unless the GUID is defined.
-/* LAH do not set now
- if (lc.getRecommendedInstanceGuid() != null) {
+
+// if (lc.getRecommendedInstanceGuid() != null) {
libClass[i][3] = lc.getRecommendedInstanceGuid();
- if (lc.getRecommendedInstanceVersion() != null) {
+// if (lc.getRecommendedInstanceVersion() != null) {
libClass[i][4] = lc.getRecommendedInstanceVersion();
- }
- }
-*/
+// }
+// }
+
if (lc.getSupArchList() != null) {
libClass[i][5] = listToString(lc.getSupArchList());
}
@@ -993,6 +993,27 @@ public class SpdFileContents { incHdrAttribPath, incHdrAttribClass, incHdrAttribVer, incHdrAttribOverrideID,
incHdrAttribModuleType, spdLibClassDeclarations);
}
+
+ public void getSpdLibClassDeclaration(String[] sa, int i) {
+ if (getSpdLibClassDeclarations() == null) {
+ return;
+ }
+ XmlCursor cursor = getSpdLibClassDeclarations().newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass)cursor.getObject();
+ sa[0] = lc.getName();
+ sa[1] = lc.getIncludeHeader();
+ sa[2] = lc.getHelpText();
+ sa[3] = lc.getRecommendedInstanceGuid();
+ sa[4] = lc.getRecommendedInstanceVersion();
+ sa[5] = listToString(lc.getSupArchList());
+ sa[6] = listToString(lc.getSupModuleList());
+ }
+ cursor.dispose();
+ }
/**
Set library class declaration contents under parent tag
@@ -1118,6 +1139,20 @@ public class SpdFileContents { setSpdMsaFile(msaFileName, moduleName, ver, guid, spdMsaFiles);
}
+
+ public void getSpdMsaFile (String[] sa, int i) {
+ if (getSpdMsaFiles() == null) {
+ return;
+ }
+ XmlCursor cursor = getSpdMsaFiles().newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ sa[0] = cursor.getTextValue();
+ }
+ cursor.dispose();
+ }
/**
Set MsaFile contents under parent element.
@@ -1159,6 +1194,22 @@ public class SpdFileContents { setSpdIncludeHeader(ModHdrModType, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass,
hdrAttribVer, hdrAttribOverID, spdModHdrs);
}
+
+ public void getSpdModuleHeader(String[] sa, int i) {
+ if (getSpdModHdrs() == null) {
+ return;
+ }
+ XmlCursor cursor = getSpdModHdrs().newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader)cursor.getObject();
+ sa[0] = ih.getModuleType()+"";
+ sa[1] = ih.getStringValue();
+ }
+ cursor.dispose();
+ }
/**
Generate GUID declaration element using parameters passed in.
@@ -1213,7 +1264,70 @@ public class SpdFileContents { setSpdEntry(ppiDeclEntryName, ppiDeclCName, ppiDeclGuid, ppiDeclFeatureFlag, archList, modTypeList, guidTypeList, spdPpiDeclarations);
}
+
+ public void getSpdGuidDeclaration(String[] sa, int i) {
+ if (getSpdGuidDeclarations() == null) {
+ return;
+ }
+ getSpdEntry(sa, i, getSpdGuidDeclarations());
+ }
+
+ public void getSpdProtocolDeclaration(String[] sa, int i) {
+ if (getSpdProtocolDeclarations() == null) {
+ return;
+ }
+ getSpdEntry(sa, i, getSpdProtocolDeclarations());
+ }
+
+ public void getSpdPpiDeclaration(String[] sa, int i) {
+ if (getSpdPpiDeclarations() == null) {
+ return;
+ }
+ getSpdEntry(sa, i, getSpdPpiDeclarations());
+ }
+ public void getSpdEntry(String[] sa, int i, XmlObject parent) {
+ XmlCursor cursor = parent.newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {
+ GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry)cursor.getObject();
+ sa[0] = e.getName();
+ sa[1] = e.getCName();
+ sa[2] = e.getGuidValue();
+ sa[3] = e.getHelpText();
+ sa[4] = listToString(e.getSupArchList());
+ sa[5] = listToString(e.getSupModuleList());
+ sa[6] = listToString(e.getGuidTypeList());
+ }
+
+ if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {
+ ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry)cursor.getObject();
+ sa[0] = e.getName();
+ sa[1] = e.getCName();
+ sa[2] = e.getGuidValue();
+ sa[3] = e.getHelpText();
+ sa[4] = listToString(e.getSupArchList());
+ sa[5] = listToString(e.getSupModuleList());
+ sa[6] = listToString(e.getGuidTypeList());
+ }
+
+ if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {
+ PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry)cursor.getObject();
+ sa[0] = e.getName();
+ sa[1] = e.getCName();
+ sa[2] = e.getGuidValue();
+ sa[3] = e.getHelpText();
+ sa[4] = listToString(e.getSupArchList());
+ sa[5] = listToString(e.getSupModuleList());
+ sa[6] = listToString(e.getGuidTypeList());
+ }
+
+ }
+ cursor.dispose();
+ }
/**
Set Entry contents using parameters passed in
@@ -1358,6 +1472,30 @@ public class SpdFileContents { setSpdPcdEntry(pcdItemTypes, cName, token, dataType, spaceGuid, help,
defaultString, archList, modTypeList, spdPcdDefinitions);
}
+
+ public void getSpdPcdDeclaration(String[] sa, int i) {
+ if (getSpdPcdDefinitions() == null) {
+ return;
+ }
+
+ XmlCursor cursor = getSpdPcdDefinitions().newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ PcdDeclarationsDocument.PcdDeclarations.PcdEntry pe = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)cursor.getObject();
+ sa[0] = pe.getCName();
+ sa[1] = pe.getToken()+"";
+ sa[2] = pe.getTokenSpaceGuidCName();
+ sa[3] = pe.getDatumType()+"";
+ sa[4] = pe.getDefaultValue();
+ sa[5] = pe.getHelpText();
+ sa[6] = listToString(pe.getValidUsage());
+ sa[7] = listToString(pe.getSupArchList());
+ sa[8] = listToString(pe.getSupModuleList());
+ }
+ cursor.dispose();
+ }
/**
Set Pcd entry contents under parent tag
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java index 6459c2c56e..120c52845b 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java @@ -129,7 +129,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{ private JLabel jLabel3 = null;
-
+ protected String[][] saa = null;
/**
This method initializes this
@@ -237,6 +237,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{ }
else{
selectedRow = lsm.getMinSelectionIndex();
+
}
}
});
@@ -250,14 +251,28 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{ public void tableChanged(TableModelEvent arg0) {
// TODO Auto-generated method stub
int row = arg0.getFirstRow();
+ int column = arg0.getColumn();
TableModel m = (TableModel)arg0.getSource();
if (arg0.getType() == TableModelEvent.UPDATE){
- updateRow(row, m);
+ updateRow(row, column, m);
}
}
- protected void updateRow(int row, TableModel m){
+ protected void updateRow(int row, int column, TableModel m){
+ String[] sa = new String[7];
+ sfc.getSpdGuidDeclaration(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
+
String name = m.getValueAt(row, 0) + "";
String cName = m.getValueAt(row, 1) + "";
String guid = m.getValueAt(row, 2) + "";
@@ -409,7 +424,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{ //
// initialize table using SpdFileContents object
//
- String[][] saa = new String[sfc.getSpdGuidDeclarationCount()][7];
+ saa = new String[sfc.getSpdGuidDeclarationCount()][7];
sfc.getSpdGuidDeclarations(saa);
int i = 0;
while (i < saa.length) {
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java index 911469dcc9..5399dceab3 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java @@ -32,7 +32,6 @@ import javax.swing.JTextField; import org.tianocore.PackageSurfaceAreaDocument;
import org.tianocore.frameworkwizard.common.DataValidation;
-import org.tianocore.frameworkwizard.common.Log;
import org.tianocore.frameworkwizard.common.Tools;
import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;
@@ -144,6 +143,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");
return;
}
+ if (jTextFieldBaseName.getText().equals(sfc.getSpdHdrPkgName())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrPkgName(jTextFieldBaseName.getText());
}
@@ -169,6 +171,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");
return;
}
+ if (jTextFieldGuid.getText().equals(sfc.getSpdHdrGuidValue())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());
}
@@ -194,6 +199,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Version is NOT version type.");
return;
}
+ if (jTextFieldVersion.getText().equals(sfc.getSpdHdrVer())){
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrVer(jTextFieldVersion.getText());
}
@@ -228,7 +236,6 @@ public class SpdHeader extends IInternalFrame { if (jTextAreaLicense == null) {
jTextAreaLicense = new JTextArea();
jTextAreaLicense.setText("");
-// jTextAreaLicense.setPreferredSize(new java.awt.Dimension(317,77));
jTextAreaLicense.setLineWrap(true);
jTextAreaLicense.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e){
@@ -236,6 +243,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");
return;
}
+ if (jTextAreaLicense.getText().equals(sfc.getSpdHdrLicense())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrLicense(jTextAreaLicense.getText());
}
@@ -254,13 +264,15 @@ public class SpdHeader extends IInternalFrame { if (jTextAreaDescription == null) {
jTextAreaDescription = new JTextArea();
jTextAreaDescription.setLineWrap(true);
-// jTextAreaDescription.setPreferredSize(new java.awt.Dimension(317,77));
jTextAreaDescription.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e){
if (jTextAreaDescription.getText().length() == 0) {
JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");
return;
}
+ if (jTextAreaDescription.getText().equals(sfc.getSpdHdrDescription())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrDescription(jTextAreaDescription.getText());
}
@@ -374,6 +386,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");
return;
}
+ if (jTextFieldAbstract.getText().equals(sfc.getSpdHdrAbs())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrAbs(jTextFieldAbstract.getText());
}
@@ -399,6 +414,9 @@ public class SpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");
return;
}
+ if (jTextFieldCopyright.getText().equals(sfc.getSpdHdrCopyright())) {
+ return;
+ }
docConsole.setSaved(false);
sfc.setSpdHdrCopyright(jTextFieldCopyright.getText());
}
@@ -419,6 +437,12 @@ public class SpdHeader extends IInternalFrame { jTextField.setPreferredSize(new java.awt.Dimension(320, 20));
jTextField.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e){
+ if (jTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {
+ return;
+ }
+ if (jTextField.getText().equals(sfc.getSpdHdrUrl())) {
+ return;
+ }
sfc.setSpdHdrLicense(jTextAreaLicense.getText());
sfc.setSpdHdrUrl(jTextField.getText());
docConsole.setSaved(false);
@@ -612,98 +636,15 @@ public class SpdHeader extends IInternalFrame { *
*/
public void actionPerformed(ActionEvent arg0) {
- docConsole.setSaved(false);
- if (arg0.getSource() == jButtonOk) {
- this.save();
- this.setEdited(true);
- }
- if (arg0.getSource() == jButtonCancel) {
- this.setEdited(false);
- }
+
if (arg0.getSource() == jButtonGenerateGuid) {
//ToDo: invoke GuidValueEditor
jTextFieldGuid.setText(Tools.generateUuidString());
+ docConsole.setSaved(false);
sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());
}
}
-
- /**
- Data validation for all fields
-
- @retval true - All datas are valid
- @retval false - At least one data is invalid
-
- **/
- public boolean check() {
- //
- // Check if all required fields are not empty
- //
- if (isEmpty(this.jTextFieldBaseName.getText())) {
- Log.wrn("Update Spd Header", "Base Name couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldGuid.getText())) {
- Log.wrn("Update Spd Header", "Guid couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldVersion.getText())) {
- Log.wrn("Update Spd Header", "Version couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextAreaLicense.getText())) {
- Log.wrn("Update Spd Header", "License couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldCopyright.getText())) {
- Log.wrn("Update Spd Header", "Copyright couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextAreaDescription.getText())) {
- Log.wrn("Update Spd Header", "Description couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldAbstract.getText())) {
- Log.wrn("Update Spd Header", "Abstract couldn't be empty");
- return false;
- }
-
- //
- // Check if all fields have correct data types
- //
- if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {
- Log.wrn("Update Spd Header", "Incorrect data type for Base Name");
- return false;
- }
- if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {
- Log.wrn("Update Spd Header", "Incorrect data type for Guid");
- return false;
- }
- if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {
- Log.wrn("Update Spd Header", "Incorrect data type for Abstract");
- return false;
- }
- if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {
- Log.wrn("Update Spd Header", "Incorrect data type for Copyright");
- return false;
- }
- return true;
- }
-
- /**
- Save all components of Spd Header
- if exists spdHeader, set the value directly
- if not exists spdHeader, new an instance first
-
- **/
- public void save() {
- try {
-
- } catch (Exception e) {
- Log.wrn("Save Package", e.getMessage());
- Log.err("Save Package", e.getMessage());
- }
- }
-
+
/**
This method initializes Package type and Compontent type
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java index 04a62ce166..33c78899d7 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java @@ -278,13 +278,21 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen public void tableChanged(TableModelEvent arg0) {
// TODO Auto-generated method stub
int row = arg0.getFirstRow();
+ int column = arg0.getColumn();
TableModel m = (TableModel)arg0.getSource();
if (arg0.getType() == TableModelEvent.UPDATE){
+
String lib = m.getValueAt(row, cnClassName) + "";
String hdr = m.getValueAt(row, cnHdrFile) + "";
String hlp = m.getValueAt(row, cnHelpText) + "";
- String name = m.getValueAt(row, cnRecInstName) + "";
- String ver = m.getValueAt(row, cnRecInstVer) + "";
+ String name = null;
+ if (m.getValueAt(row, cnRecInstName) != null) {
+ name = m.getValueAt(row, cnRecInstName).toString();
+ }
+ String ver = null;
+ if (m.getValueAt(row, cnRecInstVer) != null){
+ ver = m.getValueAt(row, cnRecInstVer).toString();
+ }
String arch = null;
if (m.getValueAt(row, cnSupArch) != null) {
arch = m.getValueAt(row, cnSupArch).toString();
@@ -297,11 +305,40 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen if (!dataValidation(rowData)) {
return;
}
- docConsole.setSaved(false);
- getLibInstances(lib);
- String guid = nameToGuid(name);
+ String guid = null;
+ if (name != null && name.length() > 0) {
+ getLibInstances(lib);
+ guid = nameToGuid(name);
+ }
+ String[] sa = new String[7];
+ sfc.getSpdLibClassDeclaration(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (column == cnRecInstName) {
+ if (guid == null) {
+ if (sa[cnRecInstName] == null) {
+ return;
+ }
+ }
+ else {
+ if (guid.equals(sa[cnRecInstName])) {
+ return;
+ }
+ }
+ }
+ else {
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
+ }
+ docConsole.setSaved(false);
sfc.updateSpdLibClass(row, lib, hdr, hlp, guid, ver, arch, module);
}
}
@@ -576,9 +613,6 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen if (!dataValidation(row)) {
return;
}
- model.addRow(row);
- jTable.changeSelection(model.getRowCount()-1, 0, false, false);
- docConsole.setSaved(false);
//
//convert to GUID before storing recommended lib instance.
//
@@ -586,7 +620,9 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen String recommendGuid = nameToGuid(row[cnRecInstName]);
sfc.genSpdLibClassDeclarations(row[cnClassName], recommendGuid, row[cnHdrFile], row[cnHelpText], row[cnSupArch], null, null, row[cnRecInstVer], null, row[cnSupMod]);
-
+ model.addRow(row);
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);
+ docConsole.setSaved(false);
}
//
// remove selected line
@@ -626,7 +662,12 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen JOptionPane.showMessageDialog(frame, "Help Text Must NOT be empty.");
return false;
}
- if (row[cnRecInstVer].length() > 0) {
+ if (row[cnRecInstVer] != null && row[cnRecInstVer].length() > 0) {
+ if (row[cnRecInstName] == null || row[cnRecInstName].length() == 0) {
+ JOptionPane.showMessageDialog(frame, "Recommended Instance Version must associate with Instance Name.");
+ return false;
+ }
+
if (!DataValidation.isVersionDataType(row[cnRecInstVer])) {
JOptionPane.showMessageDialog(frame, "Recommended Instance Version is NOT VersionDataType.");
return false;
@@ -898,6 +939,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen private String nameToGuid(String name) {
String s = null;
if (!libNameGuidMap.containsKey(name)) {
+ JOptionPane.showMessageDialog(frame, "Recommended Instance NOT exists.");
return s;
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java index 4c7a69d1ae..a7465835a4 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java @@ -381,8 +381,21 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{ public void tableChanged(TableModelEvent arg0) {
// TODO Auto-generated method stub
int row = arg0.getFirstRow();
+ int column = arg0.getColumn();
TableModel m = (TableModel)arg0.getSource();
if (arg0.getType() == TableModelEvent.UPDATE){
+ String[] sa = new String[1];
+ sfc.getSpdMsaFile(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
String file = m.getValueAt(row, 0) + "";
if (file.length() == 0) {
JOptionPane.showMessageDialog(this, "Msa File is NOT PathAndFilename type.");
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java index 24d4be621e..56d00ae041 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java @@ -128,8 +128,11 @@ public class SpdPackageDefinitions extends IInternalFrame { jComboBoxReadOnly.setSelectedIndex(1);
jComboBoxReadOnly.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
+ if (jComboBoxReadOnly.getSelectedItem().equals(sfc.getSpdPkgDefsRdOnly())) {
+ return;
+ }
if (docConsole != null) {
- docConsole.setSaved(false);
+ docConsole.setSaved(false);
}
sfc.setSpdPkgDefsRdOnly(jComboBoxReadOnly.getSelectedItem()+"");
}
@@ -153,6 +156,9 @@ public class SpdPackageDefinitions extends IInternalFrame { jComboBoxRePackage.setSelectedIndex(0);
jComboBoxRePackage.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
+ if (jComboBoxRePackage.getSelectedItem().equals(sfc.getSpdPkgDefsRePkg())) {
+ return;
+ }
if (docConsole != null) {
docConsole.setSaved(false);
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java index 5b256fce70..e490e28e2d 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java @@ -564,8 +564,21 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe public void tableChanged(TableModelEvent arg0) {
// TODO Auto-generated method stub
int row = arg0.getFirstRow();
+ int column = arg0.getColumn();
TableModel m = (TableModel)arg0.getSource();
if (arg0.getType() == TableModelEvent.UPDATE){
+ String[] sa = new String[2];
+ sfc.getSpdModuleHeader(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
String pkg = m.getValueAt(row, 0) + "";
String hdr = m.getValueAt(row, 1) + "";
String[] rowData = {pkg, hdr};
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java index ba2d55bd7a..4b9924c32a 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java @@ -721,16 +721,66 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{ public void tableChanged(TableModelEvent arg0) {
// TODO Auto-generated method stub
int row = arg0.getFirstRow();
+ int column = arg0.getColumn();
TableModel m = (TableModel)arg0.getSource();
if (arg0.getType() == TableModelEvent.UPDATE){
+ String[] sa = new String[9];
+ sfc.getSpdPcdDeclaration(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (column < 6) {
+
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
+ }
+
+ 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)+""));
+ if (usage.length() == 0) {
+ JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");
+ return;
+ }
+ if (column <= 10 && column >= 6) {
+ if (compareTwoVectors(stringToVector(usage), stringToVector(sa[6]))) {
+ return;
+ }
+ }
+
+ if (column == 11) {
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[7])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[7] == null) {
+ return;
+ }
+ }
+ if (column == 12) {
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[8])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[8] == null) {
+ return;
+ }
+ }
String cName = m.getValueAt(row, 0) + "";
String token = m.getValueAt(row, 1) + "";
String ts = m.getValueAt(row, 2) + "";
String dataType = m.getValueAt(row, 3) + "";
String defaultVal = m.getValueAt(row, 4) + "";
String help = m.getValueAt(row, 5) + "";
- 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)+""));
+
String archList = null;
if (m.getValueAt(row, 11) != null){
@@ -740,10 +790,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{ if (m.getValueAt(row, 12) != null) {
modTypeList = m.getValueAt(row, 12).toString();
}
- if (usage.length() == 0) {
- JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");
- return;
- }
+
Object[] o = {cName, token, ts, dataType, defaultVal, help};
if (!dataValidation(o)){
return;
@@ -967,6 +1014,30 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{ }
return s.trim();
}
+
+ protected Vector<String> stringToVector(String s){
+ if (s == null) {
+ return null;
+ }
+ String[] sArray = s.split(" ");
+ Vector<String> v = new Vector<String>();
+ for (int i = 0; i < sArray.length; ++i) {
+ v.add(sArray[i]);
+ }
+ return v;
+ }
+
+ private boolean compareTwoVectors(Vector v1, Vector v2) {
+ if (v1.size() != v2.size()) {
+ return false;
+ }
+ for (int i = 0; i < v1.size(); ++i) {
+ if (!v2.contains(v1.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
} // @jve:decl-index=0:visual-constraint="22,11"
class CheckboxTableModel extends DefaultTableModel {
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java index dcf608537b..b33f8c7d21 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java @@ -62,7 +62,7 @@ public class SpdPpiDecls extends SpdGuidDecls { if (sfc.getSpdPpiDeclarationCount() == 0) {
return ;
}
- String[][] saa = new String[sfc.getSpdPpiDeclarationCount()][7];
+ saa = new String[sfc.getSpdPpiDeclarationCount()][7];
sfc.getSpdPpiDeclarations(saa);
int i = 0;
while (i < saa.length) {
@@ -71,7 +71,20 @@ public class SpdPpiDecls extends SpdGuidDecls { }
}
- protected void updateRow(int row, TableModel m){
+ protected void updateRow(int row, int column, TableModel m){
+ String[] sa = new String[7];
+ sfc.getSpdPpiDeclaration(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
+
String name = m.getValueAt(row, 0) + "";
String cName = m.getValueAt(row, 1) + "";
String guid = m.getValueAt(row, 2) + "";
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java index 21cebb5cb9..e5453947e5 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java @@ -62,7 +62,7 @@ public class SpdProtocolDecls extends SpdGuidDecls { if (sfc.getSpdProtocolDeclarationCount() == 0) {
return ;
}
- String[][] saa = new String[sfc.getSpdProtocolDeclarationCount()][7];
+ saa = new String[sfc.getSpdProtocolDeclarationCount()][7];
sfc.getSpdProtocolDeclarations(saa);
int i = 0;
while (i < saa.length) {
@@ -72,7 +72,20 @@ public class SpdProtocolDecls extends SpdGuidDecls { }
- protected void updateRow(int row, TableModel m){
+ protected void updateRow(int row, int column, TableModel m){
+ String[] sa = new String[7];
+ sfc.getSpdProtocolDeclaration(sa, row);
+ Object cellData = m.getValueAt(row, column);
+ if (cellData == null) {
+ cellData = "";
+ }
+ if (cellData.equals(sa[column])) {
+ return;
+ }
+ if (cellData.toString().length() == 0 && sa[column] == null) {
+ return;
+ }
+
String name = m.getValueAt(row, 0) + "";
String cName = m.getValueAt(row, 1) + "";
String guid = m.getValueAt(row, 2) + "";
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java index 486518656b..d101250d15 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java @@ -35,7 +35,6 @@ import javax.swing.JTextField; import org.tianocore.PlatformSurfaceAreaDocument;
import org.tianocore.frameworkwizard.common.DataValidation;
-import org.tianocore.frameworkwizard.common.Log;
import org.tianocore.frameworkwizard.common.Tools;
import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;
@@ -146,6 +145,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");
return;
}
+ if (jTextFieldBaseName.getText().equals(ffc.getFpdHdrPlatformName())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrPlatformName(jTextFieldBaseName.getText());
}
@@ -171,6 +173,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");
return;
}
+ if (jTextFieldGuid.getText().equals(ffc.getFpdHdrGuidValue())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrGuidValue(jTextFieldGuid.getText());
}
@@ -196,6 +201,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Version is NOT version type.");
return;
}
+ if (jTextFieldVersion.getText().equals(ffc.getFpdHdrVer())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrVer(jTextFieldVersion.getText());
}
@@ -237,6 +245,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");
return;
}
+ if (jTextAreaLicense.getText().equals(ffc.getFpdHdrLicense())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrLicense(jTextAreaLicense.getText());
}
@@ -261,6 +272,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");
return;
}
+ if (jTextAreaDescription.getText().equals(ffc.getFpdHdrDescription())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrDescription(jTextAreaDescription.getText());
}
@@ -374,6 +388,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");
return;
}
+ if (jTextFieldAbstract.getText().equals(ffc.getFpdHdrAbs())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrAbs(jTextFieldAbstract.getText());
}
@@ -399,6 +416,9 @@ public class FpdHeader extends IInternalFrame { JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");
return;
}
+ if (jTextFieldCopyright.getText().equals(ffc.getFpdHdrCopyright())) {
+ return;
+ }
docConsole.setSaved(false);
ffc.setFpdHdrCopyright(jTextFieldCopyright.getText());
}
@@ -419,6 +439,12 @@ public class FpdHeader extends IInternalFrame { jTextField.setPreferredSize(new Dimension(320, 20));
jTextField.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e){
+ if (jTextField.getText().length() == 0 && ffc.getFpdHdrUrl() == null) {
+ return;
+ }
+ if (jTextField.getText().equals(ffc.getFpdHdrUrl())) {
+ return;
+ }
ffc.setFpdHdrLicense(jTextAreaLicense.getText());
ffc.setFpdHdrUrl(jTextField.getText());
docConsole.setSaved(false);
@@ -613,13 +639,7 @@ public class FpdHeader extends IInternalFrame { *
*/
public void actionPerformed(ActionEvent arg0) {
- if (arg0.getSource() == jButtonOk) {
- this.save();
- this.setEdited(true);
- }
- if (arg0.getSource() == jButtonCancel) {
- this.setEdited(false);
- }
+
if (arg0.getSource() == jButtonGenerateGuid) {
docConsole.setSaved(false);
jTextFieldGuid.setText(Tools.generateUuidString());
@@ -627,78 +647,7 @@ public class FpdHeader extends IInternalFrame { }
}
- /**
- Data validation for all fields
-
- @retval true - All datas are valid
- @retval false - At least one data is invalid
-
- **/
- public boolean check() {
- //
- // Check if all required fields are not empty
- //
- if (isEmpty(this.jTextFieldBaseName.getText())) {
- Log.wrn("Update Fpd Header", "Base Name couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldGuid.getText())) {
- Log.wrn("Update Fpd Header", "Guid couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldVersion.getText())) {
- Log.wrn("Update Fpd Header", "Version couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextAreaLicense.getText())) {
- Log.wrn("Update Fpd Header", "License couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldCopyright.getText())) {
- Log.wrn("Update Fpd Header", "Copyright couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextAreaDescription.getText())) {
- Log.wrn("Update Fpd Header", "Description couldn't be empty");
- return false;
- }
- if (isEmpty(this.jTextFieldAbstract.getText())) {
- Log.wrn("Update Fpd Header", "Abstract couldn't be empty");
- return false;
- }
-
- //
- // Check if all fields have correct data types
- //
- if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {
- Log.wrn("Update Fpd Header", "Incorrect data type for Base Name");
- return false;
- }
- if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {
- Log.wrn("Update Fpd Header", "Incorrect data type for Guid");
- return false;
- }
- if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {
- Log.wrn("Update Fpd Header", "Incorrect data type for Abstract");
- return false;
- }
- if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {
- Log.wrn("Update Fpd Header", "Incorrect data type for Copyright");
- return false;
- }
- return true;
- }
-
- /**
- Save all components of Fpd Header
- if exists FpdHeader, set the value directly
- if not exists FpdHeader, new an instance first
-
- **/
- public void save() {
-
- }
-
+
/**
This method initializes Package type and Compontent type
|