]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
add calculation for max. datum size based on pcd default value input by user.
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdModuleSA.java
index 6ddf7ccd17d05d44b5d051fe9b19cb90025db721..27a52b66cd6e12a3179b3e9f8432b50b790425ae 100644 (file)
@@ -4,7 +4,6 @@ import java.awt.BorderLayout;
 import java.awt.Dimension;\r
 import java.awt.Toolkit;\r
 \r
-import javax.swing.DefaultCellEditor;\r
 import javax.swing.JFrame;\r
 import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
@@ -125,6 +124,14 @@ public class FpdModuleSA extends JDialog implements ActionListener {
     private JPanel jPanelToolchainS = null;\r
     private JPanel jPanelLibraryCenterN = null;\r
     private JPanel jPanelLibraryCenterC = null;  //  @jve:decl-index=0:visual-constraint="20,224"\r
+    \r
+    private final int buildTargetWidth = 150;\r
+    private final int toolChainFamilyWidth = 150;\r
+    private final int supportArchWidth = 150;\r
+    private final int toolCmdCodeWidth = 200;\r
+    private final int tagNameWidth = 150;\r
+    private final int argWidth = 400;\r
+    \r
     /**\r
      * This is the default constructor\r
      */\r
@@ -186,6 +193,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             for (int i = 0; i < saa.length; ++i) {\r
                 ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
                 if (mi != null) {\r
+                    //\r
+                    // ToDo: verify this instance first.\r
+                    //\r
                     saa[i][0] = mi.getName();\r
                     saa[i][2] = mi.getVersion();\r
                     saa[i][4] = mi.getPackageId().getVersion();\r
@@ -268,7 +278,7 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             }\r
             \r
             //\r
-            // find potential instances in all dependency pkgs for classes still in classConsumed.\r
+            // find potential instances in all pkgs for classes still in classConsumed.\r
             //\r
             if (classInstanceMap == null){\r
                 classInstanceMap = new HashMap<String, ArrayList<String>>();\r
@@ -552,6 +562,8 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             model.addColumn("MaxDatumSize");\r
             model.addColumn("DataType");\r
             model.addColumn("DefaultValue");\r
+            \r
+            jTablePcd.getColumnModel().getColumn(0).setMinWidth(250);\r
                         \r
             jTablePcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTablePcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
@@ -579,9 +591,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                         jComboBoxItemType.setSelectedItem(itemType);\r
                         jTextFieldMaxDatumSize.setEnabled(true);\r
                         jTextFieldMaxDatumSize.setVisible(true);\r
-                        jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
+                        jTextFieldMaxDatumSize.setText(model.getValueAt(selectedRow, 4)+"");\r
                         jTextFieldPcdDefault.setEnabled(true);\r
-                        jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");\r
+                        jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+"");\r
                         if (model.getValueAt(selectedRow, 5).equals("VOID*")) {\r
                             if (pcdInfo[1].equals("FEATURE_FLAG")) {\r
                                 jTextFieldMaxDatumSize.setVisible(false);\r
@@ -589,14 +601,14 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                             else if (pcdInfo[1].equals("FIXED_AT_BUILD")) {\r
                                 try{\r
                                     jTextFieldMaxDatumSize.setEnabled(false);\r
-                                    jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(jTablePcd.getValueAt(selectedRow, 6)+"")+"");\r
+                                    jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(model.getValueAt(selectedRow, 6)+"")+"");\r
                                 }\r
                                 catch(Exception except){\r
                                     JOptionPane.showMessageDialog(frame, "Unacceptable PCD Value: " + except.getMessage());\r
                                 }\r
                             }\r
                             else{\r
-                                jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
+                                jTextFieldMaxDatumSize.setText(model.getValueAt(selectedRow, 4)+"");\r
                             }\r
                         }\r
                         else {\r
@@ -641,6 +653,11 @@ public class FpdModuleSA extends JDialog implements ActionListener {
         }\r
     }\r
     \r
+    /**\r
+     * @param cName\r
+     * @param tsGuid\r
+     * @param sa sa[0]: HelpText; sa[1]: itemType in Msa; sa[2]: isBinary;\r
+     */\r
     private void getPcdInfo(String cName, String tsGuid, String[] sa) {\r
         String[][] saa = new String[ffc.getLibraryInstancesCount(moduleKey)][5];\r
         ffc.getLibraryInstances(moduleKey, saa);\r
@@ -800,6 +817,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             selectedInstancesTableModel.addColumn("PackageVersion");\r
             jTableSelectedInstances = new JTable(selectedInstancesTableModel);\r
             jTableSelectedInstances.setRowHeight(20);\r
+            \r
+            jTableSelectedInstances.getColumnModel().getColumn(0).setMinWidth(250);\r
+            \r
             jTableSelectedInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
             jTableSelectedInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             \r
@@ -905,6 +925,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             libInstanceTableModel.addColumn("PackageVersion");\r
             jTableLibInstances = new JTable(libInstanceTableModel);\r
             jTableLibInstances.setRowHeight(20);\r
+            \r
+            jTableLibInstances.getColumnModel().getColumn(0).setMinWidth(250);\r
+            \r
             jTableLibInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
             jTableLibInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             \r
@@ -1137,8 +1160,14 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                     if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
                         return;\r
                     }\r
-                    docConsole.setSaved(false);\r
+                    \r
                     ffc.setFvBinding(moduleKey, newFvBinding);\r
+                    String moduleInfo[] = moduleKey.split(" ");\r
+                    String fvNames[] = newFvBinding.split(" ");\r
+                    for (int i = 0; i < fvNames.length; ++i) {\r
+                        ffc.addModuleIntoBuildOptionsUserExtensions(fvNames[i], moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]);\r
+                    }\r
+                    docConsole.setSaved(false);\r
                 }\r
             });\r
             \r
