]> 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 e6f18d17f38045eecdae63b716b2fd30642f3bc9..454df225e153e6171fdde63bb74b4e915d46bc8f 100644 (file)
@@ -1,15 +1,15 @@
 /** @file\r
 Java class FpdPlatformDefs is GUI for Flash element operation in SPD file.\r
+ Java class FpdPlatformDefs is GUI for Flash element operation in SPD file.\r
  \r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution.  The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ **/\r
 package org.tianocore.frameworkwizard.platform.ui;\r
 \r
 import java.awt.BorderLayout;\r
@@ -23,10 +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
-\r
-\r
-import java.awt.FlowLayout;\r
-\r
+import org.tianocore.frameworkwizard.toolchain.ToolChainId;\r
 \r
 import javax.swing.JCheckBox;\r
 import javax.swing.JOptionPane;\r
@@ -36,6 +33,8 @@ import javax.swing.JScrollPane;
 import javax.swing.JTable;\r
 import javax.swing.event.InternalFrameAdapter;\r
 import javax.swing.event.InternalFrameEvent;\r
+//import javax.swing.event.ListSelectionEvent;\r
+//import javax.swing.event.ListSelectionListener;\r
 import javax.swing.event.TableModelEvent;\r
 import javax.swing.event.TableModelListener;\r
 import javax.swing.table.DefaultTableModel;\r
@@ -46,132 +45,168 @@ import java.util.Vector;
 \r
 public class FpdPlatformDefs extends IInternalFrame {\r
 \r
-    /**\r
-     * \r
-     */\r
-    private static final long serialVersionUID = 1L;\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
+\r
+    private final int fourRowHeight = 80;\r
+\r
+    private final int sepHeight = 6;\r
+\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 * 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 * 3;\r
+\r
+    private final int rowSix = rowFive + oneRowHeight + sepHeight;\r
+\r
+    private final int rowSeven = rowSix + oneRowHeight + sepHeight;\r
+\r
+    private final int rowEight = rowSeven + oneRowHeight + sepHeight;\r
+\r
+    private final int rowNine = rowEight + oneRowHeight + sepHeight;\r
+\r
+    private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight * 3;\r
+\r
+    private final int rowEleven = rowTen + oneRowHeight + sepHeight;\r
+\r
+    private final int rowTwelve = rowEleven + oneRowHeight + sepHeight;\r
+\r
+    private final int dialogHeight = rowTwelve + twoRowHeight;\r
+\r
+    private final int labelColumn = 12;\r
+\r
+    private final int valueColumn = 168;\r
+\r
+    private final int labelWidth = 155;\r
+\r
+    private final int valueWidth = 320;\r
+\r
+    private final int valueCenter = valueColumn + (valueWidth / 2);\r
+\r
+    private final int tableHeight = fourRowHeight;\r
+\r
+    private final int tableWidth = valueWidth;\r
+\r
     static JFrame frame;\r
+\r
     private JPanel jContentPane = null;\r
-    private JPanel jPanel = null;\r
-    private JPanel jPanel1 = null;\r
-    private JPanel jPanel2 = null;\r
-    private JPanel jPanel3 = null;\r
+\r
     private JTabbedPane jTabbedPane = null;\r
-    private JButton jButtonOk = null;\r
-    private JButton jButtonCancel = null;\r
-    private TargetTableModel imageEntryPointTableModel = null;\r
-    \r
+\r
+    private TargetTableModel buildTargetTableModel = null;\r
+\r
     private SkuInfoTableModel skuInfoTableModel = null;\r
+\r
     private OpeningPlatformType docConsole = null;\r
+\r
     private FpdFileContents ffc = null;\r
-    private JPanel jPanel4 = null;\r
-    private JPanel jPanel5 = null;\r
-    private JLabel jLabel = null;\r
-    private JCheckBox jCheckBox1 = null;\r
-    private JCheckBox jCheckBox2 = null;\r
-    private JCheckBox jCheckBox3 = null;\r
-    private JPanel jPanel6 = null;\r
-    private JCheckBox jCheckBox4 = null;\r
-    private JComboBox jComboBox = null;\r
-    private JTable jTable = null;\r
-    private JPanel jPanel7 = null;\r
-    private JLabel jLabel2 = null;\r
-    private JTextField jTextField1 = null;\r
-    private JButton jButton2 = null;\r
-    private JButton jButton3 = null;\r
-    private JScrollPane jScrollPane2 = null;\r
-    private JScrollPane jScrollPane3 = null;\r
-    private JTable jTable2 = null;\r
-    private JCheckBox jCheckBox = null;\r
-    private JCheckBox jCheckBox5 = null;\r
-    private JCheckBox jCheckBox6 = null;\r
-    private JPanel jPanel8 = null;\r
-    private JLabel jLabel7 = null;\r
-    private JLabel jLabel1 = null;\r
-    private JTextField jTextField = null;\r
-    private JPanel jPanel9 = null;\r
-    private JLabel jLabel3 = null;\r
-    private JLabel jLabel4 = null;\r
-    private JTextField jTextField2 = null;\r
-    private JLabel jLabel5 = null;\r
-    private JTextField jTextField3 = null;\r
-    private JButton jButton = null;\r
-    private JButton jButton1 = null;\r
-    private JLabel jLabel6 = null;\r
+\r
+    private JPanel jPanelGeneralTab = null;\r
+\r
+    private JPanel jPanelGeneralContainer = null;\r
+\r
+    private JLabel jLabelSupArch = null;\r
+\r
+    private JCheckBox jCheckBoxIa32 = null;\r
+\r
+    private JCheckBox jCheckBoxX64 = null;\r
+\r
+    private JCheckBox jCheckBoxIpf = null;\r
+\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
+\r
+    private JButton jButtonAddBuildTarget = null;\r
+\r
+    private JButton jButtonDelBuildTarget = null;\r
+\r
+    private JScrollPane jScrollPaneBuildTargets = null;\r
+\r
+    private JScrollPane jScrollPaneSkuInfo = null;\r
+\r
+    private JTable jTableSkuInfo = null;\r
+\r
+    private JCheckBox jCheckBoxEbc = null;\r
+\r
+    private JCheckBox jCheckBoxArm = null;\r
+\r
+    private JCheckBox jCheckBoxPpc = null;\r
+\r
+    private JLabel jLabelSkuInfo = null;\r
+\r
+    private JLabel jLabelSkuId = null;\r
+\r
+    private JTextField jTextFieldSkuId = null;\r
+\r
+    private JLabel jLabelSkuName = null;\r
+\r
+    private JTextField jTextFieldSkuName = null;\r
+\r
+    private JButton jButtonSkuAdd = null;\r
+\r
+    private JButton jButtonSkuDel = null;\r
+\r
+    private JLabel jLabelIntermediateDirs = null;\r
+\r
+    private JLabel jLabelOutputDir = null;\r
+\r
+    private JTextField jTextFieldOutputDir = null;\r
+\r
+    private JLabel jLabelOutputInfo = null;\r
+\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
-        // TODO Auto-generated constructor stub\r
-\r
         initialize();\r
         this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
         this.setVisible(true);\r
     }\r
 \r
