/** @file\r
\r
- The file is used to create, update SourceFile of MSA/MBD file\r
+ The file is used to create, update SourceFiles section of the MSA file\r
\r
Copyright (c) 2006, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
\r
import org.tianocore.frameworkwizard.common.DataType;\r
import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IComboBox;\r
import org.tianocore.frameworkwizard.common.ui.IDialog;\r
import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesIdentification;\r
\r
/**\r
- The class is used to create, update SourceFile of MSA/MBD file\r
- It extends IInternalFrame\r
- \r
-\r
-\r
+ * The class is used to create, update SourceFiles section of the MSA file\r
+ *\r
+ * It extends IDialog\r
+ * \r
**/\r
public class SourceFilesDlg extends IDialog {\r
\r
\r
private JTextField jTextFieldToolCode = null;\r
\r
+ private IComboBox iComboBoxToolCode = null;\r
+\r
private JTextField jTextFieldToolChainFamily = null;\r
\r
private JLabel jLabelFeatureFlag = null;\r
private JTextField jTextFieldFeatureFlag = null;\r
\r
private ArchCheckBox jArchCheckBox = null;\r
- \r
+\r
private JButton jButtonOk = null;\r
\r
private JButton jButtonCancel = null;\r
\r
private String msaFileName = "";\r
\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
/**\r
This method initializes jTextFieldFileName \r
\r
private JTextField getJTextFieldSourceFilesDirectory() {\r
if (jTextFieldFileName == null) {\r
jTextFieldFileName = new JTextField();\r
- jTextFieldFileName.setBounds(new java.awt.Rectangle(140, 10, 250, 20));\r
+ jTextFieldFileName.setBounds(new java.awt.Rectangle(168, 12, 250, 20));\r
jTextFieldFileName.setPreferredSize(new java.awt.Dimension(250, 20));\r
jTextFieldFileName.setToolTipText("Path is relative to the MSA file and must include the file name");\r
}\r
if (jButtonOpenFile == null) {\r
jButtonOpenFile = new JButton();\r
jButtonOpenFile.setText("Browse");\r
- jButtonOpenFile.setBounds(new java.awt.Rectangle(395, 10, 85, 20));\r
+ jButtonOpenFile.setBounds(new java.awt.Rectangle(422, 12, 85, 20));\r
jButtonOpenFile.setPreferredSize(new java.awt.Dimension(85, 20));\r
jButtonOpenFile.addActionListener(this);\r
}\r
private JTextField getJTextFieldTagName() {\r
if (jTextFieldTagName == null) {\r
jTextFieldTagName = new JTextField();\r
- jTextFieldTagName.setBounds(new java.awt.Rectangle(140, 35, 340, 20));\r
+ jTextFieldTagName.setBounds(new java.awt.Rectangle(168, 37, 340, 20));\r
jTextFieldTagName.setPreferredSize(new java.awt.Dimension(340, 20));\r
jTextFieldTagName.setToolTipText("You may specify a specific tool chain tag name, such as BILL1");\r
}\r
return jTextFieldTagName;\r
}\r
\r
+ private IComboBox getIComboBoxToolCode() {\r
+ if (iComboBoxToolCode == null) {\r
+ iComboBoxToolCode = new IComboBox();\r
+ iComboBoxToolCode.setBounds(new java.awt.Rectangle(168, 62, 340, 20));\r
+ iComboBoxToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ iComboBoxToolCode.setToolTipText("<html>You may select a specific tool command from drop down list, <br>"\r
+ + "or you can DOUBLE-CLICK this fild to enter your customizing <br>"\r
+ + "tool command.<br>"\r
+ + "Press ENTER to save your input or press ESCAPE to quit</html>");\r
+ }\r
+ return iComboBoxToolCode;\r
+ }\r
+\r
/**\r
* This method initializes jTextFieldToolCode \r
* \r
private JTextField getJTextFieldToolCode() {\r
if (jTextFieldToolCode == null) {\r
jTextFieldToolCode = new JTextField();\r
- jTextFieldToolCode.setBounds(new java.awt.Rectangle(140, 60, 340, 20));\r
+ jTextFieldToolCode.setBounds(new java.awt.Rectangle(168, 62, 340, 20));\r
jTextFieldToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
jTextFieldToolCode.setToolTipText("You may specify a specific tool command, such as ASM");\r
+ jTextFieldToolCode.setVisible(false);\r
}\r
return jTextFieldToolCode;\r
}\r
private JTextField getJTextFieldToolChainFamily() {\r
if (jTextFieldToolChainFamily == null) {\r
jTextFieldToolChainFamily = new JTextField();\r
- jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(140, 85, 340, 20));\r
+ jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(168, 87, 340, 20));\r
jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(340, 20));\r
jTextFieldToolChainFamily.setToolTipText("You may specify a specific tool chain family, such as GCC");\r
}\r
private JTextField getJTextFieldFeatureFlag() {\r
if (jTextFieldFeatureFlag == null) {\r
jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(140, 110, 340, 20));\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(168, 112, 340, 20));\r
jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(340, 20));\r
jTextFieldFeatureFlag.setToolTipText("RESERVED FOR FUTURE USE");\r
}\r
private JButton getJButtonOk() {\r
if (jButtonOk == null) {\r
jButtonOk = new JButton();\r
- jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setBounds(new java.awt.Rectangle(317, 172, 90, 20));\r
jButtonOk.setText("Ok");\r
jButtonOk.addActionListener(this);\r
}\r
private JButton getJButtonCancel() {\r
if (jButtonCancel == null) {\r
jButtonCancel = new JButton();\r
- jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(412, 172, 90, 20));\r
jButtonCancel.setText("Cancel");\r
jButtonCancel.addActionListener(this);\r
}\r
\r
**/\r
private void init() {\r
- this.setSize(500, 235);\r
+ this.setSize(525, 240);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Source Files");\r
this.setViewMode(false);\r
this.centerWindow();\r
+ Tools.generateComboBoxByVector(iComboBoxToolCode, ed.getVToolCode());\r
}\r
\r
/** \r
if (inSourceFilesIdentifications != null) {\r
this.jTextFieldFileName.setText(inSourceFilesIdentifications.getFilename());\r
this.jTextFieldTagName.setText(inSourceFilesIdentifications.getTagName());\r
- this.jTextFieldToolCode.setText(inSourceFilesIdentifications.getToolCode());\r
+\r
+ //\r
+ // Generate Tool Code selection list\r
+ //\r
+ Vector<String> v = ed.getVToolCode();\r
+ boolean isFind = false;\r
+ String strToolCode = inSourceFilesIdentifications.getToolCode();\r
+\r
+ //\r
+ // If the input value is not in the default list, add it to the list\r
+ //\r
+ if (strToolCode != null) {\r
+ for (int index = 0; index < v.size(); index++) {\r
+ if (v.elementAt(index).equals(strToolCode)) {\r
+ isFind = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isFind && !isEmpty(strToolCode)) {\r
+ v.addElement(strToolCode);\r
+ }\r
+ }\r
+\r
+ Tools.generateComboBoxByVector(iComboBoxToolCode, v);\r
+ this.iComboBoxToolCode.setSelectedItem(strToolCode);\r
+\r
this.jTextFieldToolChainFamily.setText(inSourceFilesIdentifications.getToolChainFamily());\r
jTextFieldFeatureFlag.setText(inSourceFilesIdentifications.getFeatureFlag());\r
this.jArchCheckBox.setSelectedItems(inSourceFilesIdentifications.getSupArchList());\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
jArchCheckBox = new ArchCheckBox();\r
- jArchCheckBox.setBounds(new java.awt.Rectangle(140, 135, 340, 20));\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(168, 137, 340, 20));\r
jArchCheckBox.setPreferredSize(new java.awt.Dimension(340, 20));\r
jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 120, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 112, 155, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag Expression");\r
jLabelToolCode = new JLabel();\r
- jLabelToolCode.setBounds(new java.awt.Rectangle(15, 60, 120, 20));\r
+ jLabelToolCode.setBounds(new java.awt.Rectangle(12, 62, 155, 20));\r
jLabelToolCode.setText("Tool Code");\r
jLabelTagName = new JLabel();\r
- jLabelTagName.setBounds(new java.awt.Rectangle(15, 35, 120, 20));\r
+ jLabelTagName.setBounds(new java.awt.Rectangle(12, 37, 155, 20));\r
jLabelTagName.setText("Tag Name");\r
jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 120, 20));\r
- jLabelArch.setText("Sup Arch List");\r
+ jLabelArch.setBounds(new java.awt.Rectangle(12, 137, 155, 20));\r
+ jLabelArch.setText("Supported Architectures");\r
jLabelToolChainFamily = new JLabel();\r
- jLabelToolChainFamily.setBounds(new java.awt.Rectangle(15, 85, 120, 20));\r
+ jLabelToolChainFamily.setBounds(new java.awt.Rectangle(12, 87, 155, 20));\r
jLabelToolChainFamily.setText("Tool Chain Family");\r
jLabelFileName = new JLabel();\r
jLabelFileName.setText("File Name");\r
- jLabelFileName.setBounds(new java.awt.Rectangle(15, 10, 120, 20));\r
+ jLabelFileName.setBounds(new java.awt.Rectangle(12, 12, 155, 20));\r
\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 185));\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(505, 192));\r
\r
jContentPane.add(jLabelFileName, null);\r
jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
jContentPane.add(getJTextFieldTagName(), null);\r
jContentPane.add(jLabelToolCode, null);\r
jContentPane.add(getJTextFieldToolCode(), null);\r
+ jContentPane.add(getIComboBoxToolCode(), null);\r
jContentPane.add(getJTextFieldToolChainFamily(), null);\r
jContentPane.add(jLabelFeatureFlag, null);\r
jContentPane.add(getJTextFieldFeatureFlag(), null);\r
String name = this.jTextFieldFileName.getText();\r
String s[] = name.split(";");\r
String tagName = this.jTextFieldTagName.getText();\r
- String toolCode = this.jTextFieldToolCode.getText();\r
+ String toolCode = this.iComboBoxToolCode.getSelectedItem().toString();\r
+ if (toolCode.equals(DataType.EMPTY_SELECT_ITEM)) {\r
+ toolCode = "";\r
+ }\r
String tcf = this.jTextFieldToolChainFamily.getText();\r
String featureFlag = this.jTextFieldFeatureFlag.getText();\r
Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
sfid = new SourceFilesIdentification[s.length];\r
for (int index = 0; index < s.length; index++) {\r
- sfid[index] = new SourceFilesIdentification(s[index], tagName, toolCode, tcf, featureFlag, arch);\r
+ sfid[index] = new SourceFilesIdentification(s[index], tagName, toolCode, tcf, featureFlag, arch);\r
}\r
return sfid;\r
}\r