@@ -1240,6 +1269,12 @@ public class FpdModuleSA extends JDialog implements ActionListener {
             jTableModuleSaOptions = new JTable(optionsTableModel);\r
             jTableModuleSaOptions.setRowHeight(20);\r
             \r
+            jTableModuleSaOptions.getColumnModel().getColumn(0).setMinWidth(buildTargetWidth);\r
+            jTableModuleSaOptions.getColumnModel().getColumn(1).setMinWidth(toolChainFamilyWidth);\r
+            jTableModuleSaOptions.getColumnModel().getColumn(2).setMinWidth(tagNameWidth);\r
+            jTableModuleSaOptions.getColumnModel().getColumn(3).setMinWidth(toolCmdCodeWidth);\r
+            jTableModuleSaOptions.getColumnModel().getColumn(4).setMinWidth(supportArchWidth);\r
+            jTableModuleSaOptions.getColumnModel().getColumn(5).setMinWidth(argWidth);\r
 //            javax.swing.table.TableColumn toolFamilyCol = jTableModuleSaOptions.getColumnModel().getColumn(1);\r
 //            JComboBox cb = new JComboBox();\r
 //            cb.addItem("MSFT");\r
@@ -1564,8 +1599,21 @@ private JButton getJButtonUpdatePcd() {
                 String oldItemType = model.getValueAt(row, 2)+"";\r
                 String newItemType = jComboBoxItemType.getSelectedItem()+"";\r
                 model.setValueAt(newItemType, row, 2);\r
-                model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
                 model.setValueAt(jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem(), row, 6);\r
+                \r
+                String[] pcdInfo = {"", "", ""};\r
+                getPcdInfo (model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"", pcdInfo);\r
+                if (pcdInfo[1].equals("FIXED_AT_BUILD") && model.getValueAt(row, 5).equals("VOID*")) {\r
+                    try {\r
+                        jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(model.getValueAt(row, 6)+"")+"");\r
+                    }\r
+                    catch (Exception exp) {\r
+                        JOptionPane.showMessageDialog(frame, "PCD Value MalFormed: " + exp.getMessage());\r
+                        return;\r
+                    }\r
+                }\r
+                model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
+                \r
                 if (oldItemType.equals("DYNAMIC") && !newItemType.equals("DYNAMIC")) {\r
                     pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
                 }\r