]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java
Made the Specification look like a comment at the bottom of the page, since it cannot...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdHeader.java
index d897959aeaf9474daf9f691ef7baa8e814e52e76..6265f27fefc1b9fd2a8f2d70351bf748f4242965 100644 (file)
@@ -20,9 +20,12 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ComponentEvent;\r
 import java.awt.event.FocusAdapter;\r
 import java.awt.event.FocusEvent;\r
+import java.util.Vector;\r
 \r
 import javax.swing.JButton;\r
+import javax.swing.JFrame;\r
 import javax.swing.JLabel;\r
+import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JTextArea;\r
@@ -33,8 +36,8 @@ import javax.swing.JTextField;
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 \r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 \r
@@ -47,11 +50,55 @@ import org.tianocore.frameworkwizard.common.ui.StarLabel;
  **/\r
 public class FpdHeader extends IInternalFrame {\r
 \r
+    private int dialogWidth = 560;\r
+\r
+    private int labelColumn = 12;\r
+\r
+    private int labelWidth = 155;\r
+\r
+    private int buttonWidth = 60;\r
+\r
+    private final int valueColumn = 168;\r
+\r
+    private final int valueWidth = 320;\r
+    \r
+    private final int specWidth = 420;\r
+    \r
+    private int shortValueWidth = valueWidth - (buttonWidth + 5);\r
+\r
+    private final int oneRowHeight = 20;\r
+\r
+    private final int threeRowHeight = 60;\r
+\r
+    private final int fourRowHeight = 80;\r
+\r
+    private final int rowSep = 5;\r
+\r
+    private final int rowOne = 12;\r
+\r
+    private final int rowTwo = rowOne + oneRowHeight + rowSep;\r
+\r
+    private final int rowThree = rowTwo + oneRowHeight + rowSep;\r
+\r
+    private final int rowFour = rowThree + oneRowHeight + rowSep;\r
+\r
+    private final int rowFive = rowFour + threeRowHeight + rowSep;\r
+\r
+    private final int rowSix = rowFive + fourRowHeight + rowSep;\r
+\r
+    private final int rowSeven = rowSix + oneRowHeight + rowSep;\r
+\r
+    private final int rowEight = rowSeven + oneRowHeight + rowSep;\r
+\r
+    private final int rowNine = rowEight + fourRowHeight +  threeRowHeight +rowSep;\r
+\r
+    private int dialogHeight = rowNine + threeRowHeight;\r
     ///\r
     /// Define class Serial Version UID\r
     ///\r
     private static final long serialVersionUID = -8152099582923006900L;\r
 \r
+    static JFrame frame;\r
     //\r
     //Define class members\r
     //\r
@@ -81,8 +128,6 @@ public class FpdHeader extends IInternalFrame {
 \r
     private JTextArea jTextAreaDescription = null;\r
 \r
-    private JLabel jLabelSpecification = null;\r
-\r
     private JTextField jTextFieldSpecification = null;\r
 \r
     private JButton jButtonOk = null;\r
@@ -92,6 +137,8 @@ public class FpdHeader extends IInternalFrame {
     private JScrollPane jScrollPaneLicense = null;\r
 \r
     private JScrollPane jScrollPaneDescription = null;\r
+    \r
+    private JScrollPane jCopyrightScrollPane = null;\r
 \r
     private JLabel jLabelAbstract = null;\r
 \r
@@ -107,21 +154,19 @@ public class FpdHeader extends IInternalFrame {
 \r
     private StarLabel jStarLabel5 = null;\r
 \r
-    private StarLabel jStarLabel6 = null;\r
-\r
     private StarLabel jStarLabel7 = null;\r
 \r
     private StarLabel jStarLabel8 = null;\r
-\r
-    private StarLabel jStarLabel9 = null;\r
     \r
-    private JTextField jTextFieldCopyright = null;\r
+    private JTextArea jCopyrightTextArea = null;\r
 \r
     private JLabel jLabel = null;\r
 \r
-    private JTextField jTextField = null;\r
+    private JTextField jTextFieldUrl = null;\r
     \r
     private FpdFileContents ffc = null;\r
+    \r
+    private OpeningPlatformType docConsole = null;\r
 \r
     /**\r
      This method initializes jTextFieldBaseName \r
@@ -132,10 +177,18 @@ public class FpdHeader extends IInternalFrame {
     private JTextField getJTextFieldBaseName() {\r
         if (jTextFieldBaseName == null) {\r
             jTextFieldBaseName = new JTextField();\r
-            jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
-            jTextFieldBaseName.setPreferredSize(new java.awt.Dimension(320,20));\r
+            jTextFieldBaseName.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
+            jTextFieldBaseName.setPreferredSize(new java.awt.Dimension(valueWidth,oneRowHeight));\r
             jTextFieldBaseName.addFocusListener(new FocusAdapter(){\r
                public void focusLost(FocusEvent e) {\r
+                   if (!DataValidation.isUiNameType(jTextFieldBaseName.getText())) {\r
+                       JOptionPane.showMessageDialog(frame, "Package Name does not match the UiNameType datatype.");\r
+                       return;\r
+                   }\r
+                   if (jTextFieldBaseName.getText().equals(ffc.getFpdHdrPlatformName())) {\r
+                       return;\r
+                   }\r
+                   docConsole.setSaved(false);\r
                    ffc.setFpdHdrPlatformName(jTextFieldBaseName.getText());\r
                } \r
             });\r
@@ -152,10 +205,18 @@ public class FpdHeader extends IInternalFrame {
     private JTextField getJTextFieldGuid() {\r
         if (jTextFieldGuid == null) {\r
             jTextFieldGuid = new JTextField();\r
-            jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 250, 20));\r
-            jTextFieldGuid.setPreferredSize(new java.awt.Dimension(250,20));\r
+            jTextFieldGuid.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, shortValueWidth, oneRowHeight));\r
+            jTextFieldGuid.setPreferredSize(new java.awt.Dimension(shortValueWidth,oneRowHeight));\r
             jTextFieldGuid.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
+                    if (!DataValidation.isGuid(jTextFieldGuid.getText())) {\r
+                        JOptionPane.showMessageDialog(frame, "Guid must be in registry (8-4-4-4-12) format.");\r
+                        return;\r
+                    }\r
+                    if (jTextFieldGuid.getText().equals(ffc.getFpdHdrGuidValue())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
                     ffc.setFpdHdrGuidValue(jTextFieldGuid.getText());\r
                 } \r
              });\r
@@ -172,10 +233,18 @@ public class FpdHeader extends IInternalFrame {
     private JTextField getJTextFieldVersion() {\r
         if (jTextFieldVersion == null) {\r
             jTextFieldVersion = new JTextField();\r
-            jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
-            jTextFieldVersion.setPreferredSize(new java.awt.Dimension(320,20));\r
+            jTextFieldVersion.setBounds(new java.awt.Rectangle(valueColumn, rowThree, valueWidth, oneRowHeight));\r
+            jTextFieldVersion.setPreferredSize(new java.awt.Dimension(valueWidth,oneRowHeight));\r
             jTextFieldVersion.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
+                    if (!DataValidation.isVersion(jTextFieldVersion.getText())) {\r
+                        JOptionPane.showMessageDialog(frame, "Version does not match the Version datatype.");\r
+                        return;\r
+                    }\r
+                    if (jTextFieldVersion.getText().equals(ffc.getFpdHdrVer())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
                     ffc.setFpdHdrVer(jTextFieldVersion.getText());\r
                 } \r
              });\r
@@ -192,7 +261,7 @@ public class FpdHeader extends IInternalFrame {
     private JButton getJButtonGenerateGuid() {\r
         if (jButtonGenerateGuid == null) {\r
             jButtonGenerateGuid = new JButton();\r
-            jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
+            jButtonGenerateGuid.setBounds(new java.awt.Rectangle(valueColumn + shortValueWidth + 5, rowTwo, buttonWidth, oneRowHeight));\r
             jButtonGenerateGuid.setText("GEN");\r
             jButtonGenerateGuid.addActionListener(this);\r
         }\r
@@ -209,10 +278,17 @@ public class FpdHeader extends IInternalFrame {
         if (jTextAreaLicense == null) {\r
             jTextAreaLicense = new JTextArea();\r
             jTextAreaLicense.setText("");\r
-            jTextAreaLicense.setPreferredSize(new java.awt.Dimension(317,77));\r
             jTextAreaLicense.setLineWrap(true);\r
             jTextAreaLicense.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
+                    if (jTextAreaLicense.getText().length() == 0) {\r
+                        JOptionPane.showMessageDialog(frame, "License must be entered!");\r
+                        return;\r
+                    }\r
+                    if (jTextAreaLicense.getText().equals(ffc.getFpdHdrLicense())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
                     ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
                 } \r
              });\r
@@ -230,9 +306,16 @@ public class FpdHeader extends IInternalFrame {
         if (jTextAreaDescription == null) {\r
             jTextAreaDescription = new JTextArea();\r
             jTextAreaDescription.setLineWrap(true);\r
-            jTextAreaDescription.setPreferredSize(new java.awt.Dimension(317,77));\r
             jTextAreaDescription.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
+                    if (jTextAreaDescription.getText().length() == 0) {\r
+                        JOptionPane.showMessageDialog(frame, "Description must be entered.");\r
+                        return;\r
+                    }\r
+                    if (jTextAreaDescription.getText().equals(ffc.getFpdHdrDescription())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
                     ffc.setFpdHdrDescription(jTextAreaDescription.getText());\r
                 } \r
              });\r
@@ -249,9 +332,10 @@ public class FpdHeader extends IInternalFrame {
     private JTextField getJTextFieldSpecification() {\r
         if (jTextFieldSpecification == null) {\r
             jTextFieldSpecification = new JTextField();\r
-            jTextFieldSpecification.setBounds(new java.awt.Rectangle(160, 305, 320, 20));\r
+            jTextFieldSpecification.setBounds(new java.awt.Rectangle(labelColumn,rowNine,specWidth,oneRowHeight));\r
             jTextFieldSpecification.setEditable(false);\r
-            jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(320,20));\r
+            jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(specWidth,oneRowHeight));\r
+            jTextFieldSpecification.setBorder(null);\r
             jTextFieldSpecification.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
                     ffc.setFpdHdrSpec(jTextFieldSpecification.getText());\r
@@ -304,9 +388,9 @@ public class FpdHeader extends IInternalFrame {
     private JScrollPane getJScrollPaneLicense() {\r
         if (jScrollPaneLicense == null) {\r
             jScrollPaneLicense = new JScrollPane();\r
-            jScrollPaneLicense.setBounds(new java.awt.Rectangle(160, 85, 320, 80));\r
+            jScrollPaneLicense.setBounds(new java.awt.Rectangle(valueColumn,rowFive,valueWidth,fourRowHeight));\r
             jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
-            jScrollPaneLicense.setPreferredSize(new java.awt.Dimension(320,80));\r
+            jScrollPaneLicense.setPreferredSize(new java.awt.Dimension(valueWidth,fourRowHeight));\r
             jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
         }\r
         return jScrollPaneLicense;\r
@@ -321,8 +405,9 @@ public class FpdHeader extends IInternalFrame {
     private JScrollPane getJScrollPaneDescription() {\r
         if (jScrollPaneDescription == null) {\r
             jScrollPaneDescription = new JScrollPane();\r
-            jScrollPaneDescription.setBounds(new java.awt.Rectangle(160, 220, 320, 80));\r
+            jScrollPaneDescription.setBounds(new java.awt.Rectangle(valueColumn,rowEight,valueWidth,fourRowHeight));\r
             jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
+            jScrollPaneDescription.setPreferredSize(new java.awt.Dimension(valueWidth, fourRowHeight));\r
             jScrollPaneDescription.setViewportView(getJTextAreaDescription());\r
         }\r
         return jScrollPaneDescription;\r
@@ -337,10 +422,18 @@ public class FpdHeader extends IInternalFrame {
     private JTextField getJTextFieldAbstract() {\r
         if (jTextFieldAbstract == null) {\r
             jTextFieldAbstract = new JTextField();\r
-            jTextFieldAbstract.setBounds(new java.awt.Rectangle(160,195,320,20));\r
-            jTextFieldAbstract.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            jTextFieldAbstract.setBounds(new java.awt.Rectangle(valueColumn,rowSeven,valueWidth,oneRowHeight));\r
+            jTextFieldAbstract.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
             jTextFieldAbstract.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
+                    if (!DataValidation.isAbstract(jTextFieldAbstract.getText())) {\r
+                        JOptionPane.showMessageDialog(frame, "Abstract must be entered.");\r
+                        return;\r
+                    }\r
+                    if (jTextFieldAbstract.getText().equals(ffc.getFpdHdrAbs())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
                     ffc.setFpdHdrAbs(jTextFieldAbstract.getText());\r
                 } \r
              });\r
@@ -348,24 +441,41 @@ public class FpdHeader extends IInternalFrame {
         return jTextFieldAbstract;\r
     }\r
 \r
+    private JScrollPane getCopyrightScrollPane() {\r
+        if (jCopyrightScrollPane == null) {\r
+            jCopyrightScrollPane = new JScrollPane();\r
+            jCopyrightScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowFour, valueWidth, threeRowHeight));\r
+            jCopyrightScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
+            jCopyrightScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, threeRowHeight));\r
+            jCopyrightScrollPane.setViewportView(getJCopyrightTextArea());\r
+        }\r
+        return jCopyrightScrollPane;\r
+    }\r
     /**\r
       This method initializes jTextFieldCopyright      \r
        \r
       @return javax.swing.JTextField jTextFieldCopyright\r
      \r
      **/\r
-    private JTextField getJTextFieldCopyright() {\r
-        if (jTextFieldCopyright == null) {\r
-            jTextFieldCopyright = new JTextField();\r
-            jTextFieldCopyright.setBounds(new java.awt.Rectangle(160,330,320, 20));\r
-            jTextFieldCopyright.setPreferredSize(new java.awt.Dimension(320,20));\r
-            jTextFieldCopyright.addFocusListener(new FocusAdapter(){\r
+    private JTextArea getJCopyrightTextArea() {\r
+        if (jCopyrightTextArea == null) {\r
+            jCopyrightTextArea = new JTextArea();\r
+            jCopyrightTextArea.setWrapStyleWord(true);\r
+            jCopyrightTextArea.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e) {\r
-                    ffc.setFpdHdrCopyright(jTextFieldCopyright.getText());\r
+                    if (!DataValidation.isCopyright(jCopyrightTextArea.getText())) {\r
+                        JOptionPane.showMessageDialog(frame, "Copyright must be entered.");\r
+                        return;\r
+                    }\r
+                    if (jCopyrightTextArea.getText().equals(ffc.getFpdHdrCopyright())) {\r
+                        return;\r
+                    }\r
+                    docConsole.setSaved(false);\r
+                    ffc.setFpdHdrCopyright(jCopyrightTextArea.getText());\r
                 } \r
              });\r
         }\r
-        return jTextFieldCopyright;\r
+        return jCopyrightTextArea;\r
     }\r
 \r
     /**\r
@@ -373,19 +483,26 @@ public class FpdHeader extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField() {\r
-        if (jTextField == null) {\r
-            jTextField = new JTextField();\r
-            jTextField.setBounds(new java.awt.Rectangle(160,170,320,20));\r
-            jTextField.setPreferredSize(new Dimension(320, 20));\r
-            jTextField.addFocusListener(new FocusAdapter(){\r
+    private JTextField getJTextFieldUrl() {\r
+        if (jTextFieldUrl == null) {\r
+            jTextFieldUrl = new JTextField();\r
+            jTextFieldUrl.setBounds(new java.awt.Rectangle(valueColumn,rowSix,valueWidth,oneRowHeight));\r
+            jTextFieldUrl.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
+            jTextFieldUrl.addFocusListener(new FocusAdapter(){\r
                public void focusLost(FocusEvent e){\r
+                   if (jTextFieldUrl.getText().length() == 0 && ffc.getFpdHdrUrl() == null) {\r
+                       return;\r
+                   }\r
+                   if (jTextFieldUrl.getText().equals(ffc.getFpdHdrUrl())) {\r
+                       return;\r
+                   }\r
                    ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
-                   ffc.setFpdHdrUrl(jTextField.getText());\r
+                   ffc.setFpdHdrUrl(jTextFieldUrl.getText());\r
+                   docConsole.setSaved(false);\r
                } \r
             });\r
         }\r
-        return jTextField;\r
+        return jTextFieldUrl;\r
     }\r
 \r
     public static void main(String[] args) {\r
@@ -414,6 +531,11 @@ public class FpdHeader extends IInternalFrame {
         init(ffc);\r
         \r
     }\r
+    \r
+    public FpdHeader(OpeningPlatformType opt) {\r
+        this(opt.getXmlFpd());\r
+        docConsole = opt;\r
+    }\r
 \r
     /**\r
      This method initializes this\r
@@ -422,7 +544,7 @@ public class FpdHeader extends IInternalFrame {
     private void init() {\r
         //this.setSize(500, 515);\r
         this.setContentPane(getJContentPane());\r
-        this.setTitle("Package Surface Area Header");\r
+        this.setTitle("Platform Surface Area Header");\r
         initFrame();\r
       \r
     }\r
@@ -452,10 +574,10 @@ public class FpdHeader extends IInternalFrame {
             jTextFieldAbstract.setText(ffc.getFpdHdrAbs());\r
         }\r
         if (ffc.getFpdHdrUrl() != null) {\r
-            jTextField.setText(ffc.getFpdHdrUrl());\r
+            jTextFieldUrl.setText(ffc.getFpdHdrUrl());\r
         }\r
         if (ffc.getFpdHdrCopyright() != null) {\r
-            jTextFieldCopyright.setText(ffc.getFpdHdrCopyright());\r
+            jCopyrightTextArea.setText(ffc.getFpdHdrCopyright());\r
         }\r
         if (ffc.getFpdHdrDescription() != null) {\r
             jTextAreaDescription.setText(ffc.getFpdHdrDescription());\r
@@ -463,7 +585,24 @@ public class FpdHeader extends IInternalFrame {
         if (ffc.getFpdHdrSpec() != null) {\r
             jTextFieldSpecification.setText(ffc.getFpdHdrSpec());\r
         }\r
-            \r
+        ffc.setFpdHdrSpec(jTextFieldSpecification.getText());\r
+        \r
+        ffc.genPlatformDefsSkuInfo("0", "DEFAULT");\r
+        Vector<Object> v = new Vector<Object>();\r
+        ffc.getPlatformDefsSupportedArchs(v);\r
+        if (v.size() == 0) {\r
+            v.add("IA32");\r
+            ffc.setPlatformDefsSupportedArchs(v);\r
+        }\r
+        v.removeAllElements();\r
+        ffc.getPlatformDefsBuildTargets(v);\r
+        if (v.size() == 0) {\r
+            v.add("DEBUG");\r
+            ffc.setPlatformDefsBuildTargets(v);\r
+        }\r
+        if (ffc.getPlatformDefsInterDir() == null) {\r
+            ffc.setPlatformDefsInterDir("UNIFIED");\r
+        }\r
     }\r
 \r
     /**\r
@@ -474,38 +613,51 @@ public class FpdHeader extends IInternalFrame {
      **/\r
     private JPanel getJContentPane() {\r
         if (jContentPane == null) {\r
-               jLabel = new JLabel();\r
-               jLabel.setBounds(new java.awt.Rectangle(15,170,140,20));\r
-               jLabel.setText("URL");\r
-               jContentPane = new JPanel();\r
+            jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
             jContentPane.setLocation(new java.awt.Point(0, 0));\r
-            jContentPane.setSize(new java.awt.Dimension(500,423));\r
+            jContentPane.setSize(new java.awt.Dimension(dialogWidth - 20 ,dialogHeight - 20));\r
+\r
+            jLabel = new JLabel();\r
+               jLabel.setBounds(new java.awt.Rectangle(labelColumn,rowSix,labelWidth,oneRowHeight));\r
+               jLabel.setText("URL");\r
             jLabelAbstract = new JLabel();\r
-            jLabelAbstract.setBounds(new java.awt.Rectangle(15, 195, 140, 20));\r
+            jLabelAbstract.setBounds(new java.awt.Rectangle(labelColumn,rowSeven,labelWidth,oneRowHeight));\r
             jLabelAbstract.setText("Abstract");\r
-            jLabelSpecification = new JLabel();\r
-            jLabelSpecification.setText("Specification");\r
-            jLabelSpecification.setBounds(new java.awt.Rectangle(15, 305, 140, 20));\r
             jLabelDescription = new JLabel();\r
             jLabelDescription.setText("Description");\r
-            jLabelDescription.setBounds(new java.awt.Rectangle(15, 220, 140, 20));\r
+            jLabelDescription.setBounds(new java.awt.Rectangle(labelColumn,rowEight,labelWidth,oneRowHeight));\r
             jLabelCopyright = new JLabel();\r
             jLabelCopyright.setText("Copyright");\r
-            jLabelCopyright.setBounds(new java.awt.Rectangle(15, 330, 140, 20));\r
+            jLabelCopyright.setBounds(new java.awt.Rectangle(labelColumn,rowFour,labelWidth,oneRowHeight));\r
             jLabelLicense = new JLabel();\r
             jLabelLicense.setText("License");\r
-            jLabelLicense.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+            jLabelLicense.setBounds(new java.awt.Rectangle(labelColumn,rowFive,labelWidth,oneRowHeight));\r
             jLabelVersion = new JLabel();\r
             jLabelVersion.setText("Version");\r
-            jLabelVersion.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+            jLabelVersion.setBounds(new java.awt.Rectangle(labelColumn, rowThree, labelWidth, oneRowHeight));\r
             jLabelGuid = new JLabel();\r
-            jLabelGuid.setPreferredSize(new java.awt.Dimension(25, 15));\r
-            jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+            jLabelGuid.setPreferredSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
+            jLabelGuid.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
             jLabelGuid.setText("Guid");\r
             jLabelBaseName = new JLabel();\r
             jLabelBaseName.setText("Platform Name");\r
-            jLabelBaseName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+            jLabelBaseName.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
+            jStarLabel1 = new StarLabel();\r
+            jStarLabel1.setLocation(new java.awt.Point(0, rowOne));\r
+            jStarLabel2 = new StarLabel();\r
+            jStarLabel2.setLocation(new java.awt.Point(0, rowTwo));\r
+            jStarLabel3 = new StarLabel();\r
+            jStarLabel3.setLocation(new java.awt.Point(0, rowThree));\r
+            jStarLabel4 = new StarLabel();\r
+            jStarLabel4.setLocation(new java.awt.Point(0,rowFour));\r
+            jStarLabel5 = new StarLabel();\r
+            jStarLabel5.setLocation(new java.awt.Point(0,rowFive));\r
+            jStarLabel7 = new StarLabel();\r
+            jStarLabel7.setLocation(new java.awt.Point(0,rowSeven));\r
+            jStarLabel8 = new StarLabel();\r
+            jStarLabel8.setLocation(new java.awt.Point(0,rowEight));\r
+            \r
             jContentPane.add(jLabelBaseName, null);\r
             jContentPane.add(getJTextFieldBaseName(), null);\r
             jContentPane.add(jLabelGuid, null);\r
@@ -516,7 +668,6 @@ public class FpdHeader extends IInternalFrame {
             jContentPane.add(jLabelLicense, null);\r
             jContentPane.add(jLabelCopyright, null);\r
             jContentPane.add(jLabelDescription, null);\r
-            jContentPane.add(jLabelSpecification, null);\r
             jContentPane.add(getJTextFieldSpecification(), null);\r
             jContentPane.add(getJButtonOk(), null);\r
             jContentPane.add(getJButtonCancel(), null);\r
@@ -524,39 +675,18 @@ public class FpdHeader extends IInternalFrame {
             jContentPane.add(getJScrollPaneDescription(), null);\r
             jContentPane.add(jLabelAbstract, null);\r
             jContentPane.add(getJTextFieldAbstract(), null);\r
-            jStarLabel1 = new StarLabel();\r
-            jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
-            jStarLabel2 = new StarLabel();\r
-            jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
-            jStarLabel3 = new StarLabel();\r
-            jStarLabel3.setLocation(new java.awt.Point(0, 60));\r
-            jStarLabel4 = new StarLabel();\r
-            jStarLabel4.setLocation(new java.awt.Point(0, 85));\r
-            jStarLabel5 = new StarLabel();\r
-            jStarLabel5.setLocation(new java.awt.Point(0, 330));\r
-            jStarLabel6 = new StarLabel();\r
-            jStarLabel6.setLocation(new java.awt.Point(0, 195));\r
-            jStarLabel7 = new StarLabel();\r
-            jStarLabel7.setLocation(new java.awt.Point(0, 305));\r
-            jStarLabel7.setEnabled(false);\r
-            jStarLabel8 = new StarLabel();\r
-            jStarLabel8.setLocation(new java.awt.Point(0, 220));\r
-            jStarLabel9 = new StarLabel();\r
-            jStarLabel9.setLocation(new java.awt.Point(0, 280));\r
-            jStarLabel9.setVisible(false);\r
\r
             jContentPane.add(jStarLabel1, null);\r
             jContentPane.add(jStarLabel2, null);\r
             jContentPane.add(jStarLabel3, null);\r
             jContentPane.add(jStarLabel4, null);\r
             jContentPane.add(jStarLabel5, null);\r
-            jContentPane.add(jStarLabel6, null);\r
             jContentPane.add(jStarLabel7, null);\r
             jContentPane.add(jStarLabel8, null);\r
-            jContentPane.add(jStarLabel9, null);\r
-            jContentPane.add(getJTextFieldCopyright(), null);\r
+            jContentPane.add(getCopyrightScrollPane(), null);\r
 \r
             jContentPane.add(jLabel, null);\r
-            jContentPane.add(getJTextField(), null);\r
+            jContentPane.add(getJTextFieldUrl(), null);\r
         }\r
         return jContentPane;\r
     }\r
@@ -568,92 +698,15 @@ public class FpdHeader extends IInternalFrame {
      *\r
      */\r
     public void actionPerformed(ActionEvent arg0) {\r
-        if (arg0.getSource() == jButtonOk) {\r
-            this.save();\r
-            this.setEdited(true);\r
-        }\r
-        if (arg0.getSource() == jButtonCancel) {\r
-            this.setEdited(false);\r
-        }\r
+        \r
         if (arg0.getSource() == jButtonGenerateGuid) {\r
-            //ToDo: invoke GuidValueEditor\r
+            docConsole.setSaved(false);\r
             jTextFieldGuid.setText(Tools.generateUuidString());\r
             ffc.setFpdHdrGuidValue(jTextFieldGuid.getText());\r
         }\r
     }\r
 \r
-    /**\r
-     Data validation for all fields\r
-     \r
-     @retval true - All datas are valid\r
-     @retval false - At least one data is invalid\r
-     \r
-     **/\r
-    public boolean check() {\r
-        //\r
-        // Check if all required fields are not empty\r
-        //\r
-        if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-            Log.err("Base Name couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldGuid.getText())) {\r
-            Log.err("Guid couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldVersion.getText())) {\r
-            Log.err("Version couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaLicense.getText())) {\r
-            Log.err("License couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldCopyright.getText())) {\r
-            Log.err("Copyright couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaDescription.getText())) {\r
-            Log.err("Description couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldAbstract.getText())) {\r
-            Log.err("Abstract couldn't be empty");\r
-            return false;\r
-        }\r
-\r
-        //\r
-        // Check if all fields have correct data types \r
-        //\r
-        if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-            Log.err("Incorrect data type for Base Name");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
-            Log.err("Incorrect data type for Guid");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
-            Log.err("Incorrect data type for Abstract");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
-            Log.err("Incorrect data type for Copyright");\r
-            return false;\r
-        }\r
-        return true;\r
-    }\r
-\r
-    /**\r
-     Save all components of Fpd Header\r
-     if exists FpdHeader, set the value directly\r
-     if not exists FpdHeader, new an instance first\r
-     \r
-     **/\r
-    public void save() {\r
-        \r
-    }\r
-\r
+    \r
     /**\r
      This method initializes Package type and Compontent type\r
      \r
@@ -669,17 +722,21 @@ public class FpdHeader extends IInternalFrame {
         * Override componentResized to resize all components when frame's size is changed\r
         */\r
        public void componentResized(ComponentEvent arg0) {\r
-        int intPreferredWidth = 500;\r
+        int intPreferredWidth = dialogWidth;\r
+        int intCurrentWidth = this.getJContentPane().getWidth();\r
+        \r
+        // Tools.resizeComponentWidth(this.jTextFieldBaseName, this.getWidth(), intPreferredWidth);\r
+        // Tools.resizeComponentWidth(this.jTextFieldGuid, this.getWidth(), intPreferredWidth);\r
+//      Tools.relocateComponentX(this.jButtonGenerateGuid, this.getWidth(), jButtonGenerateGuid.getWidth(), 25);\r
+        // Tools.resizeComponentWidth(this.jTextFieldVersion, this.getWidth(), intPreferredWidth);\r
+        // Tools.resizeComponentWidth(this.jTextFieldCopyright, this.getWidth(), intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jScrollPaneLicense, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldUrl, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldAbstract, intCurrentWidth, intPreferredWidth);        \r
+        Tools.resizeComponentWidth(this.jScrollPaneDescription, intCurrentWidth, intPreferredWidth);\r
+        // Tools.resizeComponentWidth(this.jTextFieldSpecification, this.getWidth(), intPreferredWidth);\r
         \r
-        resizeComponentWidth(this.jTextFieldBaseName, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jTextFieldGuid, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jTextFieldVersion, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jScrollPaneLicense, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jTextFieldCopyright, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jScrollPaneDescription, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jTextFieldSpecification, this.getWidth(), intPreferredWidth);\r
-               resizeComponentWidth(this.jTextFieldAbstract, this.getWidth(), intPreferredWidth);\r
                \r
-               relocateComponentX(this.jButtonGenerateGuid, this.getWidth(), jButtonGenerateGuid.getWidth(), 25);\r
+        \r
        }\r
 }\r