1. Add help for ToolChainConfig
authorhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 7 Jul 2006 05:38:39 +0000 (05:38 +0000)
committerhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 7 Jul 2006 05:38:39 +0000 (05:38 +0000)
2. Fix data validation bug in PCD of Msa

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@814 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/About.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/Clone.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfig.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfigHelp.java [new file with mode: 0644]
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataType.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/ToolChainConfigVector.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDialog.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModulePCDs.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/WorkspaceTools.java

index c27ba89ed73d4eab7457266ad6eb631ba21a5ffe..8a2c682ca0b00476791af453d15c5e1c305d79b7 100644 (file)
@@ -129,7 +129,7 @@ public class About extends IDialog {
             jLabel.setToolTipText("");\r
             jLabel.setBounds(new java.awt.Rectangle(25,90,270,20));\r
             jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);\r
-            jLabel.setText("Framework Wizard 1.0");\r
+            jLabel.setText(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION);\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
             jContentPane.setSize(new java.awt.Dimension(320,235));\r
index 09e8f6d00f807a294f5e1f45585daaee8ec87e01..8f1ec6c6bab4e9ab0257256769cc3a00bdb9af4a 100644 (file)
@@ -675,7 +675,7 @@ public class Clone extends IDialog {
             //\r
             trg = getModulePath();\r
             newId.setPath(trg);\r
-            vFiles = wt.getAllModuleFiles(src);\r
+            vFiles = wt.getAllModuleFilesPath(src);\r
             \r
             //\r
             // First copy all files to new directory\r
@@ -738,7 +738,7 @@ public class Clone extends IDialog {
             //\r
             trg = this.getPackagePath();\r
             newId.setPath(trg);\r
-            vFiles = wt.getAllPakcageFiles(src);\r
+            vFiles = wt.getAllPakcageFilesPath(src);\r
             \r
             FileOperation.copyFile(src, trg);\r
             for (int index = 1; index < vFiles.size(); index++) {\r
index 0c48798cdcf4aa531c183f9efc92e08ca9bcac90..af4c2a6fc538db4f45e070ebcab766d299c61ecb 100644 (file)
@@ -136,10 +136,6 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
 \r
     private int currentOpeningPlatformIndex = -1;\r
 \r
-    private String projectName = "FrameworkWizard";\r
-    \r
-    private String projectVersion = "0.5";\r
-\r
     private IDefaultMutableTreeNode dmtnRoot = null;\r
 \r
     private IDefaultMutableTreeNode dmtnModuleDescription = null;\r
@@ -1690,7 +1686,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         this.addComponentListener(this);\r
         this.getCompontentsFromFrameworkDatabase();\r
         this.setContentPane(getJContentPane());\r
-        this.setTitle(projectName + " " + projectVersion + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+        this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
         this.setExitType(1);\r
 \r
         //\r
@@ -2879,7 +2875,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             // Reinit whole window\r
             //\r
             closeAll();\r
-            this.setTitle(projectName + " " + projectVersion + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+            this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
         }\r
         sw.dispose();\r
     }\r
index 393e70cb76e994fc9b26f57e11d09d0290d953c9..8d0055a4033f5c3f2c8358dfad9473d9be42cfb6 100644 (file)
@@ -20,20 +20,29 @@ import java.io.IOException;
 \r
 import javax.swing.JButton;\r
 import javax.swing.JFileChooser;\r
+import javax.swing.JLabel;\r
 import javax.swing.JPanel;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JTable;\r
+import javax.swing.JTextField;\r
+import javax.swing.ListSelectionModel;\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
+import javax.swing.table.TableModel;\r
 \r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.Identifications.ToolChainConfigId;\r
 import org.tianocore.frameworkwizard.common.Identifications.ToolChainConfigVector;\r
 import org.tianocore.frameworkwizard.common.ui.IDialog;\r
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.workspace.Workspace;\r
 \r
-public class ToolChainConfig extends IDialog {\r
+public class ToolChainConfig extends IDialog implements ListSelectionListener, TableModelListener{\r
 \r
     ///\r
     /// Define Class Members\r
@@ -58,14 +67,31 @@ public class ToolChainConfig extends IDialog {
                               + DataType.FILE_SEPARATOR + "Conf";\r
 \r
     private String currentFile = Tools.addFileSeparator(toolsDir) + "tools_def.template";\r
-\r
+    \r
     private ToolChainConfigVector vtcc = new ToolChainConfigVector();\r
 \r
+    private JLabel jLabelName = null;\r
+\r
+    private JTextField jTextFieldName = null;\r
+\r
+    private JLabel jLabelValue = null;\r
+\r
+    private JTextField jTextFieldValue = null;\r
+\r
+    private JButton jButtonAdd = null;\r
+\r
+    private JButton jButtonRemove = null;\r
+\r
+    private int selectedRow = -1;\r
+\r
+    private JButton jButtonHelp = null;\r
+    \r
     /**\r
-     * This method initializes jScrollPane     \r
-     *         \r
-     * @return javax.swing.JScrollPane \r
-     */\r
+     This method initializes jScrollPane       \r
+     \r
+     @return javax.swing.JScrollPane   \r
+     \r
+     **/\r
     private JScrollPane getJScrollPane() {\r
         if (jScrollPane == null) {\r
             jScrollPane = new JScrollPane();\r
@@ -76,29 +102,42 @@ public class ToolChainConfig extends IDialog {
     }\r
 \r
     /**\r
-     * This method initializes jTable  \r
-     *         \r
-     * @return javax.swing.JTable      \r
-     */\r
+     This method initializes jTable    \r
+     \r
+     @return javax.swing.JTable        \r
+     \r
+     **/\r
     private JTable getJTable() {\r
         if (jTable == null) {\r
-            jTable = new JTable();\r
-            //            model = new DefaultTableModel();\r
-            //            jTable = new JTable(model);\r
-            //            jTable.setRowHeight(20);\r
+//            Vector<String> vTableHeader = new Vector<String>();\r
+//            vTableHeader.addElement("Name");\r
+//            vTableHeader.addElement("Value");\r
+//            \r
+            model = new DefaultTableModel();\r
+            //model = new DefaultTableModel(vTableHeader);\r
+            jTable = new JTable(model);\r
+            jTable.setRowHeight(20);\r
+\r
+            model.addColumn("Property");\r
+            model.addColumn("Value");\r
+\r
+            jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+            jTable.getSelectionModel().addListSelectionListener(this);\r
+            jTable.getModel().addTableModelListener(this);\r
         }\r
         return jTable;\r
     }\r
 \r
     /**\r
-     * This method initializes jButtonOpen     \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
+     This method initializes jButtonOpen       \r
+     \r
+     @return javax.swing.JButton       \r
+     \r
+     **/\r
     private JButton getJButtonOpen() {\r
         if (jButtonOpen == null) {\r
             jButtonOpen = new JButton();\r
-            jButtonOpen.setBounds(new java.awt.Rectangle(140, 390, 120, 25));\r
+            jButtonOpen.setBounds(new java.awt.Rectangle(40, 405, 120, 20));\r
             jButtonOpen.setText("Open a file");\r
             jButtonOpen.addActionListener(this);\r
         }\r
@@ -106,14 +145,15 @@ public class ToolChainConfig extends IDialog {
     }\r
 \r
     /**\r
-     * This method initializes jButtonSave     \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
+     This method initializes jButtonSave       \r
+     \r
+     @return javax.swing.JButton       \r
+     \r
+     **/\r
     private JButton getJButtonSave() {\r
         if (jButtonSave == null) {\r
             jButtonSave = new JButton();\r
-            jButtonSave.setBounds(new java.awt.Rectangle(280, 390, 120, 25));\r
+            jButtonSave.setBounds(new java.awt.Rectangle(170, 405, 120, 20));\r
             jButtonSave.setText("Save to a file");\r
             jButtonSave.addActionListener(this);\r
         }\r
@@ -121,20 +161,96 @@ public class ToolChainConfig extends IDialog {
     }\r
 \r
     /**\r
-     * This method initializes jButtonClose    \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
+     This method initializes jButtonClose      \r
+     \r
+     @return javax.swing.JButton       \r
+     \r
+     **/\r
     private JButton getJButtonClose() {\r
         if (jButtonClose == null) {\r
             jButtonClose = new JButton();\r
-            jButtonClose.setBounds(new java.awt.Rectangle(465, 390, 100, 25));\r
+            jButtonClose.setBounds(new java.awt.Rectangle(490, 405, 80, 20));\r
             jButtonClose.setText("Close");\r
             jButtonClose.addActionListener(this);\r
         }\r
         return jButtonClose;\r
     }\r
 \r
+    /**\r
+     This method initializes jTextFieldName    \r
+     \r
+     @return javax.swing.JTextField    \r
+     \r
+     **/\r
+    private JTextField getJTextFieldName() {\r
+        if (jTextFieldName == null) {\r
+            jTextFieldName = new JTextField();\r
+            jTextFieldName.setBounds(new java.awt.Rectangle(60, 365, 140, 20));\r
+        }\r
+        return jTextFieldName;\r
+    }\r
+\r
+    /**\r
+     This method initializes jTextFieldValue   \r
+     \r
+     @return javax.swing.JTextField    \r
+     \r
+     **/\r
+    private JTextField getJTextFieldValue() {\r
+        if (jTextFieldValue == null) {\r
+            jTextFieldValue = new JTextField();\r
+            jTextFieldValue.setBounds(new java.awt.Rectangle(250, 365, 140, 20));\r
+        }\r
+        return jTextFieldValue;\r
+    }\r
+\r
+    /**\r
+     This method initializes jButtonAdd        \r
+     \r
+     @return javax.swing.JButton       \r
+     \r
+     **/\r
+    private JButton getJButtonAdd() {\r
+        if (jButtonAdd == null) {\r
+            jButtonAdd = new JButton();\r
+            jButtonAdd.setBounds(new java.awt.Rectangle(400, 365, 80, 20));\r
+            jButtonAdd.setText("Add");\r
+            jButtonAdd.addActionListener(this);\r
+        }\r
+        return jButtonAdd;\r
+    }\r
+\r
+    /**\r
+     This method initializes jButtonRemove     \r
+     \r
+     @return javax.swing.JButton       \r
+     \r
+     **/\r
+    private JButton getJButtonRemove() {\r
+        if (jButtonRemove == null) {\r
+            jButtonRemove = new JButton();\r
+            jButtonRemove.setBounds(new java.awt.Rectangle(490, 365, 80, 20));\r
+            jButtonRemove.setText("Remove");\r
+            jButtonRemove.addActionListener(this);\r
+        }\r
+        return jButtonRemove;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jButtonHelp     \r
+     *         \r
+     * @return javax.swing.JButton     \r
+     */\r
+    private JButton getJButtonHelp() {\r
+        if (jButtonHelp == null) {\r
+            jButtonHelp = new JButton();\r
+            jButtonHelp.setBounds(new java.awt.Rectangle(300,405,120,20));\r
+            jButtonHelp.setText("Help");\r
+            jButtonHelp.addActionListener(this);\r
+        }\r
+        return jButtonHelp;\r
+    }\r
+\r
     /**\r
      \r
      @param args\r
@@ -154,10 +270,9 @@ public class ToolChainConfig extends IDialog {
     }\r
 \r
     /**\r
-     * This method initializes this\r
-     * \r
-     * @return void\r
-     */\r
+     This method initializes this\r
+     \r
+     **/\r
     private void init() {\r
         this.setSize(600, 480);\r
         this.setContentPane(getJContentPane());\r
@@ -185,18 +300,32 @@ public class ToolChainConfig extends IDialog {
     }\r
 \r
     /**\r
-     * This method initializes jContentPane\r
-     * \r
-     * @return javax.swing.JPanel\r
-     */\r
+     This method initializes jContentPane\r
+     \r
+     @return javax.swing.JPanel\r
+     \r
+     **/\r
     private JPanel getJContentPane() {\r
         if (jContentPane == null) {\r
+            jLabelValue = new JLabel();\r
+            jLabelValue.setBounds(new java.awt.Rectangle(205, 365, 40, 20));\r
+            jLabelValue.setText("Value");\r
+            jLabelName = new JLabel();\r
+            jLabelName.setBounds(new java.awt.Rectangle(15, 365, 40, 20));\r
+            jLabelName.setText("Name");\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
             jContentPane.add(getJScrollPane(), null);\r
             jContentPane.add(getJButtonOpen(), null);\r
             jContentPane.add(getJButtonSave(), null);\r
             jContentPane.add(getJButtonClose(), null);\r
+            jContentPane.add(jLabelName, null);\r
+            jContentPane.add(getJTextFieldName(), null);\r
+            jContentPane.add(jLabelValue, null);\r
+            jContentPane.add(getJTextFieldValue(), null);\r
+            jContentPane.add(getJButtonAdd(), null);\r
+            jContentPane.add(getJButtonRemove(), null);\r
+            jContentPane.add(getJButtonHelp(), null);\r
         }\r
         return jContentPane;\r
     }\r
@@ -214,15 +343,15 @@ public class ToolChainConfig extends IDialog {
 \r
         if (arg0.getSource() == jButtonOpen) {\r
             JFileChooser fc = new JFileChooser();\r
-            fc.setAcceptAllFileFilterUsed(false);\r
+            fc.setAcceptAllFileFilterUsed(true);\r
             fc.setCurrentDirectory(new File(toolsDir));\r
 \r
-            int result = fc.showSaveDialog(new JPanel());\r
+            int result = fc.showOpenDialog(new JPanel());\r
             if (result == JFileChooser.APPROVE_OPTION) {\r
                 try {\r
                     vtcc.removeAll();\r
                     vtcc.parseFile(fc.getSelectedFile().getPath());\r
-                    currentFile = fc.getSelectedFile().getPath();                    \r
+                    currentFile = fc.getSelectedFile().getPath();\r
                     this.setTitle("Tool Chain Configuration" + " [" + currentFile + "]");\r
                 } catch (IOException e) {\r
                     Log.err(this.currentFile + "Read Error", e.getMessage());\r
@@ -235,13 +364,45 @@ public class ToolChainConfig extends IDialog {
 \r
         if (arg0.getSource() == jButtonSave) {\r
             JFileChooser fc = new JFileChooser();\r
-            fc.setAcceptAllFileFilterUsed(false);\r
-            fc.setCurrentDirectory(new File(toolsDir));\r
+            fc.setAcceptAllFileFilterUsed(true);\r
+            fc.setSelectedFile(new File(currentFile));\r
 \r
-            int result = fc.showOpenDialog(new JPanel());\r
+            int result = fc.showSaveDialog(new JPanel());\r
             if (result == JFileChooser.APPROVE_OPTION) {\r
+                currentFile = fc.getSelectedFile().getPath();\r
+                try {\r
+                    vtcc.saveFile(currentFile);\r
+                } catch (IOException e) {\r
+                    Log.err(this.currentFile + "Write Error", e.getMessage());\r
+                    e.printStackTrace();\r
+                    return;\r
+                }\r
+            }\r
+        }\r
+\r
+        if (arg0.getSource() == jButtonAdd) {\r
+            if (check()) {\r
+                String[] row = { jTextFieldName.getText(), jTextFieldValue.getText() };\r
+                this.vtcc.addToolChainConfigs(new ToolChainConfigId(row[0], row[1]));\r
+                this.model.addRow(row);\r
             }\r
         }\r
+\r
+        if (arg0.getSource() == jButtonRemove) {\r
+            if (jTable.isEditing()) {\r
+                jTable.getCellEditor().stopCellEditing();\r
+            }\r
+            if (selectedRow > -1) {\r
+                this.model.removeRow(selectedRow);\r
+                this.vtcc.removeToolChainConfigs(selectedRow);\r
+                selectedRow = -1;\r
+            }\r
+        }\r
+        \r
+        if (arg0.getSource() == jButtonHelp) {\r
+            ToolChainConfigHelp tcch = new ToolChainConfigHelp();\r
+            tcch.setVisible(true);\r
+        }\r
     }\r
 \r
     /**\r
@@ -249,17 +410,71 @@ public class ToolChainConfig extends IDialog {
      \r
      **/\r
     private void showTable() {\r
-        model = new DefaultTableModel();\r
-        jTable = new JTable(model);\r
-        jTable.setRowHeight(20);\r
-\r
-        model.addColumn("Name");\r
-        model.addColumn("Value");\r
+        clearAll();\r
\r
         if (vtcc.size() > 0) {\r
             for (int index = 0; index < vtcc.size(); index++) {\r
                 model.addRow(vtcc.toStringVector(index));\r
             }\r
         }\r
-        this.jScrollPane.setViewportView(this.jTable);\r
+        this.jTable.repaint();\r
+        this.jTable.updateUI();\r
+        //this.jScrollPane.setViewportView(this.jTable);\r
+    }\r
+\r
+    /**\r
+     Clear all table rows\r
+     \r
+     **/\r
+    private void clearAll() {\r
+        if (model != null) {\r
+            for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+                model.removeRow(index);\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     Check if name or value is empty\r
+     \r
+     @return\r
+     \r
+     **/\r
+    private boolean check() {\r
+        if (isEmpty(this.jTextFieldName.getText())) {\r
+            Log.err("Add Tool Chain", "Name couldn't be empty!");\r
+            return false;\r
+        }\r
+\r
+        if (isEmpty(this.jTextFieldValue.getText())) {\r
+            Log.err("Add Tool Chain", "Value couldn't be empty");\r
+            return false;\r
+        }\r
+        return true;\r
+    }\r
+\r
+    /* (non-Javadoc)\r
+     * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+     *\r
+     */\r
+    public void valueChanged(ListSelectionEvent arg0) {\r
+        if (arg0.getValueIsAdjusting()) {\r
+            return;\r
+        }\r
+        ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+        if (lsm.isSelectionEmpty()) {\r
+            return;\r
+        } else {\r
+            selectedRow = lsm.getMinSelectionIndex();\r
+        }\r
+    }\r
+\r
+    public void tableChanged(TableModelEvent arg0) {\r
+        int row = arg0.getFirstRow();\r
+        TableModel m = (TableModel)arg0.getSource();\r
+        if (arg0.getType() == TableModelEvent.UPDATE){\r
+            this.vtcc.getToolChainConfigs(row).setName(m.getValueAt(row, 0).toString());\r
+            this.vtcc.getToolChainConfigs(row).setValue(m.getValueAt(row, 1).toString());\r
+        }\r
     }\r
 }\r
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfigHelp.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfigHelp.java
new file mode 100644 (file)
index 0000000..e6bbe16
--- /dev/null
@@ -0,0 +1,132 @@
+package org.tianocore.frameworkwizard;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ActionListener;\r
+\r
+import javax.swing.JFrame;\r
+import javax.swing.JPanel;\r
+import javax.swing.JTextPane;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import javax.swing.JButton;\r
+\r
+\r
+public class ToolChainConfigHelp extends JFrame implements ActionListener {\r
+\r
+    ///\r
+    ///\r
+    ///\r
+    private static final long serialVersionUID = -6315081029366587222L;\r
+\r
+    private JPanel jContentPane = null;\r
+\r
+    private String helpContent = "";\r
+\r
+    private JTextPane jTextPane = null;\r
+\r
+    private JButton jButtonClose = null;\r
+\r
+    /**\r
+     * This method initializes jTextPane       \r
+     *         \r
+     * @return javax.swing.JTextPane   \r
+     */\r
+    private JTextPane getJTextPane() {\r
+        if (jTextPane == null) {\r
+            jTextPane = new JTextPane();\r
+            jTextPane.setBounds(new java.awt.Rectangle(10,10,600,420));\r
+            jTextPane.setBackground(new java.awt.Color(238,238,238));\r
+            jTextPane.setEditable(false);\r
+            helpContent = helpContent\r
+            + "The coding forthe Property is: TARGET_TAGNAME_ARCH_COMMAND_ATTR" + DataType.UNIX_LINE_SEPARATOR\r
+            + "The Value, is either afull path, full path and filename or a reserved word." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "TARGET  - DEBUG and RELEASE are predefined, however the user may define one or more of their own TARGET types in this file." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "TAGNAME - HOST, MSFT, GCC, INTC are predefined, however the user may define one or more of their own TAGNAME keywords in this file." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "ARCH    - EDK II supports IA32, X64, IPF and EBC at this time." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "COMMAND - Predefined command codes are listed in the tools_def.txt file, however the user can specify additional command codes for their one, non-standard tools." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "ATTR    - Predefined Attributes are listed in the tools_def.txt file." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "NOTE: The TAGNAME: HOST is reserved and MUST be defined in order to build the included Tiano tools from their C source files.  These tools have been built and tested using both Microsoft and GCC tool chains." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR\r
+            + "NOTE: The \"*\" symbol may be used as a wildcard character in most of these fields, refer to the tools_def.txt and the \"EDK II Build and Packaging Architecture Specification\" for more details." + DataType.UNIX_LINE_SEPARATOR\r
+            + DataType.UNIX_LINE_SEPARATOR;\r
+            \r
+            \r
+            jTextPane.setText(helpContent);\r
+        }\r
+        return jTextPane;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jButtonClose    \r
+     *         \r
+     * @return javax.swing.JButton     \r
+     */\r
+    private JButton getJButtonClose() {\r
+        if (jButtonClose == null) {\r
+            jButtonClose = new JButton();\r
+            jButtonClose.setBounds(new java.awt.Rectangle(480,450,80,20));\r
+            jButtonClose.setText("Close");\r
+            jButtonClose.addActionListener(this);\r
+        }\r
+        return jButtonClose;\r
+    }\r
+\r
+    /**\r
+     \r
+     @param args\r
+     \r
+     **/\r
+    public static void main(String[] args) {\r
+        ToolChainConfigHelp tcch = new ToolChainConfigHelp();\r
+        tcch.setVisible(true);\r
+    }\r
+\r
+    /**\r
+     * This is the default constructor\r
+     */\r
+    public ToolChainConfigHelp() {\r
+        super();\r
+        initialize();\r
+    }\r
+\r
+    /**\r
+     * This method initializes this\r
+     * \r
+     * @return void\r
+     */\r
+    private void initialize() {\r
+        this.setSize(625, 520);\r
+        this.setTitle("How to Setup Tool Chain Configuration");\r
+        this.setContentPane(getJContentPane());\r
+    }\r
+\r
+    /**\r
+     * This method initializes jContentPane\r
+     * \r
+     * @return javax.swing.JPanel\r
+     */\r
+    private JPanel getJContentPane() {\r
+        if (jContentPane == null) {\r
+            jContentPane = new JPanel();\r
+            jContentPane.setLayout(null);\r
+            jContentPane.add(getJTextPane(), null);\r
+            jContentPane.add(getJButtonClose(), null);\r
+        }\r
+        return jContentPane;\r
+    }\r
+\r
+    public void actionPerformed(ActionEvent arg0) {\r
+        if (arg0.getSource() == jButtonClose) {\r
+            this.dispose();\r
+        }\r
+        \r
+    }\r
+\r
+}\r
index c096b7241686120394d6fcd8f0a7ea5e5354b660..ef1b6bb92289b10e55fd838b55727746121ae1d1 100644 (file)
@@ -163,4 +163,12 @@ public class DataType {
     // Will be replaced by resource file later\r
     //\r
     public static final String SUP_ARCH_LIST_HELP_TEXT = "Deselecting a checkbox will restrict this module for use with the selected architectures, based on the list of items that are checked. If all boxes are checked, then the module will support all current AND FUTURE architectures";\r
+    \r
+    //\r
+    // Project name and version\r
+    //\r
+    public static final String PROJECT_NAME = "Framework Wizard";\r
+    \r
+    public static final String PROJECT_VERSION = "1.0";\r
+    \r
 }\r
index 347a66970e4f44c6231ae621705b45ba68eeb913..49aac3d0742a990f1b5f865ee66dd6489b35678d 100644 (file)
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
 import java.io.BufferedReader;\r
+import java.io.BufferedWriter;\r
 import java.io.FileNotFoundException;\r
 import java.io.FileReader;\r
+import java.io.FileWriter;\r
 import java.io.IOException;\r
 import java.util.Vector;\r
 \r
@@ -49,7 +51,7 @@ public class ToolChainConfigVector {
             return null;\r
         }\r
     }\r
-    \r
+\r
     public Vector<String> toStringVector(int index) {\r
         Vector<String> v = new Vector<String>();\r
         v.addElement(getToolChainConfigs(index).getName());\r
@@ -77,7 +79,7 @@ public class ToolChainConfigVector {
             vToolChainConfigs.removeElementAt(index);\r
         }\r
     }\r
-    \r
+\r
     public void removeAll() {\r
         vToolChainConfigs = new Vector<ToolChainConfigId>();\r
     }\r
@@ -89,7 +91,7 @@ public class ToolChainConfigVector {
         }\r
         return v;\r
     }\r
-    \r
+\r
     public Vector<String> getToolChainConfigsValue() {\r
         Vector<String> v = new Vector<String>();\r
         for (int index = 0; index < this.vToolChainConfigs.size(); index++) {\r
@@ -102,13 +104,29 @@ public class ToolChainConfigVector {
         return this.vToolChainConfigs.size();\r
     }\r
 \r
+    public void saveFile(String file) throws IOException {\r
+        if (size() > 0) {\r
+            FileWriter fw = new FileWriter(file);\r
+            BufferedWriter bw = new BufferedWriter(fw);\r
+            for (int index = 0; index < size(); index++) {\r
+                String line = this.getToolChainConfigs(index).getName() + " " + ToolChainConfigId.EQUALS + " "\r
+                              + this.getToolChainConfigs(index).getValue();\r
+                bw.write(line);\r
+                bw.newLine();\r
+            }\r
+            bw.flush();\r
+            bw.close();\r
+            fw.close();\r
+        }\r
+    }\r
+\r
     /**\r
-    \r
+     \r
      @param file\r
      @throws IOException\r
      @throws FileNotFoundException\r
-    \r
-    **/\r
+     \r
+     **/\r
     public void parseFile(String file) throws IOException {\r
         FileReader fr = new FileReader(file);\r
         BufferedReader br = new BufferedReader(fr);\r
@@ -118,13 +136,13 @@ public class ToolChainConfigVector {
             line = br.readLine();\r
         }\r
     }\r
-    \r
+\r
     /**\r
      Parse the input string and add name, value to vector \r
      \r
      @param line\r
-    \r
-    **/\r
+     \r
+     **/\r
     private void parseLine(String line) {\r
         String name = "";\r
         String value = "";\r
index 57f3b4e2dcfdad6a6760a46b8f56dc7795c359ed..3272d207f38472b94568d28c2872bf77693ca69d 100644 (file)
@@ -67,9 +67,6 @@ public class IDialog extends JDialog implements ActionListener {
         initialize();\r
     }\r
 \r
-    /**\r
-     * This is the override constructor\r
-     */\r
     /**\r
      This is the override constructor\r
      \r
@@ -80,6 +77,17 @@ public class IDialog extends JDialog implements ActionListener {
         super(parentFrame, modal);\r
         initialize();\r
     }\r
+    \r
+    /**\r
+     This is the override constructor\r
+     \r
+     @param parentFrame The parent frame which open the dialog\r
+     @param modal true means the dialog is modal dialog; false means the dialog is not modal dialog\r
+     **/\r
+    public IDialog(IDialog parentFrame, boolean modal) {\r
+        super(parentFrame, modal);\r
+        initialize();\r
+    }\r
 \r
     /**\r
      This method initializes this\r
index 028ad8aaedab4ac4f102ca7d06677174185f67ec..d87fca0d82f343c7ec77db4c8f436ff10cf813f0 100644 (file)
@@ -580,7 +580,7 @@ public class ModulePCDs extends IInternalFrame {
         // Check TokenSpaceGuid\r
         //\r
         if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
-            if (!DataValidation.isGuid(this.jTextFieldTokenSpaceGuid.getText())) {\r
+            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
                 Log.err("Incorrect data type for Token Space C_Name");\r
                 return false;\r
             }\r
index 73fba9a86140a8082b2c2758a1f95119d8592a3e..a87ab07794cfd53a3b0dbe29e7db5efad65f58f7 100644 (file)
@@ -20,6 +20,7 @@ import java.util.Vector;
 import org.apache.xmlbeans.XmlException;\r
 import org.tianocore.DbPathAndFilename;\r
 import org.tianocore.FrameworkDatabaseDocument;\r
+import org.tianocore.IndustryStdIncludesDocument.IndustryStdIncludes;\r
 import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
 import org.tianocore.MsaFilesDocument.MsaFiles;\r
 import org.tianocore.MsaHeaderDocument.MsaHeader;\r
@@ -96,6 +97,34 @@ public class WorkspaceTools {
         }\r
         return modulePath;\r
     }\r
+    \r
+    /**\r
+    Get all Industry Std Includes' paths from one package\r
+    \r
+    @return a Vector with all paths\r
+    \r
+    **/\r
+   public Vector<String> getAllIndustryStdIncludesOfPackage(String path) {\r
+       Vector<String> includePath = new Vector<String>();\r
+       try {\r
+           IndustryStdIncludes files = OpenFile.openSpdFile(path).getIndustryStdIncludes();\r
+           if (files != null) {\r
+               for (int index = 0; index < files.getIndustryStdHeaderList().size(); index++) {\r
+                   String temp = files.getIndustryStdHeaderList().get(index).getName();\r
+                   temp = Tools.addFileSeparator(Tools.getFilePathOnly(path)) + temp;\r
+                   temp = Tools.convertPathToCurrentOsType(temp);\r
+                   includePath.addElement(temp);\r
+               }\r
+           }\r
+       } catch (IOException e) {\r
+           e.printStackTrace();\r
+       } catch (XmlException e) {\r
+           e.printStackTrace();\r
+       } catch (Exception e) {\r
+           e.printStackTrace();\r
+       }\r
+       return includePath;\r
+   }\r
 \r
     /**\r
      Get all package basic information form the FrameworkDatabase.db file\r
@@ -583,7 +612,7 @@ public class WorkspaceTools {
      @throws Exception\r
      \r
      **/\r
-    public Vector<String> getAllModuleFiles(String path) throws IOException, XmlException, Exception {\r
+    public Vector<String> getAllModuleFilesPath(String path) throws IOException, XmlException, Exception {\r
         Vector<String> v = new Vector<String>();\r
         path = Tools.convertPathToCurrentOsType(path);\r
         v.addElement(path);\r
@@ -615,7 +644,7 @@ public class WorkspaceTools {
      @throws Exception\r
      \r
      **/\r
-    public Vector<String> getAllPakcageFiles(String path) throws IOException, XmlException, Exception {\r
+    public Vector<String> getAllPakcageFilesPath(String path) throws IOException, XmlException, Exception {\r
         Vector<String> v = new Vector<String>();\r
         path = Tools.convertPathToCurrentOsType(path);\r
         //\r
@@ -624,17 +653,25 @@ public class WorkspaceTools {
         v.addElement(path);\r
         \r
         //\r
-        // Add module's files one by one\r
+        // Add the package's industry std includes one by one\r
         //\r
         Vector<String> f1 = new Vector<String>();\r
+        f1 = getAllIndustryStdIncludesOfPackage(path);\r
+        for (int index = 0; index < f1.size(); index++) {\r
+            v.addElement(f1.get(index));\r
+        }\r
+        \r
+        //\r
+        // Add module's files one by one\r
+        //\r
+        f1 = new Vector<String>();\r
         f1 = getAllModulesOfPackage(path);\r
         for (int indexI = 0; indexI < f1.size(); indexI++) {\r
-            Vector<String> f2 = getAllModuleFiles(f1.get(indexI));\r
+            Vector<String> f2 = getAllModuleFilesPath(f1.get(indexI));\r
             for (int indexJ = 0; indexJ < f2.size(); indexJ++) {\r
                 v.addElement(f2.get(indexJ));\r
             }\r
         }\r
-        //v.add(0, path);\r
 \r
         return v;\r
     }\r