summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-21 01:07:28 +0000
committerhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-21 01:07:28 +0000
commit3b7a9058fdf4e730963d20fc5ce57794ac2e6bc7 (patch)
treeba2a318a67e74f6285b5e4e161f2d5b20cd26f89 /Tools
parentda4f6c6cae4801e9d10f2ad036f8e935779a5a0d (diff)
downloadedk2-3b7a9058fdf4e730963d20fc5ce57794ac2e6bc7.zip
edk2-3b7a9058fdf4e730963d20fc5ce57794ac2e6bc7.tar.gz
edk2-3b7a9058fdf4e730963d20fc5ce57794ac2e6bc7.tar.bz2
1. Fix EDKT273 "Externs are not being grouped together in MSA Files"
2. Fix EDKT274 "Wrong display in Extern when selecting "Specification" git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1580 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools')
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java4
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java45
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java17
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java6
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java7
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java7
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java108
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java130
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java304
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java208
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java684
11 files changed, 1202 insertions, 318 deletions
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java
index dcf3561..6f95ca4 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java
@@ -61,6 +61,10 @@ public class DataType {
public static final String DOS_LINE_SEPARATOR = "\r\n";
public static final String UNIX_LINE_SEPARATOR = "\n";
+
+ public static final String LINE_SEPARATOR = UNIX_LINE_SEPARATOR;
+
+ public static final String HTML_LINE_SEPARATOR = "<br>";
public static final String EMPTY_SELECT_ITEM = "----";
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java
index 99f4038..680bd65 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/EnumerationData.java
@@ -24,19 +24,23 @@ public class EnumerationData {
public final static String EXTERNS_SPECIFICATION = "Specification";
+ public final static String EXTERNS_IMAGE = "Image";
public final static String EXTERNS_MODULE_ENTRY_POINT = "ModuleEntryPoint";
public final static String EXTERNS_MODULE_UNLOAD_IMAGE = "ModuleUnloadImage";
+ public final static String EXTERNS_LIBRARY = "Library";
public final static String EXTERNS_CONSTRUCTOR = "Constructor";
public final static String EXTERNS_DESTRUCTOR = "Destructor";
+ public final static String EXTERNS_DRIVER = "Driver";
public final static String EXTERNS_DRIVER_BINDING = "DriverBinding";
public final static String EXTERNS_COMPONENT_NAME = "ComponentName";
public final static String EXTERNS_DRIVER_CONFIG = "DriverConfig";
public final static String EXTERNS_DRIVER_DIAG = "DriverDiag";
- public final static String EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK = "SetVirtualAddressMapCallBack";
- public final static String EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK = "ExitBootServicesCallBack";
+ public final static String EXTERNS_CALL_BACK = "Call Back";
+ public final static String EXTERNS_VIRTUAL_ADDRESS_MAP_CALL_BACK = "VirtualAddressMap";
+ public final static String EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK = "ExitBootServices";
//
// Common data
@@ -669,28 +673,33 @@ public class EnumerationData {
private void initExternTypes() {
vExternTypes.removeAllElements();
- vExternTypes.addElement(EnumerationData.EXTERNS_PCD_IS_DRIVER);
-
vExternTypes.addElement(EnumerationData.EXTERNS_SPECIFICATION);
+ vExternTypes.addElement(EnumerationData.EXTERNS_IMAGE);
+ vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER);
+ vExternTypes.addElement(EnumerationData.EXTERNS_LIBRARY);
+ vExternTypes.addElement(EnumerationData.EXTERNS_CALL_BACK);
- vExternTypes.addElement(EnumerationData.EXTERNS_MODULE_ENTRY_POINT);
- vExternTypes.addElement(EnumerationData.EXTERNS_MODULE_UNLOAD_IMAGE);
-
- vExternTypes.addElement(EnumerationData.EXTERNS_CONSTRUCTOR);
- vExternTypes.addElement(EnumerationData.EXTERNS_DESTRUCTOR);
-
- vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_BINDING);
- vExternTypes.addElement(EnumerationData.EXTERNS_COMPONENT_NAME);
- vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_CONFIG);
- vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_DIAG);
+// vExternTypes.addElement(EnumerationData.EXTERNS_PCD_IS_DRIVER);
+//
+// vExternTypes.addElement(EnumerationData.EXTERNS_SPECIFICATION);
+//
+// vExternTypes.addElement(EnumerationData.EXTERNS_MODULE_ENTRY_POINT);
+// vExternTypes.addElement(EnumerationData.EXTERNS_MODULE_UNLOAD_IMAGE);
+//
+// vExternTypes.addElement(EnumerationData.EXTERNS_CONSTRUCTOR);
+// vExternTypes.addElement(EnumerationData.EXTERNS_DESTRUCTOR);
- vExternTypes.addElement(EnumerationData.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK);
- vExternTypes.addElement(EnumerationData.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK);
+// vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_BINDING);
+// vExternTypes.addElement(EnumerationData.EXTERNS_COMPONENT_NAME);
+// vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_CONFIG);
+// vExternTypes.addElement(EnumerationData.EXTERNS_DRIVER_DIAG);
+//
+// vExternTypes.addElement(EnumerationData.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK);
+// vExternTypes.addElement(EnumerationData.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK);
}
private void initPcdDriverTypes() {
- vPcdDriverTypes.removeAllElements();
- vPcdDriverTypes.addElement(DataType.EMPTY_SELECT_ITEM);
+ vPcdDriverTypes.removeAllElements();
vPcdDriverTypes.addElement("PEI_PCD_DRIVER");
vPcdDriverTypes.addElement("DXE_PCD_DRIVER");
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java
index 4b32baa..e6647d2 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java
@@ -632,4 +632,21 @@ public class Tools {
count = wholeString.split(searchString).length;
return count;
}
+
+ /**
+ * Check the input data is empty or not
+ *
+ * @param strValue
+ * The input data which need be checked
+ *
+ * @retval true - The input data is empty
+ * @retval fals - The input data is not empty
+ *
+ */
+ public static boolean isEmpty(String strValue) {
+ if (strValue.length() > 0) {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java
index 3272d20..1fc7c4c 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java
@@ -23,6 +23,7 @@ import java.awt.event.ActionListener;
import javax.swing.JDialog;
import org.tianocore.frameworkwizard.common.DataType;
+import org.tianocore.frameworkwizard.common.Tools;
/**
The class is used to override Dialog to provides customized interfaces
@@ -148,10 +149,7 @@ public class IDialog extends JDialog implements ActionListener {
**/
public boolean isEmpty(String strValue) {
- if (strValue.length() > 0) {
- return false;
- }
- return true;
+ return Tools.isEmpty(strValue);
}
/**
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java
index 1988419..51f85d6 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IFrame.java
@@ -27,6 +27,8 @@ import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
+import org.tianocore.frameworkwizard.common.Tools;
+
/**
The class is used to override Frame to provides customized interfaces
It extends JFrame implements ActionListener and WindowListener
@@ -228,10 +230,7 @@ public class IFrame extends JFrame implements ActionListener, WindowListener, Co
**/
public boolean isEmpty(String strValue) {
- if (strValue.length() > 0) {
- return false;
- }
- return true;
+ return Tools.isEmpty(strValue);
}
/**
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java
index df58142..f0d0186 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IInternalFrame.java
@@ -35,6 +35,8 @@ import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
+import org.tianocore.frameworkwizard.common.Tools;
+
/**
* The class is used to override JInternalFrame to provides customized
* interfaces It extends JInternalFrame implements ActionListener
@@ -124,10 +126,7 @@ public class IInternalFrame extends JInternalFrame implements ActionListener, Co
*
*/
public boolean isEmpty(String strValue) {
- if (strValue.length() > 0) {
- return false;
- }
- return true;
+ return Tools.isEmpty(strValue);
}
public void actionPerformed(ActionEvent arg0) {
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java
index 59b85d7..31979ce 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsIdentification.java
@@ -17,40 +17,57 @@ package org.tianocore.frameworkwizard.module.Identifications.Externs;
import java.util.Vector;
+import org.tianocore.frameworkwizard.common.EnumerationData;
+
public class ExternsIdentification {
//
// Define class members
//
- private String name = null;
+ private String name0 = null;
+
+ private String name1 = null;
+
+ private String name2 = null;
+
+ private String name3 = null;
private String type = null;
-
+
private Vector<String> supArchList = null;
private String featureFlag = null;
- public ExternsIdentification(String arg0, String arg1, String arg2, Vector<String> arg3) {
- this.name = (arg0 == null ? "" : arg0);
+ public ExternsIdentification(String arg0, String arg1) {
+ this.name0 = (arg0 == null ? "" : arg0);
this.type = (arg1 == null ? "" : arg1);
- this.featureFlag = (arg2 == null ? "" : arg2);
- this.supArchList = arg3;
}
- public String getFeatureFlag() {
- return featureFlag;
+ public ExternsIdentification(String arg0, String arg1, String arg2, String arg3, Vector<String> arg4) {
+ this.name0 = (arg0 == null ? "" : arg0);
+ this.name1 = (arg1 == null ? "" : arg1);
+ this.type = (arg2 == null ? "" : arg2);
+ this.featureFlag = (arg3 == null ? "" : arg3);
+ this.supArchList = arg4;
}
- public void setFeatureFlag(String featureFlag) {
- this.featureFlag = featureFlag;
+ public ExternsIdentification(String arg0, String arg1, String arg2, String arg3, String arg4, String arg5,
+ Vector<String> arg6) {
+ this.name0 = (arg0 == null ? "" : arg0);
+ this.name1 = (arg1 == null ? "" : arg1);
+ this.name2 = (arg2 == null ? "" : arg2);
+ this.name3 = (arg3 == null ? "" : arg3);
+ this.type = (arg4 == null ? "" : arg4);
+ this.featureFlag = (arg5 == null ? "" : arg5);
+ this.supArchList = arg6;
}
- public String getName() {
- return name;
+ public String getFeatureFlag() {
+ return featureFlag;
}
- public void setName(String name) {
- this.name = name;
+ public void setFeatureFlag(String featureFlag) {
+ this.featureFlag = featureFlag;
}
public Vector<String> getSupArchList() {
@@ -60,11 +77,36 @@ public class ExternsIdentification {
public void setSupArchList(Vector<String> supArchList) {
this.supArchList = supArchList;
}
-
+
public boolean equals(ExternsIdentification pi) {
- if (this.name.equals(pi.name)) {
- return true;
+ if (this.type.equals(pi.type)) {
+ if (this.type.equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ if (this.name0.equals(pi.name0)) {
+ return true;
+ }
+ }
+ if (this.type.equals(EnumerationData.EXTERNS_IMAGE)) {
+ if (this.name0.equals(pi.name0) && this.name1.equals(pi.name1)) {
+ return true;
+ }
+ }
+ if (this.type.equals(EnumerationData.EXTERNS_LIBRARY)) {
+ if (this.name0.equals(pi.name0) && this.name1.equals(pi.name1)) {
+ return true;
+ }
+ }
+ if (this.type.equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ if (this.name0.equals(pi.name0) && this.name1.equals(pi.name1)) {
+ return true;
+ }
+ }
+ if (this.type.equals(EnumerationData.EXTERNS_DRIVER)) {
+ if (this.name0.equals(pi.name0) && this.name1.equals(pi.name1) && this.name2.equals(pi.name2) && this.name3.equals(pi.name3)) {
+ return true;
+ }
+ }
}
+
return false;
}
@@ -75,4 +117,36 @@ public class ExternsIdentification {
public void setType(String type) {
this.type = type;
}
+
+ public String getName0() {
+ return name0;
+ }
+
+ public void setName0(String name0) {
+ this.name0 = name0;
+ }
+
+ public String getName1() {
+ return name1;
+ }
+
+ public void setName1(String name1) {
+ this.name1 = name1;
+ }
+
+ public String getName2() {
+ return name2;
+ }
+
+ public void setName2(String name2) {
+ this.name2 = name2;
+ }
+
+ public String getName3() {
+ return name3;
+ }
+
+ public void setName3(String name3) {
+ this.name3 = name3;
+ }
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java
index 93b2507..dbc2035 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Externs/ExternsVector.java
@@ -16,6 +16,7 @@ package org.tianocore.frameworkwizard.module.Identifications.Externs;
import java.util.Vector;
+import org.tianocore.frameworkwizard.common.DataType;
import org.tianocore.frameworkwizard.common.EnumerationData;
public class ExternsVector {
@@ -31,15 +32,6 @@ public class ExternsVector {
return -1;
}
- public int findExterns(String name) {
- for (int index = 0; index < vExterns.size(); index++) {
- if (vExterns.elementAt(index).getName().equals(name)) {
- return index;
- }
- }
- return -1;
- }
-
public ExternsIdentification getExterns(int index) {
if (index > -1) {
return vExterns.elementAt(index);
@@ -49,21 +41,7 @@ public class ExternsVector {
}
public void addExterns(ExternsIdentification arg0) {
- boolean isExistPcd = false;
- if (arg0.getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- for (int index = 0; index < size(); index++) {
- if (getExterns(index).getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- setExterns(arg0, index);
- isExistPcd = true;
- break;
- }
- }
- if (!isExistPcd) {
- vExterns.addElement(arg0);
- }
- } else {
- vExterns.addElement(arg0);
- }
+ vExterns.addElement(arg0);
}
public void setExterns(ExternsIdentification arg0, int arg1) {
@@ -91,22 +69,106 @@ public class ExternsVector {
vExterns = Externs;
}
- public Vector<String> getExternsName() {
- Vector<String> v = new Vector<String>();
- for (int index = 0; index < this.vExterns.size(); index++) {
- v.addElement(vExterns.get(index).getName());
- }
- return v;
- }
-
public int size() {
return this.vExterns.size();
}
public Vector<String> toStringVector(int index) {
Vector<String> v = new Vector<String>();
- v.addElement(getExterns(index).getName());
- v.addElement(getExterns(index).getType());
+
+ //
+ // For Specification
+ //
+ if (this.getExterns(index).getType().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ v.addElement(getExterns(index).getType());
+ v.addElement(getExterns(index).getType() + " Name");
+ v.addElement(getExterns(index).getName0());
+ return v;
+ }
+
+ //
+ // For Image
+ //
+ if (this.getExterns(index).getType().equals(EnumerationData.EXTERNS_IMAGE)) {
+ v.addElement(getExterns(index).getType());
+ String name = "";
+ String value = "";
+
+ name = EnumerationData.EXTERNS_MODULE_ENTRY_POINT;
+ value = this.getExterns(index).getName0();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_MODULE_UNLOAD_IMAGE;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName1()
+ + DataType.HTML_LINE_SEPARATOR;
+
+ v.addElement("<html>" + name + "<html>");
+ v.addElement("<html>" + value + "<html>");
+ return v;
+ }
+
+ //
+ // For Library
+ //
+ if (this.getExterns(index).getType().equals(EnumerationData.EXTERNS_LIBRARY)) {
+ v.addElement(getExterns(index).getType());
+ String name = "";
+ String value = "";
+
+ name = EnumerationData.EXTERNS_CONSTRUCTOR;
+ value = this.getExterns(index).getName0();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_DESTRUCTOR;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName1()
+ + DataType.HTML_LINE_SEPARATOR;
+
+ v.addElement("<html>" + name + "<html>");
+ v.addElement("<html>" + value + "<html>");
+ return v;
+ }
+
+ //
+ // For Driver
+ //
+ if (this.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER)) {
+ v.addElement(getExterns(index).getType());
+ String name = "";
+ String value = "";
+
+ name = EnumerationData.EXTERNS_DRIVER_BINDING;
+ value = this.getExterns(index).getName0();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_COMPONENT_NAME;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName1();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_DRIVER_CONFIG;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName2();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_DRIVER_DIAG;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName3()
+ + DataType.HTML_LINE_SEPARATOR;
+
+ v.addElement("<html>" + name + "<html>");
+ v.addElement("<html>" + value + "<html>");
+ return v;
+ }
+
+ //
+ // For Call Back
+ //
+ if (this.getExterns(index).getType().equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ v.addElement(getExterns(index).getType());
+ String name = "";
+ String value = "";
+
+ name = EnumerationData.EXTERNS_VIRTUAL_ADDRESS_MAP_CALL_BACK;
+ value = this.getExterns(index).getName0();
+ name = name + DataType.HTML_LINE_SEPARATOR + EnumerationData.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK;
+ value = value + DataType.HTML_LINE_SEPARATOR + this.getExterns(index).getName1()
+ + DataType.HTML_LINE_SEPARATOR;
+
+ v.addElement("<html>" + name + "<html>");
+ v.addElement("<html>" + value + "<html>");
+ return v;
+ }
+
+ //
+ // Return a empty v
+ //
return v;
}
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java
index d885028..cc8a81a 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleExterns.java
@@ -29,7 +29,6 @@ import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import org.tianocore.ExternsDocument;
-import org.tianocore.PcdDriverTypes;
import org.tianocore.ExternsDocument.Externs;
import org.tianocore.ExternsDocument.Externs.Extern;
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;
@@ -184,8 +183,9 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
jTable = new JTable(model);
jTable.setRowHeight(20);
- model.addColumn("Name");
model.addColumn("Type");
+ model.addColumn("Name");
+ model.addColumn("Value");
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTable.getSelectionModel().addListSelectionListener(this);
@@ -195,10 +195,6 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
return jTable;
}
- public static void main(String[] args) {
-
- }
-
/**
This method initializes this
@@ -222,17 +218,6 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
if (this.externs != null) {
//
- // Get PcdIsDriver
- //
- if (this.externs.getPcdIsDriver() != null) {
- String arg0 = this.externs.getPcdIsDriver().toString();
- String arg1 = EnumerationData.EXTERNS_PCD_IS_DRIVER;
-
- id = new ExternsIdentification(arg0, arg1, null, null);
- vid.addExterns(id);
- }
-
- //
// Get specification
//
if (this.externs.getSpecificationList().size() > 0) {
@@ -240,7 +225,7 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
String arg0 = externs.getSpecificationList().get(index);
String arg1 = EnumerationData.EXTERNS_SPECIFICATION;
- id = new ExternsIdentification(arg0, arg1, null, null);
+ id = new ExternsIdentification(arg0, arg1);
vid.addExterns(id);
}
}
@@ -250,57 +235,63 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
//
if (this.externs.getExternList().size() > 0) {
for (int index = 0; index < this.externs.getExternList().size(); index++) {
- String arg0 = null;
- String arg1 = null;
- if (this.externs.getExternList().get(index).getModuleEntryPoint() != null) {
- arg0 = this.externs.getExternList().get(index).getModuleEntryPoint();
- arg1 = EnumerationData.EXTERNS_MODULE_ENTRY_POINT;
- }
- if (this.externs.getExternList().get(index).getModuleUnloadImage() != null) {
- arg0 = this.externs.getExternList().get(index).getModuleUnloadImage();
- arg1 = EnumerationData.EXTERNS_MODULE_UNLOAD_IMAGE;
- }
+ //
+ // Get common data
+ //
+ String featureFlag = externs.getExternList().get(index).getFeatureFlag();
+ Vector<String> arch = Tools
+ .convertListToVector(externs.getExternList().get(index).getSupArchList());
- if (this.externs.getExternList().get(index).getConstructor() != null) {
- arg0 = this.externs.getExternList().get(index).getConstructor();
- arg1 = EnumerationData.EXTERNS_CONSTRUCTOR;
+ //
+ // Get Image data
+ //
+ if (this.externs.getExternList().get(index).getModuleEntryPoint() != null
+ || this.externs.getExternList().get(index).getModuleUnloadImage() != null) {
+ String moduleEntryPoint = this.externs.getExternList().get(index).getModuleEntryPoint();
+ String moduleUnloadImage = this.externs.getExternList().get(index).getModuleUnloadImage();
+ String type = EnumerationData.EXTERNS_IMAGE;
+ id = new ExternsIdentification(moduleEntryPoint, moduleUnloadImage, type, featureFlag, arch);
}
- if (this.externs.getExternList().get(index).getDestructor() != null) {
- arg0 = this.externs.getExternList().get(index).getDestructor();
- arg1 = EnumerationData.EXTERNS_DESTRUCTOR;
+
+ //
+ // Get Library Data
+ //
+ if (this.externs.getExternList().get(index).getConstructor() != null
+ || this.externs.getExternList().get(index).getDestructor() != null) {
+ String constructor = this.externs.getExternList().get(index).getConstructor();
+ String destructor = this.externs.getExternList().get(index).getDestructor();
+ String type = EnumerationData.EXTERNS_LIBRARY;
+ id = new ExternsIdentification(constructor, destructor, type, featureFlag, arch);
}
+ //
+ // Get Driver Data
+ //
if (this.externs.getExternList().get(index).getDriverBinding() != null) {
- arg0 = this.externs.getExternList().get(index).getDriverBinding();
- arg1 = EnumerationData.EXTERNS_DRIVER_BINDING;
- }
- if (this.externs.getExternList().get(index).getComponentName() != null) {
- arg0 = this.externs.getExternList().get(index).getComponentName();
- arg1 = EnumerationData.EXTERNS_COMPONENT_NAME;
- }
- if (this.externs.getExternList().get(index).getDriverConfig() != null) {
- arg0 = this.externs.getExternList().get(index).getDriverConfig();
- arg1 = EnumerationData.EXTERNS_DRIVER_CONFIG;
- }
- if (this.externs.getExternList().get(index).getDriverDiag() != null) {
- arg0 = this.externs.getExternList().get(index).getDriverDiag();
- arg1 = EnumerationData.EXTERNS_DRIVER_DIAG;
+ String driverBinding = this.externs.getExternList().get(index).getDriverBinding();
+ String componentName = this.externs.getExternList().get(index).getComponentName();
+ String driverConfig = this.externs.getExternList().get(index).getDriverConfig();
+ String driverDiag = this.externs.getExternList().get(index).getDriverDiag();
+ String type = EnumerationData.EXTERNS_DRIVER;
+ id = new ExternsIdentification(driverBinding, componentName, driverConfig, driverDiag, type,
+ featureFlag, arch);
}
- if (this.externs.getExternList().get(index).getSetVirtualAddressMapCallBack() != null) {
- arg0 = this.externs.getExternList().get(index).getSetVirtualAddressMapCallBack();
- arg1 = EnumerationData.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK;
- }
- if (this.externs.getExternList().get(index).getExitBootServicesCallBack() != null) {
- arg0 = this.externs.getExternList().get(index).getExitBootServicesCallBack();
- arg1 = EnumerationData.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK;
+ //
+ // Get Call Back Data
+ //
+ if (this.externs.getExternList().get(index).getSetVirtualAddressMapCallBack() != null
+ || this.externs.getExternList().get(index).getExitBootServicesCallBack() != null) {
+ String virtualAddressMap = this.externs.getExternList().get(index)
+ .getSetVirtualAddressMapCallBack();
+ String exitBootServices = this.externs.getExternList().get(index).getExitBootServicesCallBack();
+ String type = EnumerationData.EXTERNS_CALL_BACK;
+ id = new ExternsIdentification(virtualAddressMap, exitBootServices, type, featureFlag, arch);
}
- String arg2 = externs.getExternList().get(index).getFeatureFlag();
- Vector<String> arg3 = Tools
- .convertListToVector(externs.getExternList().get(index).getSupArchList());
-
- id = new ExternsIdentification(arg0, arg1, arg2, arg3);
+ //
+ // Add id to vector
+ //
vid.addExterns(id);
}
}
@@ -391,7 +382,45 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
if (vid.size() > 0) {
for (int index = 0; index < vid.size(); index++) {
+ int line = 1;
+
+ //
+ // For Specification
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ line = 1;
+ }
+
+ //
+ // For Image
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_IMAGE)) {
+ line = 2;
+ }
+
+ //
+ // For Library
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_LIBRARY)) {
+ line = 2;
+ }
+
+ //
+ // For Driver
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER)) {
+ line = 4;
+ }
+
+ //
+ // For Call Back
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ line = 2;
+ }
+
model.addRow(vid.toStringVector(index));
+ jTable.setRowHeight(index, line * 18);
}
}
this.jTable.repaint();
@@ -439,107 +468,116 @@ public class ModuleExterns extends IInternalFrame implements ItemListener {
try {
int count = this.vid.size();
- this.externs = Externs.Factory.newInstance();
- // //
- // // Save PcdIsDriver first
- // //
- // if (!this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(DataType.EMPTY_SELECT_ITEM)) {
- // externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()
- // .toString()));
- // }
+ //
+ // Save pcd and flash map information first
+ //
+ Externs ex = Externs.Factory.newInstance();
+ if (this.externs.getPcdIsDriver() != null) {
+ ex.setPcdIsDriver(this.externs.getPcdIsDriver());
+ }
+ if (this.externs.getTianoR8FlashMapH()) {
+ ex.setTianoR8FlashMapH(this.externs.getTianoR8FlashMapH());
+ }
+ this.externs = ex;
+ //
+ // Save externs
+ //
if (count > 0) {
for (int index = 0; index < count; index++) {
//
- // Save Pcd Is Driver
- //
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(vid.getExterns(index).getName()));
- continue;
- }
-
- //
// Save specfication
//
if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
+ if (!isEmpty(vid.getExterns(index).getName0())) {
this.externs.addNewSpecification();
this.externs.setSpecificationArray(externs.getSpecificationList().size() - 1,
- vid.getExterns(index).getName());
+ vid.getExterns(index).getName0());
+ continue;
}
- } else {
- //
- // Save extern
- //
- Extern e = Extern.Factory.newInstance();
-
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_MODULE_ENTRY_POINT)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setModuleEntryPoint(vid.getExterns(index).getName());
+ }
+
+ Extern e = Extern.Factory.newInstance();
+ //
+ // Save image
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_IMAGE)) {
+ if (!isEmpty(vid.getExterns(index).getName0()) || !isEmpty(vid.getExterns(index).getName1())) {
+ e = Extern.Factory.newInstance();
+ if (!isEmpty(vid.getExterns(index).getName0())) {
+ e.setModuleEntryPoint(vid.getExterns(index).getName0());
}
- }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_MODULE_UNLOAD_IMAGE)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setModuleUnloadImage(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName1())) {
+ e.setModuleUnloadImage(vid.getExterns(index).getName1());
}
}
+ }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_CONSTRUCTOR)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setConstructor(vid.getExterns(index).getName());
+ //
+ // Save library
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_LIBRARY)) {
+ if (!isEmpty(vid.getExterns(index).getName0()) || !isEmpty(vid.getExterns(index).getName1())) {
+ e = Extern.Factory.newInstance();
+ if (!isEmpty(vid.getExterns(index).getName0())) {
+ e.setConstructor(vid.getExterns(index).getName0());
}
- }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DESTRUCTOR)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setDestructor(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName1())) {
+ e.setDestructor(vid.getExterns(index).getName1());
}
}
+ }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER_BINDING)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setDriverBinding(vid.getExterns(index).getName());
+ //
+ // Save call back
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ if (!isEmpty(vid.getExterns(index).getName0()) || !isEmpty(vid.getExterns(index).getName1())) {
+ e = Extern.Factory.newInstance();
+ if (!isEmpty(vid.getExterns(index).getName0())) {
+ e.setSetVirtualAddressMapCallBack(vid.getExterns(index).getName0());
}
- }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_COMPONENT_NAME)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setComponentName(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName1())) {
+ e.setExitBootServicesCallBack(vid.getExterns(index).getName1());
}
}
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER_CONFIG)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setDriverConfig(vid.getExterns(index).getName());
+ }
+
+ //
+ // Save driver
+ //
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER)) {
+ if (!isEmpty(vid.getExterns(index).getName0()) || !isEmpty(vid.getExterns(index).getName1())
+ || !isEmpty(vid.getExterns(index).getName2()) || !isEmpty(vid.getExterns(index).getName3())) {
+ e = Extern.Factory.newInstance();
+ if (!isEmpty(vid.getExterns(index).getName0())) {
+ e.setDriverBinding(vid.getExterns(index).getName0());
}
- }
- if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_DRIVER_DIAG)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setDriverDiag(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName1())) {
+ e.setComponentName(vid.getExterns(index).getName1());
}
- }
-
- if (vid.getExterns(index).getType()
- .equals(EnumerationData.EXTERNS_SET_VIRTUAL_ADDRESS_MAP_CALL_BACK)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setSetVirtualAddressMapCallBack(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName2())) {
+ e.setDriverConfig(vid.getExterns(index).getName2());
}
- }
- if (vid.getExterns(index).getType()
- .equals(EnumerationData.EXTERNS_EXIT_BOOT_SERVICES_CALL_BACK)) {
- if (!isEmpty(vid.getExterns(index).getName())) {
- e.setExitBootServicesCallBack(vid.getExterns(index).getName());
+ if (!isEmpty(vid.getExterns(index).getName3())) {
+ e.setDriverDiag(vid.getExterns(index).getName3());
}
}
+ }
- if (!isEmpty(vid.getExterns(index).getFeatureFlag())) {
- e.setFeatureFlag(vid.getExterns(index).getFeatureFlag());
- }
- if (vid.getExterns(index).getSupArchList() != null
- && vid.getExterns(index).getSupArchList().size() > 0) {
- e.setSupArchList(vid.getExterns(index).getSupArchList());
- }
-
- this.externs.addNewExtern();
- this.externs.setExternArray(this.externs.getExternList().size() - 1, e);
+ //
+ // Save common data
+ //
+ if (!isEmpty(vid.getExterns(index).getFeatureFlag())) {
+ e.setFeatureFlag(vid.getExterns(index).getFeatureFlag());
}
+ if (vid.getExterns(index).getSupArchList() != null
+ && vid.getExterns(index).getSupArchList().size() > 0) {
+ e.setSupArchList(vid.getExterns(index).getSupArchList());
+ }
+
+ this.externs.addNewExtern();
+ this.externs.setExternArray(this.externs.getExternList().size() - 1, e);
}
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
index 9cf0d38..70e2166 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
@@ -29,10 +29,12 @@ import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import org.tianocore.ExternsDocument;
import org.tianocore.ModuleDefinitionsDocument;
import org.tianocore.ModuleSurfaceAreaDocument;
import org.tianocore.ModuleTypeDef;
import org.tianocore.MsaHeaderDocument;
+import org.tianocore.PcdDriverTypes;
import org.tianocore.LicenseDocument.License;
import org.tianocore.frameworkwizard.common.DataType;
import org.tianocore.frameworkwizard.common.DataValidation;
@@ -58,9 +60,9 @@ public class MsaHeader extends IInternalFrame {
private static final long serialVersionUID = -8152099582923006900L;
private int dialogWidth = 500;
-
+
private int dialogHeight = 630;
-
+
//
//Define class members
//
@@ -152,8 +154,6 @@ public class MsaHeader extends IInternalFrame {
private StarLabel jStarLabel14 = null;
-// private StarLabel jStarLabel15 = null;
-
private JCheckBox jCheckBoxIa32 = null;
private JCheckBox jCheckBoxX64 = null;
@@ -165,7 +165,13 @@ public class MsaHeader extends IInternalFrame {
private JCheckBox jCheckBoxArm = null;
private JCheckBox jCheckBoxPpc = null;
-
+
+ private JComboBox jComboBoxPcdIsDriver = null;
+
+ private JCheckBox jCheckBoxPcd = null;
+
+ private JCheckBox jCheckBoxFlashMap = null;
+
//
// Not used for UI
//
@@ -175,6 +181,8 @@ public class MsaHeader extends IInternalFrame {
private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;
+ private ExternsDocument.Externs ex = null;
+
private OpeningModuleType omt = null;
private EnumerationData ed = new EnumerationData();
@@ -394,12 +402,11 @@ public class MsaHeader extends IInternalFrame {
private JTextField getJTextFieldSpecification() {
if (jTextFieldSpecification == null) {
jTextFieldSpecification = new JTextField();
-
+
jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(320, 20));
jTextFieldSpecification.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
jTextFieldSpecification.setBorder(null);
-
-
+
jTextFieldSpecification.setSize(new java.awt.Dimension(320, 20));
jTextFieldSpecification.setLocation(new java.awt.Point(2, dialogHeight - 30));
jTextFieldSpecification.setEditable(false);
@@ -623,6 +630,23 @@ public class MsaHeader extends IInternalFrame {
}
/**
+ * This method initializes jComboBoxPcdIsDriver
+ *
+ * @return javax.swing.JComboBox
+ */
+ private JComboBox getJComboBoxPcdIsDriver() {
+ if (jComboBoxPcdIsDriver == null) {
+ jComboBoxPcdIsDriver = new JComboBox();
+ jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(320, 20));
+ jComboBoxPcdIsDriver.setBounds(new java.awt.Rectangle(160, 530, 320, 20));
+ jComboBoxPcdIsDriver.addItemListener(this);
+ jComboBoxPcdIsDriver.setEnabled(false);
+ Tools.generateComboBoxByVector(jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());
+ }
+ return jComboBoxPcdIsDriver;
+ }
+
+ /**
This is the default constructor
**/
@@ -654,8 +678,14 @@ public class MsaHeader extends IInternalFrame {
md.setSupportedArchitectures(ed.getVSupportedArchitectures());
msa.setModuleDefinitions(md);
}
+
+ //
+ // Init items of Header, Definitions and Externs
+ //
init(msa.getMsaHeader());
init(msa.getModuleDefinitions());
+ init(msa.getExterns());
+
this.setVisible(true);
this.setViewMode(false);
}
@@ -768,6 +798,25 @@ public class MsaHeader extends IInternalFrame {
}
/**
+ This method initializes this
+ Fill values to all fields if these values are not empty
+
+ @param inEx The input data of ExternsDocument.Externs
+
+ **/
+ private void init(ExternsDocument.Externs inEx) {
+ if (inEx != null) {
+ this.ex = inEx;
+ if (ex.getPcdIsDriver() != null) {
+ this.jCheckBoxPcd.setSelected(true);
+ this.jComboBoxPcdIsDriver.setEnabled(true);
+ this.jComboBoxPcdIsDriver.setSelectedItem(ex.getPcdIsDriver());
+ }
+ this.jCheckBoxFlashMap.setSelected(ex.getTianoR8FlashMapH());
+ }
+ }
+
+ /**
This method initializes jContentPane
@return javax.swing.JPanel jContentPane
@@ -827,7 +876,7 @@ public class MsaHeader extends IInternalFrame {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.setPreferredSize(new java.awt.Dimension(dialogWidth - 10, dialogHeight - 10));
-
+
jContentPane.addFocusListener(this);
jContentPane.add(jLabelBaseName, null);
@@ -840,7 +889,7 @@ public class MsaHeader extends IInternalFrame {
jContentPane.add(jLabelLicense, null);
jContentPane.add(jLabelCopyright, null);
jContentPane.add(jLabelDescription, null);
-// jContentPane.add(jLabelSpecification, null);
+ // jContentPane.add(jLabelSpecification, null);
jContentPane.add(getJTextFieldSpecification(), null);
jContentPane.add(getJButtonOk(), null);
jContentPane.add(getJButtonCancel(), null);
@@ -880,8 +929,8 @@ public class MsaHeader extends IInternalFrame {
jStarLabel13.setLocation(new java.awt.Point(0, 480));
jStarLabel14 = new StarLabel();
jStarLabel14.setLocation(new java.awt.Point(0, 505));
-// jStarLabel15 = new StarLabel();
-// jStarLabel15.setLocation(new java.awt.Point(0, 530));
+ // jStarLabel15 = new StarLabel();
+ // jStarLabel15.setLocation(new java.awt.Point(0, 530));
jContentPane.add(jStarLabel1, null);
jContentPane.add(jStarLabel2, null);
@@ -894,7 +943,7 @@ public class MsaHeader extends IInternalFrame {
jContentPane.add(jStarLabel12, null);
jContentPane.add(jStarLabel13, null);
jContentPane.add(jStarLabel14, null);
-// jContentPane.add(jStarLabel15, null);
+ // jContentPane.add(jStarLabel15, null);
jContentPane.add(getJScrollPaneCopyright(), null);
jContentPane.add(getJCheckBoxIa32(), null);
@@ -903,6 +952,10 @@ public class MsaHeader extends IInternalFrame {
jContentPane.add(getJCheckBoxEbc(), null);
jContentPane.add(getJCheckBoxArm(), null);
jContentPane.add(getJCheckBoxPpc(), null);
+
+ jContentPane.add(getJCheckBoxPcd(), null);
+ jContentPane.add(getJComboBoxPcdIsDriver(), null);
+ jContentPane.add(getJCheckBoxFlashMap(), null);
}
return jContentPane;
}
@@ -923,14 +976,20 @@ public class MsaHeader extends IInternalFrame {
this.setEdited(true);
this.dispose();
}
+
if (arg0.getSource() == jButtonCancel) {
this.setEdited(false);
}
+
if (arg0.getSource() == jButtonGenerateGuid) {
jTextFieldGuid.setText(Tools.generateUuidString());
jTextFieldGuid.requestFocus();
jButtonGenerateGuid.requestFocus();
}
+
+ if (arg0.getSource() == this.jCheckBoxPcd) {
+ this.jComboBoxPcdIsDriver.setEnabled(this.jCheckBoxPcd.isSelected());
+ }
}
/**
@@ -997,7 +1056,8 @@ public class MsaHeader extends IInternalFrame {
return false;
}
if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {
- Log.wrn("Update Msa Header", "Incorrect data type for Abstract, is should be a sentence describing the module.");
+ Log.wrn("Update Msa Header",
+ "Incorrect data type for Abstract, is should be a sentence describing the module.");
//this.jTextFieldAbstract.requestFocus();
return false;
}
@@ -1119,9 +1179,10 @@ public class MsaHeader extends IInternalFrame {
Tools.resizeComponentWidth(this.jComboBoxModuleType, intCurrentWidth, intPreferredWidth);
Tools.resizeComponentWidth(this.jComboBoxBinaryModule, intCurrentWidth, intPreferredWidth);
Tools.resizeComponentWidth(this.jTextFieldOutputFileBasename, intCurrentWidth, intPreferredWidth);
+ Tools.resizeComponentWidth(this.jComboBoxPcdIsDriver, intCurrentWidth, intPreferredWidth);
Tools.relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,
- DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);
+ DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);
}
public void focusLost(FocusEvent arg0) {
@@ -1347,6 +1408,92 @@ public class MsaHeader extends IInternalFrame {
}
}
+ //
+ // Check Pcd is Driver
+ //
+ if (arg0.getSource() == this.jCheckBoxPcd) {
+ if ((this.ex == null) && this.jCheckBoxPcd.isSelected()) {
+ this.ex = ExternsDocument.Externs.Factory.newInstance();
+ this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()
+ .toString()));
+ this.msa.setExterns(this.ex);
+ }
+
+ if ((this.ex != null) && (this.ex.getPcdIsDriver() == null) && this.jCheckBoxPcd.isSelected()) {
+ this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()
+ .toString()));
+ this.msa.setExterns(this.ex);
+ }
+
+ if ((this.ex != null) && (this.ex.getPcdIsDriver() != null)) {
+ if (this.jCheckBoxPcd.isSelected()
+ && !this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(
+ this.ex.getPcdIsDriver()
+ .toString())) {
+ this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()
+ .toString()));
+ this.msa.setExterns(this.ex);
+ }
+ if (!this.jCheckBoxPcd.isSelected()) {
+ ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();
+ if (this.ex.getExternList() != null) {
+ for (int index = 0; index < this.ex.getExternList().size(); index++) {
+ newEx.addNewExtern();
+ newEx.setExternArray(index, this.ex.getExternArray(index));
+ }
+ }
+ if (this.ex.getSpecificationList() != null) {
+ for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {
+ newEx.addNewSpecification();
+ newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));
+ }
+ }
+ if (this.ex.getTianoR8FlashMapH()) {
+ newEx.setTianoR8FlashMapH(this.ex.getTianoR8FlashMapH());
+ }
+ this.ex = newEx;
+ this.msa.setExterns(this.ex);
+ }
+ }
+ }
+
+ //
+ // Check Flash Map
+ //
+ if (arg0.getSource() == this.jCheckBoxFlashMap) {
+ if ((this.ex == null) && this.jCheckBoxFlashMap.isSelected()) {
+ this.ex = ExternsDocument.Externs.Factory.newInstance();
+ this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());
+ this.msa.setExterns(this.ex);
+ }
+
+ if ((this.ex != null) && this.jCheckBoxFlashMap.isSelected()) {
+ this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());
+ this.msa.setExterns(this.ex);
+ }
+
+ if ((this.ex != null) && !this.jCheckBoxFlashMap.isSelected()) {
+ ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();
+ if (this.ex.getExternList() != null) {
+ for (int index = 0; index < this.ex.getExternList().size(); index++) {
+ newEx.addNewExtern();
+ newEx.setExternArray(index, this.ex.getExternArray(index));
+ }
+ }
+ if (this.ex.getSpecificationList() != null) {
+ for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {
+ newEx.addNewSpecification();
+ newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));
+ }
+ }
+ if (this.ex.getPcdIsDriver() != null) {
+ newEx.setPcdIsDriver(this.ex.getPcdIsDriver());
+ }
+ this.ex = newEx;
+ this.msa.setExterns(this.ex);
+ }
+ }
+
this.save();
}
@@ -1436,4 +1583,35 @@ public class MsaHeader extends IInternalFrame {
}
}
}
+
+ /**
+ * This method initializes jCheckBoxPcd
+ *
+ * @return javax.swing.JCheckBox
+ */
+ private JCheckBox getJCheckBoxPcd() {
+ if (jCheckBoxPcd == null) {
+ jCheckBoxPcd = new JCheckBox();
+ jCheckBoxPcd.setBounds(new java.awt.Rectangle(0, 530, 140, 20));
+ jCheckBoxPcd.setText("Is this a PCD Driver?");
+ jCheckBoxPcd.addFocusListener(this);
+ jCheckBoxPcd.addActionListener(this);
+ }
+ return jCheckBoxPcd;
+ }
+
+ /**
+ * This method initializes jCheckBoxFlashMap
+ *
+ * @return javax.swing.JCheckBox
+ */
+ private JCheckBox getJCheckBoxFlashMap() {
+ if (jCheckBoxFlashMap == null) {
+ jCheckBoxFlashMap = new JCheckBox();
+ jCheckBoxFlashMap.setBounds(new java.awt.Rectangle(0, 555, 480, 20));
+ jCheckBoxFlashMap.setText("Are you using a legacy FlashMap header file?");
+ jCheckBoxFlashMap.addFocusListener(this);
+ }
+ return jCheckBoxFlashMap;
+ }
}
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java
index b53cbf7..6ff84ff 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/ExternsDlg.java
@@ -34,6 +34,7 @@ import org.tianocore.frameworkwizard.common.Tools;
import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;
import org.tianocore.frameworkwizard.common.ui.IDialog;
import org.tianocore.frameworkwizard.common.ui.IFrame;
+import org.tianocore.frameworkwizard.common.ui.StarLabel;
import org.tianocore.frameworkwizard.module.Identifications.Externs.ExternsIdentification;
/**
@@ -60,11 +61,9 @@ public class ExternsDlg extends IDialog implements ItemListener {
private JScrollPane jScrollPane = null;
- private JComboBox jComboBoxPcdIsDriver = null;
+ private JLabel jLabelSpecification = null;
- private JLabel jLabelC_Name = null;
-
- private JTextField jTextFieldC_Name = null;
+ private JTextField jTextFieldSpecification = null;
private JLabel jLabelFeatureFlag = null;
@@ -78,6 +77,58 @@ public class ExternsDlg extends IDialog implements ItemListener {
private JButton jButtonCancel = null;
+ private StarLabel jStarLabel1 = null;
+
+ private JPanel jPanelSpecification = null;
+
+ private JPanel jPanelImage = null;
+
+ private JPanel jPanelDriver = null;
+
+ private JPanel jPanelLibrary = null;
+
+ private JPanel jPanelCallBack = null;
+
+ private JLabel jLabelModuleEntryPoint = null;
+
+ private JTextField jTextFieldModuleEntryPoint = null;
+
+ private JLabel jLabelModuleUnloadImage = null;
+
+ private JTextField jTextFieldModuleUnloadImage = null;
+
+ private JLabel jLabelDriverBinding = null;
+
+ private JTextField jTextFieldDriverBinding = null;
+
+ private JLabel jLabelComponentName = null;
+
+ private JTextField jTextFieldComponentName = null;
+
+ private JLabel jLabelDriverConfig = null;
+
+ private JTextField jTextFieldDriverConfig = null;
+
+ private JLabel jLabelDriverDiagnostic = null;
+
+ private JTextField jTextFieldDriverDiagnostic = null;
+
+ private JLabel jLabelConstructor = null;
+
+ private JTextField jTextFieldConstructor = null;
+
+ private JLabel jLabelDestructor = null;
+
+ private JTextField jTextFieldDestructor = null;
+
+ private JLabel jLabelVirtualAddressMap = null;
+
+ private JTextField jTextFieldVirtualAddressMap = null;
+
+ private JLabel jLabelExitBootServices = null;
+
+ private JTextField jTextFieldExitBootServices = null;
+
//
// Not used by UI
//
@@ -115,34 +166,18 @@ public class ExternsDlg extends IDialog implements ItemListener {
}
/**
- * This method initializes jComboBoxPcdIsDriver
- *
- * @return javax.swing.JComboBox
- */
- private JComboBox getJComboBoxPcdIsDriver() {
- if (jComboBoxPcdIsDriver == null) {
- jComboBoxPcdIsDriver = new JComboBox();
- jComboBoxPcdIsDriver.setLocation(new java.awt.Point(168, 37));
- jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(320, 20));
- jComboBoxPcdIsDriver.setSize(new java.awt.Dimension(320, 20));
- jComboBoxPcdIsDriver.addItemListener(this);
- }
- return jComboBoxPcdIsDriver;
- }
-
- /**
This method initializes jTextFieldC_Name
@return javax.swing.JTextField
**/
- private JTextField getJTextFieldC_Name() {
- if (jTextFieldC_Name == null) {
- jTextFieldC_Name = new JTextField();
- jTextFieldC_Name.setBounds(new java.awt.Rectangle(168, 37, 320, 20));
- jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(320, 20));
+ private JTextField getJTextFieldSpecification() {
+ if (jTextFieldSpecification == null) {
+ jTextFieldSpecification = new JTextField();
+ jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(320, 20));
+ jTextFieldSpecification.setBounds(new java.awt.Rectangle(168, 0, 320, 20));
}
- return jTextFieldC_Name;
+ return jTextFieldSpecification;
}
/**
@@ -170,7 +205,7 @@ public class ExternsDlg extends IDialog implements ItemListener {
private JButton getJButtonOk() {
if (jButtonOk == null) {
jButtonOk = new JButton();
- jButtonOk.setBounds(new java.awt.Rectangle(300, 122, 90, 20));
+ jButtonOk.setBounds(new java.awt.Rectangle(300, 187, 90, 20));
jButtonOk.setText("Ok");
jButtonOk.addActionListener(this);
}
@@ -186,13 +221,273 @@ public class ExternsDlg extends IDialog implements ItemListener {
private JButton getJButtonCancel() {
if (jButtonCancel == null) {
jButtonCancel = new JButton();
- jButtonCancel.setBounds(new java.awt.Rectangle(400, 122, 90, 20));
+ jButtonCancel.setBounds(new java.awt.Rectangle(400, 187, 90, 20));
jButtonCancel.setText("Cancel");
jButtonCancel.addActionListener(this);
}
return jButtonCancel;
}
+ /**
+ * This method initializes jPanelSpecification
+ *
+ * @return javax.swing.JPanel
+ */
+ private JPanel getJPanelSpecification() {
+ if (jPanelSpecification == null) {
+ jPanelSpecification = new JPanel();
+ jPanelSpecification.setBounds(new java.awt.Rectangle(0, 37, 505, 20));
+ jPanelSpecification.setLayout(null);
+
+ jLabelSpecification = new JLabel();
+ jLabelSpecification.setBounds(new java.awt.Rectangle(12, 0, 140, 20));
+ jLabelSpecification.setText("Specification Name");
+
+ jPanelSpecification.add(jLabelSpecification, null);
+ jPanelSpecification.add(getJTextFieldSpecification(), null);
+ }
+ return jPanelSpecification;
+ }
+
+ /**
+ * This method initializes jPanelImage
+ *
+ * @return javax.swing.JPanel
+ */
+ private JPanel getJPanelImage() {
+ if (jPanelImage == null) {
+ jLabelModuleUnloadImage = new JLabel();
+ jLabelModuleUnloadImage.setBounds(new java.awt.Rectangle(12, 25, 140, 20));
+ jLabelModuleUnloadImage.setText("Module Unload Image");
+ jLabelModuleEntryPoint = new JLabel();
+ jLabelModuleEntryPoint.setBounds(new java.awt.Rectangle(12, 0, 140, 20));
+ jLabelModuleEntryPoint.setText("Module Entry Point");
+ jPanelImage = new JPanel();
+ jPanelImage.setBounds(new java.awt.Rectangle(0, 37, 505, 45));
+ jPanelImage.setLayout(null);
+ jPanelImage.add(jLabelModuleEntryPoint, null);
+ jPanelImage.add(getJTextFieldModuleEntryPoint(), null);
+ jPanelImage.add(jLabelModuleUnloadImage, null);
+ jPanelImage.add(getJTextFieldModuleUnloadImage(), null);
+ }
+ return jPanelImage;
+ }
+
+ /**
+ * This method initializes jPanelDriver
+ *
+ * @return javax.swing.JPanel
+ */
+ private JPanel getJPanelDriver() {
+ if (jPanelDriver == null) {
+ jStarLabel1 = new StarLabel();
+ jStarLabel1.setLocation(new java.awt.Point(0, 0));
+ jLabelDriverDiagnostic = new JLabel();
+ jLabelDriverDiagnostic.setBounds(new java.awt.Rectangle(12, 75, 140, 20));
+ jLabelDriverDiagnostic.setText("Driver Diagnostic");
+ jLabelDriverConfig = new JLabel();
+ jLabelDriverConfig.setBounds(new java.awt.Rectangle(12, 50, 140, 20));
+ jLabelDriverConfig.setText("Driver Config");
+ jLabelComponentName = new JLabel();
+ jLabelComponentName.setBounds(new java.awt.Rectangle(12, 25, 140, 20));
+ jLabelComponentName.setText("Component Name");
+ jLabelDriverBinding = new JLabel();
+ jLabelDriverBinding.setBounds(new java.awt.Rectangle(12, 0, 140, 20));
+ jLabelDriverBinding.setText("Driver Binding");
+ jPanelDriver = new JPanel();
+ jPanelDriver.setBounds(new java.awt.Rectangle(0, 37, 505, 95));
+ jPanelDriver.setLayout(null);
+ jPanelDriver.add(jStarLabel1, null);
+ jPanelDriver.add(jLabelDriverBinding, null);
+ jPanelDriver.add(getJTextFieldDriverBinding(), null);
+ jPanelDriver.add(jLabelComponentName, null);
+ jPanelDriver.add(getJTextFieldComponentName(), null);
+ jPanelDriver.add(jLabelDriverConfig, null);
+ jPanelDriver.add(getJTextFieldDriverConfig(), null);
+ jPanelDriver.add(jLabelDriverDiagnostic, null);
+ jPanelDriver.add(getJTextFieldDriverDiagnostic(), null);
+ }
+ return jPanelDriver;
+ }
+
+ /**
+ * This method initializes jPanelLibrary
+ *
+ * @return javax.swing.JPanel
+ */
+ private JPanel getJPanelLibrary() {
+ if (jPanelLibrary == null) {
+ jLabelDestructor = new JLabel();
+ jLabelDestructor.setBounds(new java.awt.Rectangle(12, 25, 140, 20));
+ jLabelDestructor.setText("Destructor");
+ jLabelConstructor = new JLabel();
+ jLabelConstructor.setBounds(new java.awt.Rectangle(12, 0, 140, 20));
+ jLabelConstructor.setText("Constructor");
+ jPanelLibrary = new JPanel();
+ jPanelLibrary.setBounds(new java.awt.Rectangle(0, 37, 505, 45));
+ jPanelLibrary.setLayout(null);
+ jPanelLibrary.add(jLabelConstructor, null);
+ jPanelLibrary.add(getJTextFieldConstructor(), null);
+ jPanelLibrary.add(jLabelDestructor, null);
+ jPanelLibrary.add(getJTextFieldDestructor(), null);
+ }
+ return jPanelLibrary;
+ }
+
+ /**
+ * This method initializes jPanelCallBack
+ *
+ * @return javax.swing.JPanel
+ */
+ private JPanel getJPanelCallBack() {
+ if (jPanelCallBack == null) {
+ jLabelExitBootServices = new JLabel();
+ jLabelExitBootServices.setBounds(new java.awt.Rectangle(12, 25, 140, 20));
+ jLabelExitBootServices.setText("Exit Boot Services");
+ jLabelVirtualAddressMap = new JLabel();
+ jLabelVirtualAddressMap.setBounds(new java.awt.Rectangle(12, 0, 140, 20));
+ jLabelVirtualAddressMap.setText("Virtual Address Map");
+ jPanelCallBack = new JPanel();
+ jPanelCallBack.setBounds(new java.awt.Rectangle(0, 37, 505, 45));
+ jPanelCallBack.setLayout(null);
+ jPanelCallBack.add(jLabelVirtualAddressMap, null);
+ jPanelCallBack.add(getJTextFieldVirtualAddressMap(), null);
+ jPanelCallBack.add(jLabelExitBootServices, null);
+ jPanelCallBack.add(getJTextFieldExitBootServices(), null);
+ }
+ return jPanelCallBack;
+ }
+
+ /**
+ * This method initializes jTextFieldModuleEntryPoint
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldModuleEntryPoint() {
+ if (jTextFieldModuleEntryPoint == null) {
+ jTextFieldModuleEntryPoint = new JTextField();
+ jTextFieldModuleEntryPoint.setBounds(new java.awt.Rectangle(168, 0, 320, 20));
+ }
+ return jTextFieldModuleEntryPoint;
+ }
+
+ /**
+ * This method initializes jTextFieldModuleUnloadImage
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldModuleUnloadImage() {
+ if (jTextFieldModuleUnloadImage == null) {
+ jTextFieldModuleUnloadImage = new JTextField();
+ jTextFieldModuleUnloadImage.setBounds(new java.awt.Rectangle(168, 25, 320, 20));
+ }
+ return jTextFieldModuleUnloadImage;
+ }
+
+ /**
+ * This method initializes jTextFieldDriverBinding
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldDriverBinding() {
+ if (jTextFieldDriverBinding == null) {
+ jTextFieldDriverBinding = new JTextField();
+ jTextFieldDriverBinding.setBounds(new java.awt.Rectangle(168, 0, 320, 20));
+ }
+ return jTextFieldDriverBinding;
+ }
+
+ /**
+ * This method initializes jTextFieldComponentName
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldComponentName() {
+ if (jTextFieldComponentName == null) {
+ jTextFieldComponentName = new JTextField();
+ jTextFieldComponentName.setBounds(new java.awt.Rectangle(168, 25, 320, 20));
+ }
+ return jTextFieldComponentName;
+ }
+
+ /**
+ * This method initializes jTextFieldDriverConfig
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldDriverConfig() {
+ if (jTextFieldDriverConfig == null) {
+ jTextFieldDriverConfig = new JTextField();
+ jTextFieldDriverConfig.setBounds(new java.awt.Rectangle(168, 50, 320, 20));
+ }
+ return jTextFieldDriverConfig;
+ }
+
+ /**
+ * This method initializes jTextFieldDriverDiagnostic
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldDriverDiagnostic() {
+ if (jTextFieldDriverDiagnostic == null) {
+ jTextFieldDriverDiagnostic = new JTextField();
+ jTextFieldDriverDiagnostic.setBounds(new java.awt.Rectangle(168, 75, 320, 20));
+ }
+ return jTextFieldDriverDiagnostic;
+ }
+
+ /**
+ * This method initializes jTextFieldConstructor
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldConstructor() {
+ if (jTextFieldConstructor == null) {
+ jTextFieldConstructor = new JTextField();
+ jTextFieldConstructor.setBounds(new java.awt.Rectangle(168, 0, 320, 20));
+ }
+ return jTextFieldConstructor;
+ }
+
+ /**
+ * This method initializes jTextFieldDestructor
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldDestructor() {
+ if (jTextFieldDestructor == null) {
+ jTextFieldDestructor = new JTextField();
+ jTextFieldDestructor.setBounds(new java.awt.Rectangle(168, 25, 320, 20));
+ }
+ return jTextFieldDestructor;
+ }
+
+ /**
+ * This method initializes jTextFieldVirtualAddressMap
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldVirtualAddressMap() {
+ if (jTextFieldVirtualAddressMap == null) {
+ jTextFieldVirtualAddressMap = new JTextField();
+ jTextFieldVirtualAddressMap.setBounds(new java.awt.Rectangle(168, 0, 320, 20));
+ }
+ return jTextFieldVirtualAddressMap;
+ }
+
+ /**
+ * This method initializes jTextFieldExitBootServices
+ *
+ * @return javax.swing.JTextField
+ */
+ private JTextField getJTextFieldExitBootServices() {
+ if (jTextFieldExitBootServices == null) {
+ jTextFieldExitBootServices = new JTextField();
+ jTextFieldExitBootServices.setBounds(new java.awt.Rectangle(168, 25, 320, 20));
+ }
+ return jTextFieldExitBootServices;
+ }
+
public static void main(String[] args) {
}
@@ -202,7 +497,7 @@ public class ExternsDlg extends IDialog implements ItemListener {
**/
private void init() {
- this.setSize(515, 200);
+ this.setSize(515, 250);
this.setContentPane(getJScrollPane());
this.setTitle("Externs");
initFrame();
@@ -221,14 +516,56 @@ public class ExternsDlg extends IDialog implements ItemListener {
this.id = inExternsId;
if (this.id != null) {
- if (id.getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- this.jComboBoxPcdIsDriver.setSelectedItem(id.getName());
- } else {
- this.jTextFieldC_Name.setText(id.getName());
- }
- this.jComboBoxType.setSelectedItem(id.getType());
+ String type = id.getType();
+ //
+ // Filter the type to lock down the type
+ //
+ this.jComboBoxType.removeAllItems();
+ this.jComboBoxType.addItem(type);
+
this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());
this.jArchCheckBox.setSelectedItems(id.getSupArchList());
+
+ //
+ // Init specification
+ //
+ if (type.equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ this.jTextFieldSpecification.setText(id.getName0());
+ }
+
+ //
+ // Init image
+ //
+ if (type.equals(EnumerationData.EXTERNS_IMAGE)) {
+ this.jTextFieldModuleEntryPoint.setText(id.getName0());
+ this.jTextFieldModuleUnloadImage.setText(id.getName1());
+ }
+
+ //
+ // Init library
+ //
+ if (type.equals(EnumerationData.EXTERNS_LIBRARY)) {
+ this.jTextFieldConstructor.setText(id.getName0());
+ this.jTextFieldDestructor.setText(id.getName1());
+ }
+
+ //
+ // Init driver
+ //
+ if (type.equals(EnumerationData.EXTERNS_DRIVER)) {
+ this.jTextFieldDriverBinding.setText(id.getName0());
+ this.jTextFieldComponentName.setText(id.getName1());
+ this.jTextFieldDriverConfig.setText(id.getName2());
+ this.jTextFieldDriverDiagnostic.setText(id.getName3());
+ }
+
+ //
+ // Init library
+ //
+ if (type.equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ this.jTextFieldVirtualAddressMap.setText(id.getName0());
+ this.jTextFieldExitBootServices.setText(id.getName1());
+ }
}
}
@@ -255,23 +592,21 @@ public class ExternsDlg extends IDialog implements ItemListener {
jArchCheckBox = new ArchCheckBox();
jArchCheckBox.setBounds(new java.awt.Rectangle(168, 62, 320, 20));
jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));
- jLabelC_Name = new JLabel();
- jLabelC_Name.setBounds(new java.awt.Rectangle(12, 37, 140, 20));
- jLabelC_Name.setText("Enter Value");
+
jLabelName = new JLabel();
jLabelName.setText("Choose Extern Type");
- jLabelName.setBounds(new java.awt.Rectangle(12, 12, 168, 20));
+ jLabelName.setBounds(new java.awt.Rectangle(12, 12, 155, 20));
jLabelArch = new JLabel();
- jLabelArch.setBounds(new java.awt.Rectangle(12, 62, 168, 20));
+ jLabelArch.setBounds(new java.awt.Rectangle(12, 62, 155, 20));
jLabelArch.setText("Supported Architectures");
jLabelFeatureFlag = new JLabel();
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 87, 168, 20));
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 87, 155, 20));
jLabelFeatureFlag.setText("Feature Flag Expression");
jLabelFeatureFlag.setEnabled(false);
jContentPane = new JPanel();
jContentPane.setLayout(null);
- jContentPane.setPreferredSize(new java.awt.Dimension(505, 155));
+ jContentPane.setPreferredSize(new java.awt.Dimension(505, 200));
jContentPane.add(jLabelName, null);
jContentPane.add(getJComboBoxType(), null);
@@ -279,12 +614,15 @@ public class ExternsDlg extends IDialog implements ItemListener {
jContentPane.add(jLabelArch, null);
jContentPane.add(getJTextFieldFeatureFlag(), null);
- jContentPane.add(getJComboBoxPcdIsDriver(), null);
- jContentPane.add(jLabelC_Name, null);
- jContentPane.add(getJTextFieldC_Name(), null);
jContentPane.add(jArchCheckBox, null);
jContentPane.add(getJButtonOk(), null);
jContentPane.add(getJButtonCancel(), null);
+
+ jContentPane.add(getJPanelSpecification(), null);
+ jContentPane.add(getJPanelImage(), null);
+ jContentPane.add(getJPanelDriver(), null);
+ jContentPane.add(getJPanelLibrary(), null);
+ jContentPane.add(getJPanelCallBack(), null);
}
return jContentPane;
}
@@ -295,7 +633,11 @@ public class ExternsDlg extends IDialog implements ItemListener {
**/
private void initFrame() {
Tools.generateComboBoxByVector(this.jComboBoxType, ed.getVExternTypes());
- Tools.generateComboBoxByVector(this.jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());
+ this.jPanelSpecification.setVisible(true);
+ this.jPanelImage.setVisible(false);
+ this.jPanelLibrary.setVisible(false);
+ this.jPanelDriver.setVisible(false);
+ this.jPanelCallBack.setVisible(false);
}
/* (non-Javadoc)
@@ -307,7 +649,7 @@ public class ExternsDlg extends IDialog implements ItemListener {
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == jButtonOk) {
if (checkAdd()) {
- getCurrentExterns();
+ this.getCurrentExterns();
this.returnType = DataType.RETURN_TYPE_OK;
this.setVisible(false);
}
@@ -332,43 +674,132 @@ public class ExternsDlg extends IDialog implements ItemListener {
//
//
- // When and only When type is not "Pcd Is Driver"
+ // Check specification
//
- if (!this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ if (isEmpty(this.jTextFieldSpecification.getText())) {
+ Log.wrn("Update Externs", "Please type specification's name");
+ return false;
+ }
+ if (!DataValidation.isSentence(this.jTextFieldSpecification.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Specification");
+ return false;
+ }
+
//
- // Check CName
+ // No need to check feature flag, return true directly here.
//
- if (isEmpty(this.jTextFieldC_Name.getText())) {
- Log.wrn("Update Externs", "Value couldn't be empty");
+ return true;
+ }
+
+ //
+ // Check image
+ //
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_IMAGE)) {
+ if (isEmpty(this.jTextFieldModuleEntryPoint.getText())
+ && isEmpty(this.jTextFieldModuleUnloadImage.getText())) {
+ Log.wrn("Update Externs", "At least one of ModuleEntryPoint or ModuleUnloadImage should have a value");
return false;
}
+ if (!isEmpty(this.jTextFieldModuleEntryPoint.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldModuleEntryPoint.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Module Entry Point");
+ return false;
+ }
+ }
+ if (!isEmpty(this.jTextFieldModuleUnloadImage.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldModuleUnloadImage.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Module Unload Image");
+ return false;
+ }
+ }
+ }
- if (!isEmpty(this.jTextFieldC_Name.getText())) {
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
- if (!DataValidation.isSentence(this.jTextFieldC_Name.getText())) {
- Log.wrn("Update Externs", "Incorrect data type for Specification");
- return false;
- }
- } else {
- if (!DataValidation.isC_NameType(this.jTextFieldC_Name.getText())) {
- Log.wrn("Update Externs", "Incorrect data type for C Name");
- return false;
- }
+ //
+ // Check library
+ //
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_LIBRARY)) {
+ if (isEmpty(this.jTextFieldConstructor.getText()) && isEmpty(this.jTextFieldDestructor.getText())) {
+ Log.wrn("Update Externs", "At least one of Constructor or Destructor should have a value");
+ return false;
+ }
+ if (!isEmpty(this.jTextFieldConstructor.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldConstructor.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Constructor");
+ return false;
}
}
+ if (!isEmpty(this.jTextFieldDestructor.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldDestructor.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Destructor");
+ return false;
+ }
+ }
+ }
- //
- // Check FeatureFlag
- //
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {
- Log.wrn("Update Externs", "Incorrect data type for Feature Flag");
+ //
+ // Check driver
+ //
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_DRIVER)) {
+ if (isEmpty(this.jTextFieldDriverBinding.getText())) {
+ Log.wrn("Update Externs", "DriverBinding must have a value");
+ return false;
+ }
+ if (!isEmpty(this.jTextFieldDriverBinding.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldDriverBinding.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for DriverBinding");
+ return false;
+ }
+ }
+ if (!isEmpty(this.jTextFieldComponentName.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldComponentName.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for ComponentName");
+ return false;
+ }
+ }
+ if (!isEmpty(this.jTextFieldDriverConfig.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldDriverConfig.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for DriverConfig");
+ return false;
+ }
+ }
+ if (!isEmpty(this.jTextFieldDriverDiagnostic.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldDriverDiagnostic.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for DriverDiagnostic");
return false;
}
}
- } else {
- if (this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(DataType.EMPTY_SELECT_ITEM)) {
- Log.wrn("Update Externs", "You must select one PCD DRIVER type");
+ }
+
+ //
+ // Check call back
+ //
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ if (isEmpty(this.jTextFieldVirtualAddressMap.getText())
+ && isEmpty(this.jTextFieldExitBootServices.getText())) {
+ Log.wrn("Update Externs", "At least one of VirtualAddressMap or ExitBootServices should have a value");
+ return false;
+ }
+ if (!isEmpty(this.jTextFieldVirtualAddressMap.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldVirtualAddressMap.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Virtual Address Map");
+ return false;
+ }
+ }
+ if (!isEmpty(this.jTextFieldExitBootServices.getText())) {
+ if (!DataValidation.isC_NameType(this.jTextFieldExitBootServices.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Exit Boot Services");
+ return false;
+ }
+ }
+ }
+
+ //
+ // Check FeatureFlag
+ //
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {
+ Log.wrn("Update Externs", "Incorrect data type for Feature Flag");
return false;
}
}
@@ -378,17 +809,45 @@ public class ExternsDlg extends IDialog implements ItemListener {
private ExternsIdentification getCurrentExterns() {
String arg0 = "";
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- arg0 = this.jComboBoxPcdIsDriver.getSelectedItem().toString();
- } else {
- arg0 = this.jTextFieldC_Name.getText();
+ String arg1 = "";
+ String arg2 = "";
+ String arg3 = "";
+
+ String type = this.jComboBoxType.getSelectedItem().toString();
+ String featureFlag = this.jTextFieldFeatureFlag.getText();
+ Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();
+
+ if (type.equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ arg0 = this.jTextFieldSpecification.getText();
+ id = new ExternsIdentification(arg0, type);
}
- String arg1 = this.jComboBoxType.getSelectedItem().toString();
- String arg2 = this.jTextFieldFeatureFlag.getText();
- Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();
+ if (type.equals(EnumerationData.EXTERNS_IMAGE)) {
+ arg0 = this.jTextFieldModuleEntryPoint.getText();
+ arg1 = this.jTextFieldModuleUnloadImage.getText();
+ id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);
+ }
+
+ if (type.equals(EnumerationData.EXTERNS_LIBRARY)) {
+ arg0 = this.jTextFieldConstructor.getText();
+ arg1 = this.jTextFieldDestructor.getText();
+ id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);
+ }
+
+ if (type.equals(EnumerationData.EXTERNS_DRIVER)) {
+ arg0 = this.jTextFieldDriverBinding.getText();
+ arg1 = this.jTextFieldComponentName.getText();
+ arg2 = this.jTextFieldDriverConfig.getText();
+ arg3 = this.jTextFieldDriverDiagnostic.getText();
+ id = new ExternsIdentification(arg0, arg1, arg2, arg3, type, featureFlag, arch);
+ }
+
+ if (type.equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ arg0 = this.jTextFieldVirtualAddressMap.getText();
+ arg1 = this.jTextFieldExitBootServices.getText();
+ id = new ExternsIdentification(arg0, arg1, type, featureFlag, arch);
+ }
- id = new ExternsIdentification(arg0, arg1, arg2, arg3);
return id;
}
@@ -400,19 +859,66 @@ public class ExternsDlg extends IDialog implements ItemListener {
*/
public void itemStateChanged(ItemEvent arg0) {
if (arg0.getSource() == jComboBoxType && arg0.getStateChange() == ItemEvent.SELECTED) {
- if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {
- this.jComboBoxPcdIsDriver.setVisible(true);
- this.jTextFieldC_Name.setVisible(false);
- this.jLabelArch.setEnabled(false);
- this.jArchCheckBox.setAllItemsEnabled(false);
- } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {
+ this.jPanelSpecification.setVisible(true);
+ this.jPanelImage.setVisible(false);
+ this.jPanelLibrary.setVisible(false);
+ this.jPanelDriver.setVisible(false);
+ this.jPanelCallBack.setVisible(false);
this.jLabelArch.setEnabled(false);
this.jArchCheckBox.setAllItemsEnabled(false);
- } else {
- this.jComboBoxPcdIsDriver.setVisible(false);
- this.jTextFieldC_Name.setVisible(true);
+ this.jLabelArch.setLocation(12, 62);
+ this.jArchCheckBox.setLocation(168, 62);
+ this.jLabelFeatureFlag.setLocation(12, 87);
+ this.jTextFieldFeatureFlag.setLocation(168, 87);
+ } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_IMAGE)) {
+ this.jPanelSpecification.setVisible(false);
+ this.jPanelImage.setVisible(true);
+ this.jPanelLibrary.setVisible(false);
+ this.jPanelDriver.setVisible(false);
+ this.jPanelCallBack.setVisible(false);
+ this.jLabelArch.setEnabled(true);
+ this.jArchCheckBox.setAllItemsEnabled(true);
+ this.jLabelArch.setLocation(12, 87);
+ this.jArchCheckBox.setLocation(168, 87);
+ this.jLabelFeatureFlag.setLocation(12, 112);
+ this.jTextFieldFeatureFlag.setLocation(168, 112);
+ } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_LIBRARY)) {
+ this.jPanelSpecification.setVisible(false);
+ this.jPanelImage.setVisible(false);
+ this.jPanelLibrary.setVisible(true);
+ this.jPanelDriver.setVisible(false);
+ this.jPanelCallBack.setVisible(false);
+ this.jLabelArch.setEnabled(true);
+ this.jArchCheckBox.setAllItemsEnabled(true);
+ this.jLabelArch.setLocation(12, 87);
+ this.jArchCheckBox.setLocation(168, 87);
+ this.jLabelFeatureFlag.setLocation(12, 112);
+ this.jTextFieldFeatureFlag.setLocation(168, 112);
+ } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_DRIVER)) {
+ this.jPanelSpecification.setVisible(false);
+ this.jPanelImage.setVisible(false);
+ this.jPanelLibrary.setVisible(false);
+ this.jPanelDriver.setVisible(true);
+ this.jPanelCallBack.setVisible(false);
+ this.jLabelArch.setEnabled(true);
+ this.jArchCheckBox.setAllItemsEnabled(true);
+ this.jLabelArch.setLocation(12, 137);
+ this.jArchCheckBox.setLocation(168, 137);
+ this.jLabelFeatureFlag.setLocation(12, 162);
+ this.jTextFieldFeatureFlag.setLocation(168, 162);
+ } else if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_CALL_BACK)) {
+ this.jPanelSpecification.setVisible(false);
+ this.jPanelImage.setVisible(false);
+ this.jPanelLibrary.setVisible(false);
+ this.jPanelDriver.setVisible(false);
+ this.jPanelCallBack.setVisible(true);
this.jLabelArch.setEnabled(true);
this.jArchCheckBox.setAllItemsEnabled(true);
+ this.jLabelArch.setLocation(12, 87);
+ this.jArchCheckBox.setLocation(168, 87);
+ this.jLabelFeatureFlag.setLocation(12, 112);
+ this.jTextFieldFeatureFlag.setLocation(168, 112);
}
}
}