**/\r
package org.tianocore.frameworkwizard.packaging.ui;\r
\r
-import java.awt.BorderLayout;\r
import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
import java.awt.event.ComponentEvent;\r
import java.io.File;\r
-import java.util.Vector;\r
\r
import javax.swing.DefaultCellEditor;\r
-import javax.swing.DefaultListModel;\r
import javax.swing.JFileChooser;\r
import javax.swing.JOptionPane;\r
import javax.swing.JPanel;\r
-import javax.swing.JRadioButton;\r
import javax.swing.JTable;\r
import javax.swing.JTextField;\r
import javax.swing.JComboBox;\r
import javax.swing.JLabel;\r
-import javax.swing.JList;\r
import javax.swing.JScrollPane;\r
import javax.swing.JButton;\r
import javax.swing.JFrame;\r
import javax.swing.table.TableModel;\r
\r
import org.tianocore.PackageSurfaceAreaDocument;\r
-import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
\r
@since PackageEditor 1.0\r
**/\r
public class SpdPackageHeaders extends IInternalFrame implements TableModelListener{\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+\r
static JFrame frame;\r
\r
private SpdFileContents sfc = null;\r
+ \r
+ private OpeningPackageType docConsole = null;\r
\r
private DefaultTableModel model = null;\r
\r
private JPanel jContentPane = null;\r
\r
- private JRadioButton jRadioButtonAdd = null;\r
-\r
- private JRadioButton jRadioButtonSelect = null;\r
-\r
- private JTextField jTextFieldAdd = null;\r
+ private JLabel jLabelSelect = null;\r
\r
private JComboBox jComboBoxSelect = null;\r
\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPane1 = null;\r
+ private JScrollPane jScrollPanePkgHdr = null;\r
\r
private int selectedRow = -1;\r
\r
\r
}\r
\r
- /**\r
- This method initializes jRadioButtonAdd \r
- \r
- @return javax.swing.JRadioButton \r
- **/\r
- private JRadioButton getJRadioButtonAdd() {\r
- if (jRadioButtonAdd == null) {\r
- jRadioButtonAdd = new JRadioButton();\r
- jRadioButtonAdd.setBounds(new java.awt.Rectangle(9,35,197,20));\r
- jRadioButtonAdd.setText("Add a new ModuleType");\r
- jRadioButtonAdd.setEnabled(false);\r
- jRadioButtonAdd.addActionListener(this);\r
- jRadioButtonAdd.setSelected(false);\r
- }\r
- return jRadioButtonAdd;\r
- }\r
-\r
/**\r
This method initializes jRadioButtonSelect \r
\r
@return javax.swing.JRadioButton \r
**/\r
- private JRadioButton getJRadioButtonSelect() {\r
- if (jRadioButtonSelect == null) {\r
- jRadioButtonSelect = new JRadioButton();\r
- jRadioButtonSelect.setBounds(new java.awt.Rectangle(9,10,198,20));\r
- jRadioButtonSelect.setText("Select Existing ModuleType");\r
- jRadioButtonSelect.addActionListener(this);\r
- jRadioButtonSelect.setSelected(true);\r
- }\r
- return jRadioButtonSelect;\r
- }\r
+ private JLabel getJLabelSelect() {\r
+ if (jLabelSelect == null) {\r
+ jLabelSelect = new JLabel();\r
+ jLabelSelect.setBounds(new java.awt.Rectangle(14,10,198,20));\r
+ jLabelSelect.setText("Select ModuleType");\r
\r
- /**\r
- This method initializes jTextFieldAdd \r
- \r
- @return javax.swing.JTextField \r
- **/\r
- private JTextField getJTextFieldAdd() {\r
- if (jTextFieldAdd == null) {\r
- jTextFieldAdd = new JTextField();\r
- jTextFieldAdd.setBounds(new java.awt.Rectangle(220, 35, 260, 20));\r
- jTextFieldAdd.setPreferredSize(new java.awt.Dimension(260,20));\r
- jTextFieldAdd.setEnabled(false);\r
}\r
- return jTextFieldAdd;\r
+ return jLabelSelect;\r
}\r
\r
/**\r
sfc = new SpdFileContents(inPsa);\r
init(sfc);\r
}\r
+ \r
+ public SpdPackageHeaders(OpeningPackageType opt) {\r
+ this(opt.getXmlSpd());\r
+ docConsole = opt;\r
+ }\r
/**\r
This method initializes this\r
\r
private void init() {\r
\r
this.setContentPane(getJScrollPane());\r
- this.setTitle("Library Class Declarations");\r
+ this.setTitle("Package Headers");\r
this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
this.setVisible(true);\r
this.addInternalFrameListener(new InternalFrameAdapter(){\r
jContentPane.add(jLabel, null);\r
jContentPane.add(jStarLabel1, null);\r
jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(getJRadioButtonAdd(), null);\r
- jContentPane.add(getJRadioButtonSelect(), null);\r
- jContentPane.add(getJTextFieldAdd(), null);\r
+ jContentPane.add(getJLabelSelect(), null);\r
jContentPane.add(getJComboBoxSelect(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
\r
jContentPane.add(getJTextField(), null);\r
jContentPane.add(getJButtonBrowse(), null);\r
- jContentPane.add(getJScrollPane1(), null);\r
+ jContentPane.add(getJScrollPanePkgHdr(), null);\r
}\r
return jContentPane;\r
}\r
jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
- jComboBoxSelect.addItem("TOOLS");\r
+ jComboBoxSelect.addItem("TOOL");\r
jComboBoxSelect.addItem("UEFI_DRIVER");\r
jComboBoxSelect.addItem("UEFI_APPLICATION");\r
jComboBoxSelect.addItem("USER_DEFINED");\r
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
+ \r
+ docConsole.setSaved(false);\r
if (arg0.getSource() == jButtonOk) {\r
this.save();\r
this.dispose();\r
\r
if (arg0.getSource() == jButtonAdd) {\r
String strLibClass = "";\r
- if (jRadioButtonAdd.isSelected()) {\r
- strLibClass = jTextFieldAdd.getText();\r
- }\r
- if (jRadioButtonSelect.isSelected()) {\r
- strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
- }\r
+ \r
+ strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
//ToDo: check before add\r
String[] row = {"", ""};\r
row[0] = strLibClass;\r
row[1] = jTextField.getText().replace('\\', '/');\r
+ if (!dataValidation(row)) {\r
+ return;\r
+ }\r
model.addRow(row);\r
+ jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
sfc.genSpdModuleHeaders(row[0], row[1], null, null, null, null, null, null);\r
}\r
//\r
sfc.removeSpdPkgHeader();\r
}\r
\r
- if (arg0.getSource() == jRadioButtonAdd) {\r
- if (jRadioButtonAdd.isSelected()) {\r
- jRadioButtonSelect.setSelected(false);\r
- jTextFieldAdd.setEnabled(true);\r
- jComboBoxSelect.setEnabled(false);\r
- }\r
- if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
- jRadioButtonAdd.setSelected(true);\r
- jTextFieldAdd.setEnabled(true);\r
- jComboBoxSelect.setEnabled(false);\r
- }\r
- }\r
-\r
- if (arg0.getSource() == jRadioButtonSelect) {\r
- if (jRadioButtonSelect.isSelected()) {\r
- jRadioButtonAdd.setSelected(false);\r
- jTextFieldAdd.setEnabled(false);\r
- jComboBoxSelect.setEnabled(true);\r
- }\r
- if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
- jRadioButtonSelect.setSelected(true);\r
- jTextFieldAdd.setEnabled(false);\r
- jComboBoxSelect.setEnabled(true);\r
- }\r
+ }\r
+ \r
+ private boolean dataValidation(String[] row) {\r
+ if (!DataValidation.isPathAndFilename(row[1])) {\r
+ JOptionPane.showMessageDialog(this, "Include header path is NOT PathAndFilename type.");\r
+ return false;\r
}\r
+ \r
+ return true;\r
}\r
\r
/**\r
jButtonBrowse.setText("Browse");\r
jButtonBrowse.setPreferredSize(new java.awt.Dimension(92,20));\r
jButtonBrowse.addActionListener(new javax.swing.AbstractAction() {\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+\r
public void actionPerformed(ActionEvent e) {\r
//\r
// Select files from current workspace\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane1() {\r
- if (jScrollPane1 == null) {\r
- jScrollPane1 = new JScrollPane();\r
- jScrollPane1.setBounds(new java.awt.Rectangle(13,149,453,165));\r
- jScrollPane1.setViewportView(getJTable());\r
+ private JScrollPane getJScrollPanePkgHdr() {\r
+ if (jScrollPanePkgHdr == null) {\r
+ jScrollPanePkgHdr = new JScrollPane();\r
+ jScrollPanePkgHdr.setBounds(new java.awt.Rectangle(13,149,453,258));\r
+ jScrollPanePkgHdr.setViewportView(getJTable());\r
}\r
- return jScrollPane1;\r
+ return jScrollPanePkgHdr;\r
}\r
\r
/**\r
if (jTable == null) {\r
model = new DefaultTableModel();\r
jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
model.addColumn("ModuleType");\r
model.addColumn("IncludeHeader");\r
TableColumn typeColumn = jTable.getColumnModel().getColumn(0);\r
jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
- jComboBoxSelect.addItem("TOOLS");\r
+ jComboBoxSelect.addItem("TOOL");\r
jComboBoxSelect.addItem("UEFI_DRIVER");\r
jComboBoxSelect.addItem("UEFI_APPLICATION");\r
jComboBoxSelect.addItem("USER_DEFINED");\r
public void tableChanged(TableModelEvent arg0) {\r
// TODO Auto-generated method stub\r
int row = arg0.getFirstRow();\r
+ int column = arg0.getColumn();\r
TableModel m = (TableModel)arg0.getSource();\r
if (arg0.getType() == TableModelEvent.UPDATE){\r
+ String[] sa = new String[2];\r
+ sfc.getSpdModuleHeader(sa, row);\r
+ Object cellData = m.getValueAt(row, column);\r
+ if (cellData == null) {\r
+ cellData = "";\r
+ }\r
+ if (cellData.equals(sa[column])) {\r
+ return;\r
+ }\r
+ if (cellData.toString().length() == 0 && sa[column] == null) {\r
+ return;\r
+ }\r
String pkg = m.getValueAt(row, 0) + "";\r
String hdr = m.getValueAt(row, 1) + "";\r
+ String[] rowData = {pkg, hdr};\r
+ if (!dataValidation(rowData)) {\r
+ return;\r
+ }\r
+ docConsole.setSaved(false);\r
sfc.updateSpdPkgHdr(row, pkg, hdr);\r
}\r
}\r
public void componentResized(ComponentEvent arg0) {\r
int intPreferredWidth = 500;\r
\r
- resizeComponentWidth(this.jComboBoxSelect, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldAdd, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
- relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 30);\r
+ Tools.resizeComponentWidth(this.jComboBoxSelect, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
+ Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
+ Tools.relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 30);\r
}\r
\r
public static void main(String[] args){\r