]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java
Fixed display sizes for X-Windows
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdPlatformDefs.java
index 2881045d61b08d1dee2442ee4a16ed738ec37140..454df225e153e6171fdde63bb74b4e915d46bc8f 100644 (file)
@@ -23,6 +23,7 @@ import javax.swing.ListSelectionModel;
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
+import org.tianocore.frameworkwizard.toolchain.ToolChainId;\r
 \r
 import javax.swing.JCheckBox;\r
 import javax.swing.JOptionPane;\r
@@ -44,31 +45,35 @@ import java.util.Vector;
 \r
 public class FpdPlatformDefs extends IInternalFrame {\r
 \r
+    private static boolean Debug = false;\r
+\r
     private final int dialogWidth = 600;\r
 \r
     private final int oneRowHeight = 20;\r
 \r
     private final int twoRowHeight = 40;\r
 \r
-//    private final int threeRowHeight = 60;\r
+    //    private final int threeRowHeight = 60;\r
 \r
     private final int fourRowHeight = 80;\r
 \r
     private final int sepHeight = 6;\r
 \r
-//    private final int sepWidth = 10;\r
+    //    private final int sepWidth = 10;\r
+\r
+    private final int offsetWidth = 70;\r
 \r
     private final int buttonWidth = 90;\r
 \r
     private final int rowOne = 12;\r
 \r
-    private final int rowTwo = rowOne + oneRowHeight + sepHeight;\r
+    private final int rowTwo = rowOne + oneRowHeight + sepHeight * 3;\r
 \r
     private final int rowThree = rowTwo + oneRowHeight + sepHeight;\r
 \r
     private final int rowFour = rowThree + oneRowHeight + sepHeight;\r
 \r
-    private final int rowFive = rowFour + fourRowHeight + sepHeight;\r
+    private final int rowFive = rowFour + fourRowHeight + sepHeight * 3;\r
 \r
     private final int rowSix = rowFive + oneRowHeight + sepHeight;\r
 \r
@@ -78,7 +83,7 @@ public class FpdPlatformDefs extends IInternalFrame {
 \r
     private final int rowNine = rowEight + oneRowHeight + sepHeight;\r
 \r
-    private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight;\r
+    private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight * 3;\r
 \r
     private final int rowEleven = rowTen + oneRowHeight + sepHeight;\r
 \r
@@ -100,11 +105,6 @@ public class FpdPlatformDefs extends IInternalFrame {
 \r
     private final int tableWidth = valueWidth;\r
 \r
-    /**\r
-     * \r
-     */\r
-    private static final long serialVersionUID = 1L;\r
-\r
     static JFrame frame;\r
 \r
     private JPanel jContentPane = null;\r
@@ -133,13 +133,15 @@ public class FpdPlatformDefs extends IInternalFrame {
 \r
     private JComboBox jComboBoxInterDir = null;\r
 \r
+    private JComboBox jBuildTargetComboBox = null;\r
+\r
     private JTable jTableBuildTargets = null;\r
 \r
     private JPanel jArchitectureSelections = null;\r
 \r
     private JLabel jLabelBuildTargets = null;\r
 \r
-    private JTextField jTextFieldBuildTarget = null;\r
+    //    private JTextField jTextFieldBuildTarget = null;\r
 \r
     private JButton jButtonAddBuildTarget = null;\r
 \r
@@ -181,6 +183,13 @@ public class FpdPlatformDefs extends IInternalFrame {
 \r
     private int selectedRow = -1;\r
 \r
+    /**\r
+     *  The following are not used by the UI \r
+     */\r
+    private static final long serialVersionUID = 1L;\r
+\r
+    private ToolChainId tid = new ToolChainId();\r
+\r
     public FpdPlatformDefs() {\r
         super();\r
         initialize();\r
@@ -399,7 +408,9 @@ public class FpdPlatformDefs extends IInternalFrame {
             jPanelGeneralContainer.add(getArchitectureSelections(), null);\r
 \r
             jPanelGeneralContainer.add(jLabelBuildTargets, null);\r
-            jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null);\r
+            // jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null);\r
+            jPanelGeneralContainer.add(getJBuildTargetComboBox(), null);\r
+\r
             jPanelGeneralContainer.add(getJButtonAddBuildTarget(), null);\r
             jPanelGeneralContainer.add(getJButtonDelBuildTarget(), null);\r
             jPanelGeneralContainer.add(getJScrollPaneBuildTargets(), null);\r
@@ -441,6 +452,8 @@ public class FpdPlatformDefs extends IInternalFrame {
             jArchitectureSelections.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
             jArchitectureSelections.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
             jArchitectureSelections.setLocation(new java.awt.Point(valueColumn, rowOne));\r
+            jArchitectureSelections.setToolTipText("<html>A Platform may support one or more architectures," \r
+                                                   + "<br>at least one architecture must be selected!</html>");\r
         }\r
         return jArchitectureSelections;\r
     }\r
@@ -602,20 +615,58 @@ public class FpdPlatformDefs extends IInternalFrame {
     }\r
 \r
     /**\r
-     * This method initializes jTextField1     \r
-     *         \r
-     * @return javax.swing.JTextField  \r
+     * Use a ComboBox for BuildTargets\r
+     * \r
+     * @return javax.swing.JComboBox jBuildTargetComboBox\r
      */\r
-    private JTextField getJTextFieldBuildTarget() {\r
-        if (jTextFieldBuildTarget == null) {\r
-            jTextFieldBuildTarget = new JTextField();\r
-            jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
-            jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));\r
-            jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo));\r
+    private JComboBox getJBuildTargetComboBox() {\r
+        if (jBuildTargetComboBox == null) {\r
+            String toolBt = null;\r
+            if (tid.getToolsDefTargetNames() == null)\r
+                toolBt = "DEBUG RELEASE";\r
+            else\r
+                toolBt = tid.getToolsDefTargetNames().trim();\r
+\r
+            if ((toolBt.contains("*")) || (toolBt.length() < 1)) {\r
+                toolBt = "DEBUG RELEASE";\r
+            }\r
+            if (Debug)\r
+                System.out.println("Using Build Targets: " + toolBt.trim());\r
+\r
+            toolBt = toolBt.replaceAll(" ", ":");\r
+            toolBt = " :" + toolBt;\r
+            if (Debug)\r
+                System.out.println("Using Build Targets: " + toolBt.trim());\r
+            String[] buildTargets = toolBt.trim().split(":");\r
+\r
+            jBuildTargetComboBox = new JComboBox(buildTargets);\r
+            jBuildTargetComboBox.setEditable(true);\r
+            jBuildTargetComboBox.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
+            jBuildTargetComboBox.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));\r
+            jBuildTargetComboBox.setLocation(new java.awt.Point(valueColumn, rowTwo));\r
+            jBuildTargetComboBox.setToolTipText("<html>Select a defined Target and then click Add,<br>"\r
+                                                + "or enter a new, one word TargetName and then click Add.<br>"\r
+                                                + "Remember to define the Targetname in the tool defintion file."\r
+                                                + "</html>");\r
+\r
         }\r
-        return jTextFieldBuildTarget;\r
+        return jBuildTargetComboBox;\r
     }\r
 \r
+    /**\r
+     * This method initializes jTextField1     \r
+     *         \r
+     * @return javax.swing.JTextField  \r
+     */\r
+    //    private JTextField getJTextFieldBuildTarget() {\r
+    //        if (jTextFieldBuildTarget == null) {\r
+    //            jTextFieldBuildTarget = new JTextField();\r
+    //            jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
+    //            jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));\r
+    //            jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo));\r
+    //        }\r
+    //        return jTextFieldBuildTarget;\r
+    //   }\r
     /**\r
      * This method initializes jButton2        \r
      *         \r
@@ -633,16 +684,26 @@ public class FpdPlatformDefs extends IInternalFrame {
 \r
             jButtonAddBuildTarget.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
-                    if (jTextFieldBuildTarget.getText().length() > 0) {\r
-                        String[] row = { jTextFieldBuildTarget.getText() };\r
-                        jTextFieldBuildTarget.setText("");\r
+                    // Used with Text Field\r
+                    // if (jTextFieldBuildTarget.getText().length() > 0) {\r
+                    //    String[] row = { jTextFieldBuildTarget.getText() };\r
+                    //    jTextFieldBuildTarget.setText("");\r
+                    //    buildTargetTableModel.addRow(row);\r
+                    //    Vector<Object> v = new Vector<Object>();\r
+                    //    for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
+                    //        v.add(buildTargetTableModel.getValueAt(i, 0));\r
+                    //    }\r
+                    //    docConsole.setSaved(false);\r
+                    //    ffc.setPlatformDefsBuildTargets(v);\r
+                    // }\r
+                    // Use with ComboBox\r
+                    if (jBuildTargetComboBox.getSelectedItem().toString().length() > 0) {\r
+                        String[] row = { jBuildTargetComboBox.getSelectedItem().toString() };\r
                         buildTargetTableModel.addRow(row);\r
                         Vector<Object> v = new Vector<Object>();\r
                         for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
                             v.add(buildTargetTableModel.getValueAt(i, 0));\r
                         }\r
-                        docConsole.setSaved(false);\r
-                        ffc.setPlatformDefsBuildTargets(v);\r
                     }\r
                 }\r
             });\r
@@ -716,6 +777,8 @@ public class FpdPlatformDefs extends IInternalFrame {
             jTableBuildTargets = new JTable(buildTargetTableModel);\r
             jTableBuildTargets.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTableBuildTargets.setRowHeight(oneRowHeight);\r
+            jTableBuildTargets.setToolTipText("<html>Select one of the Targets from the table and<br>"\r
+                                              + "click Delete to remove the target from the platform.</html>");\r
             buildTargetTableModel.addColumn("Build Target");\r
 \r
             jTableBuildTargets.getModel().addTableModelListener(new TableModelListener() {\r
@@ -753,6 +816,7 @@ public class FpdPlatformDefs extends IInternalFrame {
             jTextFieldSkuId.setPreferredSize(new Dimension(40, oneRowHeight));\r
             jTextFieldSkuId.setBounds(new java.awt.Rectangle(valueColumn, rowSix, 40, oneRowHeight));\r
             jTextFieldSkuId.setLocation(new java.awt.Point(valueColumn, rowSix));\r
+            jTextFieldSkuId.setToolTipText("Enter a unique integer value.");\r
         }\r
         return jTextFieldSkuId;\r
     }\r
@@ -768,6 +832,9 @@ public class FpdPlatformDefs extends IInternalFrame {
             jTextFieldSkuName.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
             jTextFieldSkuName.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight));\r
             jTextFieldSkuName.setLocation(new java.awt.Point(valueColumn, rowSeven));\r
+            jTextFieldSkuName.setToolTipText("<html>Enter a name to help identify this SKU.<br>"\r
+                                             + "This entry is not used by the build system, it is<br>"\r
+                                             + "used only by this user interface.</html>");\r
         }\r
         return jTextFieldSkuName;\r
     }\r
@@ -843,7 +910,10 @@ public class FpdPlatformDefs extends IInternalFrame {
             jScrollPaneSkuInfo.setPreferredSize(new Dimension(tableWidth - 20, tableHeight - 20));\r
             jScrollPaneSkuInfo.setBounds(new java.awt.Rectangle(valueColumn, rowNine, tableWidth - 5, tableHeight - 5));\r
             jScrollPaneSkuInfo.setLocation(new java.awt.Point(valueColumn, rowNine));\r
-            jScrollPaneSkuInfo.setBorder(null);\r
+\r
+            jScrollPaneSkuInfo\r
+                              .setBorder(javax.swing.BorderFactory\r
+                                                                  .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
 \r
             jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
         }\r
@@ -861,6 +931,10 @@ public class FpdPlatformDefs extends IInternalFrame {
             skuInfoTableModel.addColumn("SKU ID");\r
             skuInfoTableModel.addColumn("Name");\r
             jTableSkuInfo = new JTable(skuInfoTableModel);\r
+            jTableSkuInfo.setToolTipText("<html>SKU ID 0 must always be defined as the default.<br>"\r
+                                         + "0 can mean either SKU disabled, or it can be the<br>"\r
+                                         + "default value if more than one SKU is defined, and the<br>"\r
+                                         + "platform is not jumpered to use one of the other SKU values.</html>");\r
 \r
             jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
 \r
@@ -891,11 +965,15 @@ public class FpdPlatformDefs extends IInternalFrame {
         if (jComboBoxInterDir == null) {\r
             jComboBoxInterDir = new JComboBox();\r
             jComboBoxInterDir.setPreferredSize(new Dimension(75, oneRowHeight));\r
-            jComboBoxInterDir.setBounds(new java.awt.Rectangle(valueColumn + 30, rowEleven, 75, oneRowHeight));\r
-            jComboBoxInterDir.setLocation(new java.awt.Point(valueColumn + 30, rowEleven));\r
+            jComboBoxInterDir.setBounds(new java.awt.Rectangle(valueColumn + offsetWidth, rowEleven, 95, oneRowHeight));\r
+            jComboBoxInterDir.setLocation(new java.awt.Point(valueColumn + offsetWidth, rowEleven));\r
             jComboBoxInterDir.addItem("UNIFIED");\r
             jComboBoxInterDir.addItem("MODULE");\r
             jComboBoxInterDir.setSelectedIndex(0);\r
+            jComboBoxInterDir.setToolTipText("<html>Select UNIFIED to generate intermediate directories under<br>"\r
+                                             + "under platform directory tree.<br>"\r
+                                             + "Select MODULE to generate intermediate directories under the<br>"\r
+                                             + "individual module directories.</html>");\r
             jComboBoxInterDir.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
                     if (docConsole != null) {\r
@@ -917,9 +995,10 @@ public class FpdPlatformDefs extends IInternalFrame {
         if (jTextFieldOutputDir == null) {\r
             jTextFieldOutputDir = new JTextField();\r
             jTextFieldOutputDir.setPreferredSize(new java.awt.Dimension(290, 20));\r
-            jTextFieldOutputDir.setBounds(new java.awt.Rectangle(valueColumn + 30, rowTwelve, valueWidth - 30,\r
+            jTextFieldOutputDir.setBounds(new java.awt.Rectangle(valueColumn + offsetWidth, rowTwelve, valueWidth - 30,\r
                                                                  oneRowHeight));\r
-            jTextFieldOutputDir.setLocation(new java.awt.Point(valueColumn + 30, rowTwelve));\r
+            jTextFieldOutputDir.setLocation(new java.awt.Point(valueColumn + offsetWidth, rowTwelve));\r
+            jTextFieldOutputDir.setToolTipText("Select the name or URL for the output directory tree.");\r
             jTextFieldOutputDir.addFocusListener(new java.awt.event.FocusAdapter() {\r
                 public void focusLost(java.awt.event.FocusEvent e) {\r
                     docConsole.setSaved(false);\r