-    public FpdPlatformDefs(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
+    public FpdPlatformDefs(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
         this();\r
         ffc = new FpdFileContents(fpd);\r
         init(ffc);\r
     }\r
-    \r
+\r
     public FpdPlatformDefs(OpeningPlatformType opt) {\r
         this(opt.getXmlFpd());\r
         docConsole = opt;\r
     }\r
-    \r
-    /**\r
-     * This method initializes jPanel  \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel() {\r
-        if (jPanel == null) {\r
-            jPanel = new JPanel();\r
-        }\r
-        return jPanel;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel1 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel1() {\r
-        if (jPanel1 == null) {\r
-            FlowLayout flowLayout = new FlowLayout();\r
-            flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
-            flowLayout.setHgap(15);\r
-            jPanel1 = new JPanel();\r
-            jPanel1.setLayout(flowLayout);\r
-            jPanel1.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
-            jPanel1.add(getJButtonCancel(), null);\r
-            jPanel1.add(getJButtonOk(), null);\r
-        }\r
-        return jPanel1;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel2 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel2() {\r
-        if (jPanel2 == null) {\r
-            jPanel2 = new JPanel();\r
-        }\r
-        return jPanel2;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel3 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel3() {\r
-        if (jPanel3 == null) {\r
-            jPanel3 = new JPanel();\r
-        }\r
-        return jPanel3;\r
-    }\r
 \r
     /**\r
      * This method initializes jTabbedPane     \r
@@ -181,62 +216,30 @@ public class FpdPlatformDefs extends IInternalFrame {
     private JTabbedPane getJTabbedPane() {\r
         if (jTabbedPane == null) {\r
             jTabbedPane = new JTabbedPane();\r
-            \r
-                       jTabbedPane.addTab("General", null, getJPanel4(), null);\r
-           \r
+            jTabbedPane.addTab("General", null, getJPanelGeneralTab(), null);\r
         }\r
         return jTabbedPane;\r
     }\r
 \r
     /**\r
-     * This method initializes jButtonOk       \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
-    private JButton getJButtonOk() {\r
-        if (jButtonOk == null) {\r
-            jButtonOk = new JButton();\r
-            jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
-            jButtonOk.setText("Cancel");\r
-            jButtonOk.setVisible(false);\r
-        }\r
-        return jButtonOk;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jButtonCancel   \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
-    private JButton getJButtonCancel() {\r
-        if (jButtonCancel == null) {\r
-            jButtonCancel = new JButton();\r
-            jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
-            jButtonCancel.setText("Ok");\r
-            jButtonCancel.setVisible(false);\r
-        }\r
-        return jButtonCancel;\r
-    }\r
-\r
-     /**\r
      * This method initializes this\r
      * \r
      * @return void\r
      */\r
     private void initialize() {\r
-        this.setSize(518, 650);\r
+        this.setSize(dialogWidth, dialogHeight);\r
         this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
-        this.setContentPane(getJContentPane());\r
         this.setTitle("FPD Platform Definitions");\r
-        this.addInternalFrameListener(new InternalFrameAdapter(){\r
-            public void internalFrameDeactivated(InternalFrameEvent e){\r
-                if (jTable.isEditing()) {\r
-                    jTable.getCellEditor().stopCellEditing();\r
+        this.setContentPane(getJContentPane());\r
+        this.addInternalFrameListener(new InternalFrameAdapter() {\r
+            public void internalFrameDeactivated(InternalFrameEvent e) {\r
+                if (jTableBuildTargets.isEditing()) {\r
+                    jTableBuildTargets.getCellEditor().stopCellEditing();\r
                 }\r
-                if (jTable2.isEditing()) {\r
-                    jTable2.getCellEditor().stopCellEditing();\r
+                if (jTableSkuInfo.isEditing()) {\r
+                    jTableSkuInfo.getCellEditor().stopCellEditing();\r
                 }\r
-               \r
+\r
             }\r
         });\r
     }\r
@@ -244,98 +247,92 @@ public class FpdPlatformDefs extends IInternalFrame {
     private void init(FpdFileContents ffc) {\r
         Vector<Object> v = new Vector<Object>();\r
         ffc.getPlatformDefsSupportedArchs(v);\r
-        showToolChain(v);\r
-        \r
-        imageEntryPointTableModel.setRowCount(0);\r
+        showSupportedArchitectures(v);\r
         v.removeAllElements();\r
+\r
         ffc.getPlatformDefsBuildTargets(v);\r
-        for (int i = 0; i < v.size(); ++i){\r
-            Object[] row = {v.get(i)};\r
-            imageEntryPointTableModel.addRow(row);\r
+        buildTargetTableModel.setRowCount(0);\r
+        for (int i = 0; i < v.size(); ++i) {\r
+            Object[] row = { v.get(i) };\r
+            buildTargetTableModel.addRow(row);\r
         }\r
-        \r
+\r
         String[][] saa = new String[ffc.getPlatformDefsSkuInfoCount()][2];\r
         ffc.getPlatformDefsSkuInfos(saa);\r
         for (int i = 0; i < saa.length; ++i) {\r
             skuInfoTableModel.addRow(saa[i]);\r
         }\r
-        \r
+\r
         String interDir = ffc.getPlatformDefsInterDir();\r
         if (interDir != null) {\r
-            jComboBox.setSelectedItem(interDir);\r
+            jComboBoxInterDir.setSelectedItem(interDir);\r
         }\r
-        \r
+\r
         String outputDir = ffc.getPlatformDefsOutputDir();\r
         if (outputDir != null) {\r
-            jTextField.setText(outputDir);\r
-        }\r
-    }\r
-    \r
-   private void showToolChain(Vector<Object> v) {\r
-       if (v.contains("IA32")) {\r
-           jCheckBox1.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox1.setSelected(false);\r
-       }\r
-       if (v.contains("X64")) {\r
-           jCheckBox2.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox2.setSelected(false);\r
-       }\r
-       if (v.contains("IPF")) {\r
-           jCheckBox3.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox3.setSelected(false);\r
-       }\r
-       if (v.contains("EBC")) {\r
-           jCheckBox.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox.setSelected(false);\r
-       }\r
-       if (v.contains("ARM")) {\r
-           jCheckBox5.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox5.setSelected(false);\r
-       }\r
-       if (v.contains("PPC")) {\r
-           jCheckBox6.setSelected(true);\r
-       }\r
-       else{\r
-           jCheckBox6.setSelected(false);\r
-       }\r
-   }\r
-   \r
-   private void getToolChain(Vector<Object> v) {\r
-       if (docConsole != null){\r
-           docConsole.setSaved(false);\r
-       }\r
-       v.removeAllElements();\r
-       if (jCheckBox1.isSelected()) {\r
-           v.add("IA32");\r
-       }\r
-       if (jCheckBox2.isSelected()) {\r
-           v.add("X64");\r
-       }\r
-       if (jCheckBox3.isSelected()) {\r
-           v.add("IPF");\r
-       }\r
-       if (jCheckBox.isSelected()) {\r
-           v.add("EBC");\r
-       }\r
-       if (jCheckBox5.isSelected()) {\r
-           v.add("ARM");\r
-       }\r
-       if (jCheckBox6.isSelected()) {\r
-           v.add("PPC");\r
-       }\r
-       \r
-   }\r
\r
+            jTextFieldOutputDir.setText(outputDir);\r
+        }\r
+    }\r
+\r
+    private void showSupportedArchitectures(Vector<Object> v) {\r
+        if (v.contains("IA32")) {\r
+            jCheckBoxIa32.setSelected(true);\r
+        } else {\r
+            jCheckBoxIa32.setSelected(false);\r
+        }\r
+        if (v.contains("X64")) {\r
+            jCheckBoxX64.setSelected(true);\r
+        } else {\r
+            jCheckBoxX64.setSelected(false);\r
+        }\r
+        if (v.contains("IPF")) {\r
+            jCheckBoxIpf.setSelected(true);\r
+        } else {\r
+            jCheckBoxIpf.setSelected(false);\r
+        }\r
+        if (v.contains("EBC")) {\r
+            jCheckBoxEbc.setSelected(true);\r
+        } else {\r
+            jCheckBoxEbc.setSelected(false);\r
+        }\r
+        if (v.contains("ARM")) {\r
+            jCheckBoxArm.setSelected(true);\r
+        } else {\r
+            jCheckBoxArm.setSelected(false);\r
+        }\r
+        if (v.contains("PPC")) {\r
+            jCheckBoxPpc.setSelected(true);\r
+        } else {\r
+            jCheckBoxPpc.setSelected(false);\r
+        }\r
+    }\r
+\r
+    private void getSupportedArchitectures(Vector<Object> v) {\r
+        if (docConsole != null) {\r
+            docConsole.setSaved(false);\r
+        }\r
+        v.removeAllElements();\r
+        if (jCheckBoxIa32.isSelected()) {\r
+            v.add("IA32");\r
+        }\r
+        if (jCheckBoxX64.isSelected()) {\r
+            v.add("X64");\r
+        }\r
+        if (jCheckBoxIpf.isSelected()) {\r
+            v.add("IPF");\r
+        }\r
+        if (jCheckBoxEbc.isSelected()) {\r
+            v.add("EBC");\r
+        }\r
+        if (jCheckBoxArm.isSelected()) {\r
+            v.add("ARM");\r
+        }\r
+        if (jCheckBoxPpc.isSelected()) {\r
+            v.add("PPC");\r
+        }\r
+\r
+    }\r
+\r
     /**\r
      * This method initializes jContentPane\r
      * \r
@@ -345,10 +342,6 @@ public class FpdPlatformDefs extends IInternalFrame {
         if (jContentPane == null) {\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(new BorderLayout());\r
-            jContentPane.add(getJPanel(), java.awt.BorderLayout.EAST);\r
-            jContentPane.add(getJPanel1(), java.awt.BorderLayout.SOUTH);\r
-            jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST);\r
-            jContentPane.add(getJPanel3(), java.awt.BorderLayout.NORTH);\r
             jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
         }\r
         return jContentPane;\r
@@ -359,15 +352,17 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JPanel      \r
      */\r
-    private JPanel getJPanel4() {\r
-        if (jPanel4 == null) {\r
-            jPanel4 = new JPanel();\r
-            jPanel4.setLayout(new BorderLayout());\r
-            jPanel4.add(getJPanel5(), java.awt.BorderLayout.NORTH);\r
-            jPanel4.add(getJPanel6(), java.awt.BorderLayout.SOUTH);\r
-            jPanel4.add(getJPanel7(), java.awt.BorderLayout.CENTER);\r
+    private JPanel getJPanelGeneralTab() {\r
+        if (jPanelGeneralTab == null) {\r
+            jPanelGeneralTab = new JPanel();\r
+            jPanelGeneralTab.setBounds(new java.awt.Rectangle(0, 0, dialogWidth * 2, dialogHeight * 3));\r
+            jPanelGeneralTab.setPreferredSize(new java.awt.Dimension(dialogWidth + 10, (dialogHeight * 3) + 10));\r
+            jPanelGeneralTab.setAutoscrolls(true);\r
+            jPanelGeneralTab.setLocation(0, 0);\r
+            jPanelGeneralTab.setLayout(null);\r
+            jPanelGeneralTab.add(getJPanelGeneralContainer(), null);\r
         }\r
-        return jPanel4;\r
+        return jPanelGeneralTab;\r
     }\r
 \r
     /**\r
@@ -375,24 +370,92 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JPanel      \r
      */\r
-    private JPanel getJPanel5() {\r
-        if (jPanel5 == null) {\r
-            jLabel = new JLabel();\r
-            jLabel.setText("Supported Archs");\r
-            FlowLayout flowLayout2 = new FlowLayout();\r
-            flowLayout2.setAlignment(FlowLayout.LEFT);\r
-            flowLayout2.setHgap(12);\r
-            jPanel5 = new JPanel();\r
-            jPanel5.setLayout(flowLayout2);\r
-            jPanel5.add(jLabel, null);\r
-            jPanel5.add(getJCheckBox1(), null);\r
-            jPanel5.add(getJCheckBox2(), null);\r
-            jPanel5.add(getJCheckBox3(), null);\r
-            jPanel5.add(getJCheckBox(), null);\r
-            jPanel5.add(getJCheckBox5(), null);\r
-            jPanel5.add(getJCheckBox6(), null);\r
-        }\r
-        return jPanel5;\r
+    private JPanel getJPanelGeneralContainer() {\r
+        if (jPanelGeneralContainer == null) {\r
+            jLabelSupArch = new JLabel();\r
+            jLabelSupArch.setText("Supported Architectures");\r
+            jLabelSupArch.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
+            jLabelBuildTargets = new JLabel();\r
+            jLabelBuildTargets.setText("Build Targets");\r
+            jLabelBuildTargets.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
+            jLabelSkuInfo = new JLabel();\r
+            jLabelSkuInfo.setText("SKU Information");\r
+            jLabelSkuInfo.setBounds(new java.awt.Rectangle(labelColumn, rowFive, labelWidth, oneRowHeight));\r
+            jLabelSkuId = new JLabel();\r
+            jLabelSkuId.setText("SKU ID Number");\r
+            jLabelSkuId.setBounds(new java.awt.Rectangle(labelColumn + 10, rowSix, labelWidth, oneRowHeight));\r
+            jLabelSkuName = new JLabel();\r
+            jLabelSkuName.setText("SKU Name");\r
+            jLabelSkuName.setBounds(new java.awt.Rectangle(labelColumn + 10, rowSeven, labelWidth, oneRowHeight));\r
+            jLabelOutputInfo = new JLabel();\r
+            jLabelOutputInfo.setText("Output Directory Configuration");\r
+            jLabelOutputInfo.setBounds(new java.awt.Rectangle(labelColumn, rowTen, valueWidth, oneRowHeight));\r
+            jLabelIntermediateDirs = new JLabel();\r
+            jLabelIntermediateDirs.setText("Intermediate Build Directories");\r
+            jLabelIntermediateDirs.setBounds(new java.awt.Rectangle(labelColumn + 10, rowEleven, valueWidth,\r
+                                                                    oneRowHeight));\r
+            jLabelOutputDir = new JLabel();\r
+            jLabelOutputDir.setText("Name of the Output Directory");\r
+            jLabelOutputDir.setBounds(new java.awt.Rectangle(labelColumn + 10, rowTwelve, valueWidth, oneRowHeight));\r
+\r
+            jPanelGeneralContainer = new JPanel();\r
+            jPanelGeneralContainer.setLayout(null);\r
+            jPanelGeneralContainer.setLocation(new java.awt.Point(2, 2));\r
+            jPanelGeneralContainer.setBounds(new java.awt.Rectangle(2, 2, dialogWidth * 2, dialogHeight));\r
+            jPanelGeneralContainer.setPreferredSize(new java.awt.Dimension(dialogWidth, dialogHeight));\r
+\r
+            jPanelGeneralContainer.add(jLabelSupArch, null);\r
+            jPanelGeneralContainer.add(getArchitectureSelections(), null);\r
+\r
+            jPanelGeneralContainer.add(jLabelBuildTargets, 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
+\r
+            jPanelGeneralContainer.add(jLabelSkuInfo, null);\r
+            jPanelGeneralContainer.add(jLabelSkuId, null);\r
+            jPanelGeneralContainer.add(getJTextFieldSkuId(), null);\r
+            jPanelGeneralContainer.add(jLabelSkuName, null);\r
+            jPanelGeneralContainer.add(getJTextFieldSkuName(), null);\r
+            jPanelGeneralContainer.add(getJButtonSkuAdd(), null);\r
+            jPanelGeneralContainer.add(getJButtonSkuDel(), null);\r
+            jPanelGeneralContainer.add(getJScrollPaneSkuInfo(), null);\r
+\r
+            jPanelGeneralContainer.add(jLabelOutputInfo, null);\r
+            jPanelGeneralContainer.add(jLabelIntermediateDirs, null);\r
+            jPanelGeneralContainer.add(getJComboBoxInterDir(), null);\r
+            jPanelGeneralContainer.add(jLabelOutputDir, null);\r
+            jPanelGeneralContainer.add(getJTextFieldOutputDir(), null);\r
+\r
+        }\r
+        return jPanelGeneralContainer;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jArchitectureSelections Row 4\r
+     * \r
+     * @return jArchitectureSelections\r
+     */\r
+    private JPanel getArchitectureSelections() {\r
+        if (jArchitectureSelections == null) {\r
+            jArchitectureSelections = new JPanel();\r
+            jArchitectureSelections.setLayout(null);\r
+            jArchitectureSelections.add(getJCheckBoxIa32(), null);\r
+            jArchitectureSelections.add(getJCheckBoxX64(), null);\r
+            jArchitectureSelections.add(getJCheckBoxIpf(), null);\r
+            jArchitectureSelections.add(getJCheckBoxEbc(), null);\r
+            jArchitectureSelections.add(getJCheckBoxArm(), null);\r
+            jArchitectureSelections.add(getJCheckBoxPpc(), null);\r
+            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
 \r
     /**\r
@@ -400,23 +463,24 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JCheckBox   \r
      */\r
-    private JCheckBox getJCheckBox1() {\r
-        if (jCheckBox1 == null) {\r
-            jCheckBox1 = new JCheckBox();\r
-            jCheckBox1.setText("IA32");\r
-            jCheckBox1.addItemListener(new java.awt.event.ItemListener() {\r
+    private JCheckBox getJCheckBoxIa32() {\r
+        if (jCheckBoxIa32 == null) {\r
+            jCheckBoxIa32 = new JCheckBox();\r
+            jCheckBoxIa32.setText("IA32");\r
+            jCheckBoxIa32.setBounds(new java.awt.Rectangle(0, 0, 55, 20));\r
+            jCheckBoxIa32.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
                     Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
+                    getSupportedArchitectures(v);\r
                     if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
                         return;\r
                     }\r
                     ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jCheckBox1;\r
+        return jCheckBoxIa32;\r
     }\r
 \r
     /**\r
@@ -424,23 +488,24 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JCheckBox   \r
      */\r
-    private JCheckBox getJCheckBox2() {\r
-        if (jCheckBox2 == null) {\r
-            jCheckBox2 = new JCheckBox();\r
-            jCheckBox2.setText("X64");\r
-            jCheckBox2.addItemListener(new java.awt.event.ItemListener() {\r
+    private JCheckBox getJCheckBoxX64() {\r
+        if (jCheckBoxX64 == null) {\r
+            jCheckBoxX64 = new JCheckBox();\r
+            jCheckBoxX64.setText("X64");\r
+            jCheckBoxX64.setBounds(new java.awt.Rectangle(55, 0, 53, 20));\r
+            jCheckBoxX64.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
                     Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
+                    getSupportedArchitectures(v);\r
                     if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
                         return;\r
                     }\r
                     ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jCheckBox2;\r
+        return jCheckBoxX64;\r
     }\r
 \r
     /**\r
@@ -448,140 +513,144 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JCheckBox   \r
      */\r
-    private JCheckBox getJCheckBox3() {\r
-        if (jCheckBox3 == null) {\r
-            jCheckBox3 = new JCheckBox();\r
-            jCheckBox3.setText("IPF");\r
-            jCheckBox3.addItemListener(new java.awt.event.ItemListener() {\r
+    private JCheckBox getJCheckBoxIpf() {\r
+        if (jCheckBoxIpf == null) {\r
+            jCheckBoxIpf = new JCheckBox();\r
+            jCheckBoxIpf.setText("IPF");\r
+            jCheckBoxIpf.setBounds(new java.awt.Rectangle(108, 0, 52, 20));\r
+            jCheckBoxIpf.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
                     Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
+                    getSupportedArchitectures(v);\r
                     if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
                         return;\r
                     }\r
                     ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jCheckBox3;\r
+        return jCheckBoxIpf;\r
     }\r
-    \r
+\r
     /**\r
-     * This method initializes jTable   \r
+     * This method initializes jCheckBox    \r
      *  \r
-     * @return javax.swing.JTable   \r
+     * @return javax.swing.JCheckBox    \r
      */\r
-    private JTable getJTable() {\r
-        if (jTable == null) {\r
-            imageEntryPointTableModel = new TargetTableModel();\r
-            imageEntryPointTableModel.addColumn("Build Target");\r
-            jTable = new JTable(imageEntryPointTableModel);\r
-            jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-            \r
-            jTable.getModel().addTableModelListener(new TableModelListener() {\r
-                public void tableChanged(TableModelEvent arg0) {\r
-                    // TODO Auto-generated method stub\r
-                    if (jTable.getSelectedRow() < 0) {\r
+    private JCheckBox getJCheckBoxEbc() {\r
+        if (jCheckBoxEbc == null) {\r
+            jCheckBoxEbc = new JCheckBox();\r
+            // jCheckBoxEbc.setPreferredSize(new java.awt.Dimension(50, 20));\r
+            jCheckBoxEbc.setBounds(new java.awt.Rectangle(160, 0, 53, 20));\r
+            jCheckBoxEbc.setText("EBC");\r
+            jCheckBoxEbc.setVisible(true);\r
+            jCheckBoxEbc.addItemListener(new java.awt.event.ItemListener() {\r
+                public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+                    Vector<Object> v = new Vector<Object>();\r
+                    getSupportedArchitectures(v);\r
+                    if (v.size() == 0) {\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
                         return;\r
                     }\r
-                    TableModel m = (TableModel)arg0.getSource();\r
-                    if (arg0.getType() == TableModelEvent.UPDATE){\r
-                        //ToDo Data Validition check.\r
-                        Vector<Object> v = new Vector<Object>();\r
-                        for (int i = 0; i < jTable.getRowCount(); ++i) {\r
-                            v.add(m.getValueAt(i, 0));\r
-                        }\r
-                        docConsole.setSaved(false);\r
-                        ffc.setPlatformDefsBuildTargets(v);\r
-                    }\r
+                    ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jTable;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel6 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel6() {\r
-        if (jPanel6 == null) {\r
-            FlowLayout flowLayout3 = new FlowLayout();\r
-            flowLayout3.setAlignment(FlowLayout.LEFT);\r
-            flowLayout3.setHgap(20);\r
-            jPanel6 = new JPanel();\r
-            jPanel6.setPreferredSize(new java.awt.Dimension(10,200));\r
-            jPanel6.setLayout(flowLayout3);\r
-            jPanel6.add(getJPanel8(), null);\r
-        }\r
-        return jPanel6;\r
+        return jCheckBoxEbc;\r
     }\r
 \r
     /**\r
-     * This method initializes jCheckBox4      \r
-     *         \r
-     * @return javax.swing.JCheckBox   \r
+     * This method initializes jCheckBox5   \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
      */\r
-    private JCheckBox getJCheckBox4() {\r
-        if (jCheckBox4 == null) {\r
-            jCheckBox4 = new JCheckBox();\r
-            jCheckBox4.setText("Intermediate Directories");\r
+    private JCheckBox getJCheckBoxArm() {\r
+        if (jCheckBoxArm == null) {\r
+            jCheckBoxArm = new JCheckBox();\r
+            // jCheckBoxArm.setPreferredSize(new java.awt.Dimension(52, 20));\r
+            jCheckBoxArm.setBounds(new java.awt.Rectangle(213, 0, 54, 20));\r
+            jCheckBoxArm.setText("ARM");\r
+            jCheckBoxArm.setVisible(true);\r
+            jCheckBoxArm.addItemListener(new java.awt.event.ItemListener() {\r
+                public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+                    Vector<Object> v = new Vector<Object>();\r
+                    getSupportedArchitectures(v);\r
+                    if (v.size() == 0) {\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
+                        return;\r
+                    }\r
+                    ffc.setPlatformDefsSupportedArchs(v);\r
+                }\r
+            });\r
         }\r
-        return jCheckBox4;\r
+        return jCheckBoxArm;\r
     }\r
 \r
     /**\r
-     * This method initializes jComboBox       \r
-     *         \r
-     * @return javax.swing.JComboBox   \r
+     * This method initializes jCheckBox6   \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
      */\r
-    private JComboBox getJComboBox() {\r
-        if (jComboBox == null) {\r
-            jComboBox = new JComboBox();\r
-            jComboBox.setPreferredSize(new Dimension(100, 20));\r
-            jComboBox.addItem("UNIFIED");\r
-            jComboBox.addItem("MODULE");\r
-            \r
-            jComboBox.setSelectedIndex(0);\r
-            jComboBox.addItemListener(new java.awt.event.ItemListener() {\r
+    private JCheckBox getJCheckBoxPpc() {\r
+        if (jCheckBoxPpc == null) {\r
+            jCheckBoxPpc = new JCheckBox();\r
+            // jCheckBoxPpc.setPreferredSize(new Dimension(50, 20));\r
+            jCheckBoxPpc.setBounds(new java.awt.Rectangle(267, 0, 53, 20));\r
+            jCheckBoxPpc.setText("PPC");\r
+            jCheckBoxPpc.setVisible(true);\r
+            jCheckBoxPpc.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    if (docConsole != null){\r
-                        docConsole.setSaved(false);\r
+                    Vector<Object> v = new Vector<Object>();\r
+                    getSupportedArchitectures(v);\r
+                    if (v.size() == 0) {\r
+                        JOptionPane.showMessageDialog(frame, "Platform must support at least ONE  Architecture.");\r
+                        return;\r
                     }\r
-                    ffc.setPlatformDefsInterDir(jComboBox.getSelectedItem()+"");\r
+                    ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jComboBox;\r
+        return jCheckBoxPpc;\r
     }\r
 \r
     /**\r
-     * This method initializes jPanel7 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
+     * Use a ComboBox for BuildTargets\r
+     * \r
+     * @return javax.swing.JComboBox jBuildTargetComboBox\r
      */\r
-    private JPanel getJPanel7() {\r
-        if (jPanel7 == null) {\r
-            jLabel2 = new JLabel();\r
-            jLabel2.setPreferredSize(new Dimension(109, 16));\r
-            jLabel2.setText("Build Targets");\r
-            FlowLayout flowLayout4 = new FlowLayout();\r
-            flowLayout4.setAlignment(FlowLayout.LEFT);\r
-            flowLayout4.setHgap(20);\r
-            jPanel7 = new JPanel();\r
-            jPanel7.setPreferredSize(new Dimension(972, 100));\r
-            jPanel7.setLayout(flowLayout4);\r
-            jPanel7.add(jLabel2, null);\r
-            jPanel7.add(getJTextField1(), null);\r
-            jPanel7.add(getJButton2(), null);\r
-            jPanel7.add(getJButton3(), null);\r
-            jPanel7.add(getJScrollPane2(), null);\r
-            jPanel7.add(getJPanel9(), null);\r
-            jPanel7.add(getJScrollPane3(), null);\r
-        }\r
-        return jPanel7;\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 jBuildTargetComboBox;\r
     }\r
 \r
     /**\r
@@ -589,40 +658,57 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField1() {\r
-        if (jTextField1 == null) {\r
-            jTextField1 = new JTextField();\r
-            jTextField1.setPreferredSize(new Dimension(150, 20));\r
-        }\r
-        return jTextField1;\r
-    }\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
      * @return javax.swing.JButton     \r
      */\r
-    private JButton getJButton2() {\r
-        if (jButton2 == null) {\r
-            jButton2 = new JButton();\r
-            jButton2.setPreferredSize(new Dimension(70, 20));\r
-            jButton2.setText("Add");\r
-            jButton2.addActionListener(new java.awt.event.ActionListener() {\r
+    private JButton getJButtonAddBuildTarget() {\r
+        if (jButtonAddBuildTarget == null) {\r
+            jButtonAddBuildTarget = new JButton();\r
+            jButtonAddBuildTarget.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
+            jButtonAddBuildTarget.setBounds(new java.awt.Rectangle(valueCenter - buttonWidth - 5, rowThree,\r
+                                                                   buttonWidth, oneRowHeight));\r
+            jButtonAddBuildTarget.setLocation(new java.awt.Point(valueCenter - buttonWidth - 5, rowThree));\r
+            jButtonAddBuildTarget.setText("Add");\r
+            jButtonAddBuildTarget.setVisible(true);\r
+\r
+            jButtonAddBuildTarget.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
-                    if (jTextField1.getText().length() > 0) {\r
-                        String[] row = {jTextField1.getText()};\r
-                        imageEntryPointTableModel.addRow(row);\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 < jTable.getRowCount(); ++i) {\r
-                            v.add(imageEntryPointTableModel.getValueAt(i, 0));\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
         }\r
-        return jButton2;\r
+        return jButtonAddBuildTarget;\r
     }\r
 \r
     /**\r
@@ -630,14 +716,32 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JButton     \r
      */\r
-    private JButton getJButton3() {\r
-        if (jButton3 == null) {\r
-            jButton3 = new JButton();\r
-            jButton3.setPreferredSize(new Dimension(70, 20));\r
-            jButton3.setText("Delete");\r
-            jButton3.setVisible(false);\r
+    private JButton getJButtonDelBuildTarget() {\r
+        if (jButtonDelBuildTarget == null) {\r
+            jButtonDelBuildTarget = new JButton();\r
+            jButtonDelBuildTarget.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
+            jButtonDelBuildTarget\r
+                                 .setBounds(new java.awt.Rectangle(valueCenter + 5, rowThree, buttonWidth, oneRowHeight));\r
+            jButtonDelBuildTarget.setLocation(new java.awt.Point(valueCenter + 5, rowThree));\r
+            jButtonDelBuildTarget.setText("Delete");\r
+            jButtonDelBuildTarget.setVisible(true);\r
+\r
+            jButtonDelBuildTarget.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTableBuildTargets.getSelectedRow() < 0 || jTableBuildTargets.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    buildTargetTableModel.removeRow(jTableBuildTargets.getSelectedRow());\r
+                    Vector<Object> v = new Vector<Object>();\r
+                    for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
+                        v.remove(buildTargetTableModel.getValueAt(i, 0));\r
+                    }\r
+                    docConsole.setSaved(false);\r
+                    ffc.setPlatformDefsBuildTargets(v);\r
+                }\r
+            });\r
         }\r
-        return jButton3;\r
+        return jButtonDelBuildTarget;\r
     }\r
 \r
     /**\r
@@ -645,301 +749,269 @@ public class FpdPlatformDefs extends IInternalFrame {
      *         \r
      * @return javax.swing.JScrollPane \r
      */\r
-    private JScrollPane getJScrollPane2() {\r
-        if (jScrollPane2 == null) {\r
-            jScrollPane2 = new JScrollPane();\r
-            jScrollPane2.setPreferredSize(new Dimension(453, 100));\r
-            jScrollPane2.setViewportView(getJTable());\r
-        }\r
-        return jScrollPane2;\r
-    }\r
+    private JScrollPane getJScrollPaneBuildTargets() {\r
+        if (jScrollPaneBuildTargets == null) {\r
+            jScrollPaneBuildTargets = new JScrollPane();\r
+            jScrollPaneBuildTargets.setPreferredSize(new Dimension(tableWidth - 20, tableHeight - 20));\r
+            jScrollPaneBuildTargets.setBounds(new java.awt.Rectangle(valueColumn, rowFour, tableWidth - 5,\r
+                                                                     tableHeight - 5));\r
+            jScrollPaneBuildTargets.setLocation(new java.awt.Point(valueColumn, rowFour));\r
+            jScrollPaneBuildTargets\r
+                                   .setBorder(javax.swing.BorderFactory\r
+                                                                       .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
 \r
-    /**\r
-     * This method initializes jScrollPane3    \r
-     *         \r
-     * @return javax.swing.JScrollPane \r
-     */\r
-    private JScrollPane getJScrollPane3() {\r
-        if (jScrollPane3 == null) {\r
-            jScrollPane3 = new JScrollPane();\r
-            jScrollPane3.setPreferredSize(new java.awt.Dimension(453,100));\r
-            jScrollPane3.setViewportView(getJTable2());\r
+            jScrollPaneBuildTargets.setViewportView(getJTableBuildTargets());\r
         }\r
-        return jScrollPane3;\r
+        return jScrollPaneBuildTargets;\r
     }\r
 \r
     /**\r
-     * This method initializes jTable2 \r
-     *         \r
-     * @return javax.swing.JTable      \r
+     * This method initializes jTable   \r
+     *  \r
+     * @return javax.swing.JTable   \r
      */\r
-    private JTable getJTable2() {\r
-        if (jTable2 == null) {\r
-            skuInfoTableModel = new SkuInfoTableModel();\r
-            skuInfoTableModel.addColumn("SKU ID");\r
-            skuInfoTableModel.addColumn("Name");\r
-            jTable2 = new JTable(skuInfoTableModel);\r
-            \r
-            jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-            \r
-            jTable2.getModel().addTableModelListener(new TableModelListener() {\r
+    private JTable getJTableBuildTargets() {\r
+        if (jTableBuildTargets == null) {\r
+            buildTargetTableModel = new TargetTableModel();\r
+\r
+            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
                 public void tableChanged(TableModelEvent arg0) {\r
                     // TODO Auto-generated method stub\r
-                    int row = arg0.getFirstRow();\r
-                    TableModel m = (TableModel)arg0.getSource();\r
-                    if (arg0.getType() == TableModelEvent.UPDATE){\r
+                    selectedRow = jTableBuildTargets.getSelectedRow();\r
+                    if (selectedRow < 0) {\r
+                        return;\r
+                    }\r
+                    TableModel m = (TableModel) arg0.getSource();\r
+                    if (arg0.getType() == TableModelEvent.UPDATE) {\r
                         //ToDo Data Validition check.\r
-                        String id = m.getValueAt(row, 0)+"";\r
-                        String name = m.getValueAt(row, 1)+"";\r
+                        Vector<Object> v = new Vector<Object>();\r
+                        for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
+                            v.add(m.getValueAt(i, 0));\r
+                        }\r
                         docConsole.setSaved(false);\r
-                        ffc.updatePlatformDefsSkuInfo(row, id, name);\r
+                        ffc.setPlatformDefsBuildTargets(v);\r
                     }\r
                 }\r
             });\r
+\r
         }\r
-        return jTable2;\r
+        return jTableBuildTargets;\r
     }\r
 \r
     /**\r
-     * This method initializes jCheckBox       \r
-     *         \r
-     * @return javax.swing.JCheckBox   \r
+     * This method initializes jTextField2  \r
+     *  \r
+     * @return javax.swing.JTextField   \r
      */\r
-    private JCheckBox getJCheckBox() {\r
-        if (jCheckBox == null) {\r
-            jCheckBox = new JCheckBox();\r
-            jCheckBox.setPreferredSize(new java.awt.Dimension(50,20));\r
-            jCheckBox.setText("EBC");\r
-            jCheckBox.addItemListener(new java.awt.event.ItemListener() {\r
-                public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
-                    if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
-                        return;\r
-                    }\r
-                    ffc.setPlatformDefsSupportedArchs(v);\r
-                }\r
-            });\r
+    private JTextField getJTextFieldSkuId() {\r
+        if (jTextFieldSkuId == null) {\r
+            jTextFieldSkuId = new JTextField();\r
+            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 jCheckBox;\r
+        return jTextFieldSkuId;\r
     }\r
 \r
     /**\r
-     * This method initializes jCheckBox5      \r
-     *         \r
-     * @return javax.swing.JCheckBox   \r
+     * This method initializes jTextField3  \r
+     *  \r
+     * @return javax.swing.JTextField   \r
      */\r
-    private JCheckBox getJCheckBox5() {\r
-        if (jCheckBox5 == null) {\r
-            jCheckBox5 = new JCheckBox();\r
-            jCheckBox5.setPreferredSize(new java.awt.Dimension(52,20));\r
-            jCheckBox5.setText("ARM");\r
-            jCheckBox5.setVisible(false);\r
-            jCheckBox5.addItemListener(new java.awt.event.ItemListener() {\r
-                public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
-                    if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
-                        return;\r
-                    }\r
-                    ffc.setPlatformDefsSupportedArchs(v);\r
-                }\r
-            });\r
+    private JTextField getJTextFieldSkuName() {\r
+        if (jTextFieldSkuName == null) {\r
+            jTextFieldSkuName = new JTextField();\r
+            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 jCheckBox5;\r
+        return jTextFieldSkuName;\r
     }\r
 \r
     /**\r
-     * This method initializes jCheckBox6      \r
-     *         \r
-     * @return javax.swing.JCheckBox   \r
+     * This method initializes jButton  \r
+     *  \r
+     * @return javax.swing.JButton  \r
      */\r
-    private JCheckBox getJCheckBox6() {\r
-        if (jCheckBox6 == null) {\r
-            jCheckBox6 = new JCheckBox();\r
-            jCheckBox6.setPreferredSize(new Dimension(50, 20));\r
-            jCheckBox6.setText("PPC");\r
-            jCheckBox6.setVisible(false);\r
-            jCheckBox6.addItemListener(new java.awt.event.ItemListener() {\r
-                public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    Vector<Object> v = new Vector<Object>();\r
-                    getToolChain(v);\r
-                    if (v.size() == 0) {\r
-                        JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");\r
-                        return;\r
+    private JButton getJButtonSkuAdd() {\r
+        if (jButtonSkuAdd == null) {\r
+            jButtonSkuAdd = new JButton();\r
+\r
+            jButtonSkuAdd.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
+            jButtonSkuAdd.setBounds(new java.awt.Rectangle(valueCenter - buttonWidth - 5, rowEight, buttonWidth,\r
+                                                           oneRowHeight));\r
+            jButtonSkuAdd.setLocation(new java.awt.Point(valueCenter - buttonWidth - 5, rowEight));\r
+            jButtonSkuAdd.setText("Add");\r
+            jButtonSkuAdd.setVisible(true);\r
+\r
+            jButtonSkuAdd.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTextFieldSkuId.getText().length() > 0) {\r
+                        String[] row = { jTextFieldSkuId.getText(), jTextFieldSkuName.getText() };\r
+                        skuInfoTableModel.addRow(row);\r
+                        docConsole.setSaved(false);\r
+                        ffc.genPlatformDefsSkuInfo(row[0], row[1]);\r
                     }\r
-                    ffc.setPlatformDefsSupportedArchs(v);\r
                 }\r
             });\r
         }\r
-        return jCheckBox6;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel8 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel8() {\r
-        if (jPanel8 == null) {\r
-            FlowLayout flowLayout1 = new FlowLayout();\r
-            flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
-            jLabel1 = new JLabel();\r
-            jLabel1.setText("Output Directory");\r
-            jLabel7 = new JLabel();\r
-            jLabel7.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jLabel7.setText("");\r
-            jPanel8 = new JPanel();\r
-            jPanel8.setLayout(flowLayout1);\r
-            jPanel8.setPreferredSize(new java.awt.Dimension(450,100));\r
-            jPanel8.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
-            jPanel8.add(getJCheckBox4(), null);\r
-            jPanel8.add(getJComboBox(), null);\r
-            jPanel8.add(jLabel7, null);\r
-            jPanel8.add(jLabel1, null);\r
-            jPanel8.add(getJTextField(), null);\r
-        }\r
-        return jPanel8;\r
+        return jButtonSkuAdd;\r
     }\r
 \r
     /**\r
-     * This method initializes jTextField      \r
-     *         \r
-     * @return javax.swing.JTextField  \r
+     * This method initializes jButton1 \r
+     *  \r
+     * @return javax.swing.JButton  \r
      */\r
-    private JTextField getJTextField() {\r
-        if (jTextField == null) {\r
-            jTextField = new JTextField();\r
-            jTextField.setPreferredSize(new java.awt.Dimension(300,20));\r
-            jTextField.addFocusListener(new java.awt.event.FocusAdapter() {\r
-                public void focusLost(java.awt.event.FocusEvent e) {\r
+    private JButton getJButtonSkuDel() {\r
+        if (jButtonSkuDel == null) {\r
+            jButtonSkuDel = new JButton();\r
+            jButtonSkuDel.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
+            jButtonSkuDel.setBounds(new java.awt.Rectangle(valueCenter + 5, rowEight, buttonWidth, oneRowHeight));\r
+            jButtonSkuDel.setLocation(new java.awt.Point(valueCenter + 5, rowEight));\r
+            jButtonSkuDel.setText("Delete");\r
+            jButtonSkuDel.setVisible(true);\r
+            jButtonSkuDel.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTableSkuInfo.isEditing()) {\r
+                        jTableSkuInfo.getCellEditor().stopCellEditing();\r
+                    }\r
+                    if (jTableSkuInfo.getSelectedRow() < 1) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
-                    ffc.setPlatformDefsOutputDir(jTextField.getText());\r
+                    ffc.removePlatformDefsSkuInfo(jTableSkuInfo.getSelectedRow());\r
+                    skuInfoTableModel.removeRow(jTableSkuInfo.getSelectedRow());\r
                 }\r
             });\r
         }\r
-        return jTextField;\r
+        return jButtonSkuDel;\r
     }\r
 \r
     /**\r
-     * This method initializes jPanel9 \r
+     * This method initializes jScrollPane3    \r
      *         \r
-     * @return javax.swing.JPanel      \r
+     * @return javax.swing.JScrollPane \r
      */\r
-    private JPanel getJPanel9() {\r
-        if (jPanel9 == null) {\r
-            jLabel6 = new JLabel();\r
-            jLabel6.setPreferredSize(new Dimension(280, 20));\r
-            jLabel6.setText("                                                 ");\r
-            jLabel5 = new JLabel();\r
-            jLabel5.setPreferredSize(new Dimension(40, 20));\r
-            jLabel5.setText("Name");\r
-            jLabel4 = new JLabel();\r
-            jLabel4.setPreferredSize(new Dimension(20, 20));\r
-            jLabel4.setText("ID");\r
-            jLabel3 = new JLabel();\r
-            jLabel3.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jLabel3.setText("SKU Information");\r
-            jPanel9 = new JPanel();\r
-            jPanel9.setPreferredSize(new java.awt.Dimension(450,70));\r
-            jPanel9.add(jLabel3, null);\r
-            jPanel9.add(jLabel6, null);\r
-            jPanel9.add(jLabel4, null);\r
-            jPanel9.add(getJTextField2(), null);\r
-            jPanel9.add(jLabel5, null);\r
-            jPanel9.add(getJTextField3(), null);\r
-            jPanel9.add(getJButton(), null);\r
-            jPanel9.add(getJButton1(), null);\r
-        }\r
-        return jPanel9;\r
-    }\r
+    private JScrollPane getJScrollPaneSkuInfo() {\r
+        if (jScrollPaneSkuInfo == null) {\r
+            jScrollPaneSkuInfo = new JScrollPane();\r
+            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
 \r
-    /**\r
-     * This method initializes jTextField2     \r
-     *         \r
-     * @return javax.swing.JTextField  \r
-     */\r
-    private JTextField getJTextField2() {\r
-        if (jTextField2 == null) {\r
-            jTextField2 = new JTextField();\r
-            jTextField2.setPreferredSize(new Dimension(50, 20));\r
+            jScrollPaneSkuInfo\r
+                              .setBorder(javax.swing.BorderFactory\r
+                                                                  .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
+\r
+            jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
         }\r
-        return jTextField2;\r
+        return jScrollPaneSkuInfo;\r
     }\r
 \r
     /**\r
-     * This method initializes jTextField3     \r
+     * This method initializes jTable2 \r
      *         \r
-     * @return javax.swing.JTextField  \r
+     * @return javax.swing.JTable      \r
      */\r
-    private JTextField getJTextField3() {\r
-        if (jTextField3 == null) {\r
-            jTextField3 = new JTextField();\r
-            jTextField3.setPreferredSize(new Dimension(150, 20));\r
+    private JTable getJTableSkuInfo() {\r
+        if (jTableSkuInfo == null) {\r
+            skuInfoTableModel = new SkuInfoTableModel();\r
+            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
+            jTableSkuInfo.getModel().addTableModelListener(new TableModelListener() {\r
+                public void tableChanged(TableModelEvent arg0) {\r
+                    // TODO Auto-generated method stub\r
+                    int row = arg0.getFirstRow();\r
+                    TableModel m = (TableModel) arg0.getSource();\r
+                    if (arg0.getType() == TableModelEvent.UPDATE) {\r
+                        //ToDo Data Validition check.\r
+                        String id = m.getValueAt(row, 0) + "";\r
+                        String name = m.getValueAt(row, 1) + "";\r
+                        docConsole.setSaved(false);\r
+                        ffc.updatePlatformDefsSkuInfo(row, id, name);\r
+                    }\r
+                }\r
+            });\r
         }\r
-        return jTextField3;\r
+        return jTableSkuInfo;\r
     }\r
 \r
     /**\r
-     * This method initializes jButton \r
-     *         \r
-     * @return javax.swing.JButton     \r
+     * This method initializes jComboBox    \r
+     *  \r
+     * @return javax.swing.JComboBox    \r
      */\r
-    private JButton getJButton() {\r
-        if (jButton == null) {\r
-            jButton = new JButton();\r
-            jButton.setPreferredSize(new Dimension(70, 20));\r
-            jButton.setText("Add");\r
-            jButton.addActionListener(new java.awt.event.ActionListener() {\r
-                public void actionPerformed(java.awt.event.ActionEvent e) {\r
-                    if (jTextField2.getText().length() > 0) {\r
-                        String[] row = {jTextField2.getText(), jTextField3.getText()};\r
-                        skuInfoTableModel.addRow(row);\r
+    private JComboBox getJComboBoxInterDir() {\r
+        if (jComboBoxInterDir == null) {\r
+            jComboBoxInterDir = new JComboBox();\r
+            jComboBoxInterDir.setPreferredSize(new Dimension(75, oneRowHeight));\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
                         docConsole.setSaved(false);\r
-                        ffc.genPlatformDefsSkuInfo(row[0], row[1]);\r
                     }\r
+                    ffc.setPlatformDefsInterDir(jComboBoxInterDir.getSelectedItem() + "");\r
                 }\r
             });\r
         }\r
-        return jButton;\r
+        return jComboBoxInterDir;\r
     }\r
 \r
     /**\r
-     * This method initializes jButton1        \r
+     * This method initializes jTextField      \r
      *         \r
-     * @return javax.swing.JButton     \r
+     * @return javax.swing.JTextField  Row Twelve      \r
      */\r
-    private JButton getJButton1() {\r
-        if (jButton1 == null) {\r
-            jButton1 = new JButton();\r
-            jButton1.setPreferredSize(new Dimension(70, 20));\r
-            jButton1.setText("Delete");\r
-            jButton1.addActionListener(new java.awt.event.ActionListener() {\r
-                public void actionPerformed(java.awt.event.ActionEvent e) {\r
-                    if (jTable2.isEditing()) {\r
-                        jTable2.getCellEditor().stopCellEditing();\r
-                    }\r
-                    if (jTable2.getSelectedRow() < 1) {\r
-                        return;\r
-                    }\r
+    private JTextField getJTextFieldOutputDir() {\r
+        if (jTextFieldOutputDir == null) {\r
+            jTextFieldOutputDir = new JTextField();\r
+            jTextFieldOutputDir.setPreferredSize(new java.awt.Dimension(290, 20));\r
+            jTextFieldOutputDir.setBounds(new java.awt.Rectangle(valueColumn + offsetWidth, rowTwelve, valueWidth - 30,\r
+                                                                 oneRowHeight));\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
-                    ffc.removePlatformDefsSkuInfo(jTable2.getSelectedRow());\r
-                    skuInfoTableModel.removeRow(jTable2.getSelectedRow());\r
+                    ffc.setPlatformDefsOutputDir(jTextFieldOutputDir.getText());\r
                 }\r
             });\r
         }\r
-        return jButton1;\r
+        return jTextFieldOutputDir;\r
     }\r
 \r
+} //  @jve:decl-index=0:visual-constraint="10,10"\r
 \r
-}  //  @jve:decl-index=0:visual-constraint="10,10"\r
-\r
-class SkuInfoTableModel extends DefaultTableModel{\r
-    /**\r
-     * \r
-     */\r
+class SkuInfoTableModel extends DefaultTableModel {\r
     private static final long serialVersionUID = 1L;\r
 \r
     public boolean isCellEditable(int row, int column) {\r
@@ -950,7 +1022,7 @@ class SkuInfoTableModel extends DefaultTableModel{
     }\r
 }\r
 \r
-class TargetTableModel extends DefaultTableModel{\r
+class TargetTableModel extends DefaultTableModel {\r
     private static final long serialVersionUID = 1L;\r
 \r
     public boolean isCellEditable(int row, int column) {\r
@@ -960,5 +1032,3 @@ class TargetTableModel extends DefaultTableModel{
         return true;\r
     }\r
 }\r
-\r
-\r