import javax.swing.JPanel;\r
\r
import javax.swing.AbstractAction;\r
-import javax.swing.DefaultCellEditor;\r
import javax.swing.JFileChooser;\r
import javax.swing.JFrame;\r
+import javax.swing.JOptionPane;\r
import javax.swing.JTabbedPane;\r
import javax.swing.JButton;\r
import javax.swing.ListSelectionModel;\r
\r
-import org.tianocore.FvImagesDocument;\r
import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.GlobalData;\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
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.platform.ui.FpdFrameworkModules;\r
+import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
\r
import java.awt.FlowLayout;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
import java.awt.event.ItemEvent;\r
import java.awt.event.ItemListener;\r
+import java.io.BufferedReader;\r
import java.io.File;\r
+import java.io.FileReader;\r
import java.util.ArrayList;\r
+import java.util.HashMap;\r
import java.util.Iterator;\r
import java.util.LinkedHashMap;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.Vector;\r
\r
import javax.swing.JCheckBox;\r
import javax.swing.JTextField;\r
import javax.swing.event.TableModelEvent;\r
import javax.swing.event.TableModelListener;\r
import javax.swing.table.DefaultTableModel;\r
-import javax.swing.table.TableColumn;\r
import javax.swing.table.TableModel;\r
import javax.swing.JComboBox;\r
import java.awt.Dimension;\r
+import javax.swing.JSplitPane;\r
\r
public class FpdFlash extends IInternalFrame {\r
\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
+ private final int startIndexOfDynamicTab = 2;\r
static JFrame frame;\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
+ private JPanel jPanelContentEast = null;\r
+ private JPanel jPanelContentSouth = null;\r
+ private JPanel jPanelContentWest = null;\r
+ private JPanel jPanelContentNorth = null;\r
private JTabbedPane jTabbedPane = null;\r
private JPanel jPanelFvImages = null;\r
- private JButton jButtonOk = null;\r
- private JButton jButtonCancel = null;\r
private JPanel jPanelFvImageN = null;\r
private JPanel jPanelFvImageS = null;\r
- private JCheckBox jCheckBox1 = null;\r
- private JLabel jLabel = null;\r
- private JTextField jTextField = null;\r
- private JLabel jLabel1 = null;\r
- private JTextField jTextField1 = null;\r
- private JButton jButton = null;\r
- private JScrollPane jScrollPane1 = null;\r
- private JTable jTable = null;\r
- private JPanel jPanel4 = null;\r
- private JButton jButton1 = null;\r
+ private JCheckBox jCheckBoxFvProperty = null;\r
+ private JLabel jLabelFvPropName = null;\r
+ private JTextField jTextFieldFvPropName = null;\r
+ private JLabel jLabelFvPropValue = null;\r
+ private JTextField jTextFieldFvPropValue = null;\r
+ private JButton jButtonFvPropAdd = null;\r
+ private JScrollPane jScrollPaneFvProp = null;\r
+ private JTable jTableFvProp = null;\r
+ private JPanel jPanelFvPropButtonGroup = null;\r
+ private JButton jButtonFvPropDel = null;\r
private DefaultTableModel fvPropertyTableModel = null;\r
private DefaultTableModel fvImageNameTableModel = null;\r
private ImageParaTableModel fvImageParaTableModel = null;\r
private DefaultTableModel fvOptionTableModel = null;\r
private JPanel jPanelFvImageC = null;\r
- private JCheckBox jCheckBox2 = null;\r
- private JLabel jLabel2 = null;\r
- private JComboBox jComboBox = null;\r
- private JLabel jLabel3 = null;\r
- private JLabel jLabel4 = null;\r
- private JTextField jTextField2 = null;\r
- private JButton jButton2 = null;\r
- private JScrollPane jScrollPane2 = null;\r
- private JTable jTable1 = null;\r
- private JButton jButton3 = null;\r
- private JPanel jPanel5 = null;\r
- private JButton jButton4 = null;\r
- private JScrollPane jScrollPane3 = null;\r
- private JTable jTable2 = null;\r
- private JButton jButton6 = null;\r
- private JCheckBox jCheckBox3 = null;\r
- private JPanel jPanel6 = null;\r
- \r
+ private JCheckBox jCheckBoxFvImagePara = null;\r
+ private JLabel jLabelFvParaType = null;\r
+ private JComboBox jComboBoxFvParaType = null;\r
+ private JLabel jLabelFvImageNames = null;\r
+ private JLabel jLabelFvParaName = null;\r
+ private JTextField jTextFieldFvParaName = null;\r
+ private JButton jButtonFvParaAdd = null;\r
+ private JScrollPane jScrollPaneFvImageNames = null;\r
+ private JTable jTableFvImageNames = null;\r
+ private JButton jButtonFvParaDel = null;\r
+ private JPanel jPanelFvImageOpts = null;\r
+ private JButton jButtonAddFvImage = null;\r
+ private JScrollPane jScrollPaneFvInfo = null;\r
+ private JTable jTableFvInfo = null;\r
+ private JButton jButtonDelFvImage = null;\r
+ private JCheckBox jCheckBoxFvImageOpts = null;\r
+ private JPanel jPanelFvImagePara = null;\r
+ private OpeningPlatformType docConsole = null;\r
private FpdFileContents ffc = null;\r
- private JPanel jPanel7 = null;\r
- private JCheckBox jCheckBox = null;\r
- private JTextField jTextField3 = null;\r
- private JButton jButton5 = null;\r
- private JLabel jLabel5 = null;\r
- private JTextField jTextField4 = null;\r
- private JLabel jLabel6 = null;\r
- private JTextField jTextField5 = null;\r
- private JPanel jPanel8 = null;\r
- private JButton jButton7 = null;\r
- private JButton jButton8 = null;\r
+ private JPanel jPanelFdf = null;\r
+ private JCheckBox jCheckBoxFdf = null;\r
+ private JTextField jTextFieldFdf = null;\r
+ private JButton jButtonFdfBrowse = null;\r
+ private JLabel jLabelFvImageOptName = null;\r
+ private JTextField jTextFieldFvImageOptName = null;\r
+ private JLabel jLabelFvImageOptValue = null;\r
+ private JTextField jTextFieldFvImageOptValue = null;\r
+ private JPanel jPanelFvImageOptsButtonGroup = null;\r
+ private JButton jButtonFvImageOptAdd = null;\r
+ private JButton jButtonFvImageOptDel = null;\r
private JScrollPane jScrollPane = null;\r
- private JTable jTable3 = null;\r
- private JButton jButton9 = null;\r
+ private JTable jTableFvImageOpts = null;\r
+ private JButton jButtonUpdateFvImage = null;\r
+ private JPanel jPanelFdfN = null;\r
+ private JPanel jPanelFdfS = null;\r
+ private JSplitPane jSplitPaneFdfC = null;\r
+ private JPanel jPanelFdfCTop = null;\r
+ private JPanel jPanelFdfCBottom = null;\r
+ private JPanel jPanelFdfCTopN = null;\r
+ private JPanel jPanelFdfCTopS = null;\r
+ private JPanel jPanelFdfCTopC = null;\r
+ private JPanel jPanelFdfCBottomN = null;\r
+ private JPanel jPanelFdfCBottomC = null;\r
+ private JLabel jLabelFvInFdf = null;\r
+ private JLabel jLabelFvAdditional = null;\r
+ private JScrollPane jScrollPaneFvInFdf = null;\r
+ private JTable jTableFvInFdf = null;\r
+ private NonEditableTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
+ private JButton jButtonFvInFdfOptions = null;\r
+ private JScrollPane jScrollPaneFvAdditional = null;\r
+ private JTable jTableFvAdditional = null;\r
+ private DefaultTableModel fvAdditionalTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
+ private JButton jButtonAddFv = null;\r
+ private JButton jButtonDelFv = null;\r
+ private JButton jButtonAddFvOptions = null;\r
+ private int tabIndexForFv = -1;\r
+ private int selectedRowInFvAdditionalTable = -1;\r
+ private String oldFvName = null;\r
+ private Vector<String> vBlockSize = new Vector<String>();\r
+ private String determinedFvBlockSize = null;\r
+ private String erasePolarity = "";\r
+ boolean memModified = false;\r
+ private FvOptsTableModel fvInFdfOptTableModel = null;\r
+ private FvOptsTableModel fvAdditionalOptTableModel = null;\r
+ \r
public FpdFlash() {\r
super();\r
// TODO Auto-generated constructor stub\r
init(ffc);\r
}\r
\r
+ public FpdFlash(OpeningPlatformType opt) {\r
+ this(opt.getXmlFpd());\r
+ docConsole = opt;\r
+ if (memModified) {\r
+ docConsole.setSaved(false);\r
+ JOptionPane.showMessageDialog(frame, "Platform Synced with FDF file.");\r
+ memModified = false;\r
+ }\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
+ private JPanel getJPanelContentEast() {\r
+ if (jPanelContentEast == null) {\r
+ jPanelContentEast = new JPanel();\r
}\r
- return jPanel;\r
+ return jPanelContentEast;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel1() {\r
- if (jPanel1 == null) {\r
+ private JPanel getJPanelContentSouth() {\r
+ if (jPanelContentSouth == 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
+ jPanelContentSouth = new JPanel();\r
+ jPanelContentSouth.setLayout(flowLayout);\r
+ jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
}\r
- return jPanel1;\r
+ return jPanelContentSouth;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel2() {\r
- if (jPanel2 == null) {\r
- jPanel2 = new JPanel();\r
+ private JPanel getJPanelContentWest() {\r
+ if (jPanelContentWest == null) {\r
+ jPanelContentWest = new JPanel();\r
}\r
- return jPanel2;\r
+ return jPanelContentWest;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel3() {\r
- if (jPanel3 == null) {\r
- jPanel3 = new JPanel();\r
+ private JPanel getJPanelContentNorth() {\r
+ if (jPanelContentNorth == null) {\r
+ jPanelContentNorth = new JPanel();\r
}\r
- return jPanel3;\r
+ return jPanelContentNorth;\r
}\r
\r
/**\r
private JTabbedPane getJTabbedPane() {\r
if (jTabbedPane == null) {\r
jTabbedPane = new JTabbedPane();\r
- jTabbedPane.addTab("FV Images", null, getJPanelFvImages(), null);\r
- jTabbedPane.addTab("Flash Definition File", null, getJPanel7(), null);\r
+ jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
+ jTabbedPane.addTab("Advanced", null, getJPanelFvImages(), null);\r
\r
}\r
return jTabbedPane;\r
// jPanelFvImages.add(getJPanelFvImageW(), java.awt.BorderLayout.WEST);\r
jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH);\r
jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);\r
+ jPanelFvImages.addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentShown(java.awt.event.ComponentEvent e) {\r
+ fvImageParaTableModel.setRowCount(0);\r
+ fvPropertyTableModel.setRowCount(0);\r
+ \r
+ if (ffc.getFvImagesFvImageCount("Attributes") == 0) {\r
+ return;\r
+ }\r
+ String[][] saa = new String[ffc.getFvImagesFvImageCount("Attributes")][2];\r
+ ffc.getFvImagesFvImages(saa, "Attributes");\r
+ \r
+ int i = 0;\r
+ while (i < saa.length) {\r
+ fvImageParaTableModel.addRow(saa[i]);\r
+ ++i;\r
+ }\r
+ \r
+ saa = new String[ffc.getFvImagesNameValueCount()][2];\r
+ ffc.getFvImagesNameValues(saa);\r
+ for (int m = 0; m < saa.length; ++m) {\r
+ fvPropertyTableModel.addRow(saa[m]);\r
+ }\r
+ }\r
+ });\r
\r
}\r
return jPanelFvImages;\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 jPanelFvImageN \r
* \r
*/\r
private JPanel getJPanelFvImageN() {\r
if (jPanelFvImageN == null) {\r
- jLabel1 = new JLabel();\r
- jLabel1.setText("Value");\r
- jLabel1.setEnabled(false);\r
- jLabel1.setPreferredSize(new java.awt.Dimension(38,20));\r
- jLabel = new JLabel();\r
- jLabel.setText("Name");\r
- jLabel.setEnabled(false);\r
- jLabel.setPreferredSize(new java.awt.Dimension(38,20));\r
+ jLabelFvPropValue = new JLabel();\r
+ jLabelFvPropValue.setText("Value");\r
+ jLabelFvPropValue.setEnabled(false);\r
+ jLabelFvPropValue.setPreferredSize(new java.awt.Dimension(38,20));\r
+ jLabelFvPropName = new JLabel();\r
+ jLabelFvPropName.setText("Name");\r
+ jLabelFvPropName.setEnabled(false);\r
+ jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20));\r
FlowLayout flowLayout2 = new FlowLayout();\r
- flowLayout2.setAlignment(java.awt.FlowLayout.CENTER);\r
+ flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
flowLayout2.setHgap(15);\r
jPanelFvImageN = new JPanel();\r
jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100));\r
jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));\r
jPanelFvImageN.setLayout(flowLayout2);\r
- jPanelFvImageN.add(getJCheckBox1(), null);\r
- jPanelFvImageN.add(jLabel, null);\r
- jPanelFvImageN.add(getJTextField(), null);\r
- jPanelFvImageN.add(jLabel1, null);\r
- jPanelFvImageN.add(getJTextField1(), null);\r
- jPanelFvImageN.add(getJScrollPane1(), null);\r
- jPanelFvImageN.add(getJPanel4(), null);\r
+ jPanelFvImageN.add(getJCheckBoxFvProperty(), null);\r
+ jPanelFvImageN.add(jLabelFvPropName, null);\r
+ jPanelFvImageN.add(getJTextFieldFvPropName(), null);\r
+ jPanelFvImageN.add(jLabelFvPropValue, null);\r
+ jPanelFvImageN.add(getJTextFieldFvPropValue(), null);\r
+ jPanelFvImageN.add(getJScrollPaneFvProp(), null);\r
+ jPanelFvImageN.add(getJPanelFvPropButtonGroup(), null);\r
}\r
return jPanelFvImageN;\r
}\r
jPanelFvImageS = new JPanel();\r
jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));\r
jPanelFvImageS.setLayout(gridLayout2);\r
- jPanelFvImageS.add(getJScrollPane3(), null);\r
+ jPanelFvImageS.add(getJScrollPaneFvInfo(), null);\r
}\r
return jPanelFvImageS;\r
}\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox1() {\r
- if (jCheckBox1 == null) {\r
- jCheckBox1 = new JCheckBox();\r
- jCheckBox1.setText("FV Properties");\r
- jCheckBox1.addItemListener(new ItemListener(){\r
+ private JCheckBox getJCheckBoxFvProperty() {\r
+ if (jCheckBoxFvProperty == null) {\r
+ jCheckBoxFvProperty = new JCheckBox();\r
+ jCheckBoxFvProperty.setText("Global FV Variables");\r
+ jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
// TODO Auto-generated method stub\r
- boolean seleted = jCheckBox1.isSelected();\r
+ boolean seleted = jCheckBoxFvProperty.isSelected();\r
\r
- jLabel.setEnabled(seleted);\r
- jTextField.setEnabled(seleted);\r
- jLabel1.setEnabled(seleted);\r
- jTextField1.setEnabled(seleted);\r
- jTable.setEnabled(seleted);\r
- jButton.setEnabled(seleted);\r
- jButton1.setEnabled(seleted);\r
+ jLabelFvPropName.setEnabled(seleted);\r
+ jTextFieldFvPropName.setEnabled(seleted);\r
+ jLabelFvPropValue.setEnabled(seleted);\r
+ jTextFieldFvPropValue.setEnabled(seleted);\r
+ jTableFvProp.setEnabled(seleted);\r
+ jButtonFvPropAdd.setEnabled(seleted);\r
+ jButtonFvPropDel.setEnabled(seleted);\r
\r
\r
}\r
\r
});\r
}\r
- return jCheckBox1;\r
+ return jCheckBoxFvProperty;\r
}\r
\r
\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField() {\r
- if (jTextField == null) {\r
- jTextField = new JTextField();\r
- jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
- jTextField.setEnabled(false);\r
+ private JTextField getJTextFieldFvPropName() {\r
+ if (jTextFieldFvPropName == null) {\r
+ jTextFieldFvPropName = new JTextField();\r
+ jTextFieldFvPropName.setPreferredSize(new java.awt.Dimension(100,20));\r
+ jTextFieldFvPropName.setEnabled(false);\r
}\r
- return jTextField;\r
+ return jTextFieldFvPropName;\r
}\r
\r
\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField1() {\r
- if (jTextField1 == null) {\r
- jTextField1 = new JTextField();\r
- jTextField1.setPreferredSize(new java.awt.Dimension(100,20));\r
- jTextField1.setEnabled(false);\r
+ private JTextField getJTextFieldFvPropValue() {\r
+ if (jTextFieldFvPropValue == null) {\r
+ jTextFieldFvPropValue = new JTextField();\r
+ jTextFieldFvPropValue.setPreferredSize(new java.awt.Dimension(100,20));\r
+ jTextFieldFvPropValue.setEnabled(false);\r
}\r
- return jTextField1;\r
+ return jTextFieldFvPropValue;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton() {\r
- if (jButton == null) {\r
- jButton = new JButton();\r
- jButton.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButton.setEnabled(false);\r
- jButton.setText("Add");\r
- jButton.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvPropAdd() {\r
+ if (jButtonFvPropAdd == null) {\r
+ jButtonFvPropAdd = new JButton();\r
+ jButtonFvPropAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonFvPropAdd.setEnabled(false);\r
+ jButtonFvPropAdd.setText("Add");\r
+ jButtonFvPropAdd.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(ActionEvent e) {\r
- if (jTextField.getText().length() > 0 && jTextField1.getText().length() > 0){\r
- String[] row = {jTextField.getText(), jTextField1.getText()}; \r
+ if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){\r
+ String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; \r
fvPropertyTableModel.addRow(row);\r
+ docConsole.setSaved(false);\r
ffc.genFvImagesNameValue(row[0], row[1]);\r
}\r
}\r
});\r
}\r
- return jButton;\r
+ return jButtonFvPropAdd;\r
}\r
\r
\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane1() {\r
- if (jScrollPane1 == null) {\r
- jScrollPane1 = new JScrollPane();\r
- jScrollPane1.setPreferredSize(new java.awt.Dimension(350,55));\r
- jScrollPane1.setViewportView(getJTable());\r
+ private JScrollPane getJScrollPaneFvProp() {\r
+ if (jScrollPaneFvProp == null) {\r
+ jScrollPaneFvProp = new JScrollPane();\r
+ jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,55));\r
+ jScrollPaneFvProp.setViewportView(getJTableFvProp());\r
}\r
- return jScrollPane1;\r
+ return jScrollPaneFvProp;\r
}\r
\r
\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable() {\r
- if (jTable == null) {\r
+ private JTable getJTableFvProp() {\r
+ if (jTableFvProp == null) {\r
fvPropertyTableModel = new DefaultTableModel();\r
- jTable = new JTable(fvPropertyTableModel);\r
+ jTableFvProp = new JTable(fvPropertyTableModel);\r
fvPropertyTableModel.addColumn("Name");\r
fvPropertyTableModel.addColumn("Value");\r
- jTable.setRowHeight(20);\r
- jTable.setEnabled(false);\r
+ jTableFvProp.setRowHeight(20);\r
+ jTableFvProp.setEnabled(false);\r
\r
- jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
+ jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
public void valueChanged(ListSelectionEvent e) {\r
if (e.getValueIsAdjusting()){\r
return;\r
}\r
});\r
\r
- jTable.getModel().addTableModelListener(new TableModelListener(){\r
+ jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
public void tableChanged(TableModelEvent arg0) {\r
// TODO Auto-generated method stub\r
int row = arg0.getFirstRow();\r
\r
String name = m.getValueAt(row, 0) + "";\r
String value = m.getValueAt(row, 1) + "";\r
-\r
+ docConsole.setSaved(false);\r
ffc.updateFvImagesNameValue(row, name, value);\r
}\r
}\r
});\r
}\r
- return jTable;\r
+ return jTableFvProp;\r
}\r
\r
\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel4() {\r
- if (jPanel4 == null) {\r
- jPanel4 = new JPanel();\r
- jPanel4.setPreferredSize(new java.awt.Dimension(80,55));\r
+ private JPanel getJPanelFvPropButtonGroup() {\r
+ if (jPanelFvPropButtonGroup == null) {\r
+ jPanelFvPropButtonGroup = new JPanel();\r
+ jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55));\r
\r
- jPanel4.add(getJButton(), null);\r
- jPanel4.add(getJButton1(), null);\r
+ jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
+ jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
}\r
- return jPanel4;\r
+ return jPanelFvPropButtonGroup;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton1() {\r
- if (jButton1 == null) {\r
- jButton1 = new JButton();\r
- jButton1.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButton1.setEnabled(false);\r
- jButton1.setText("Delete");\r
- jButton1.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvPropDel() {\r
+ if (jButtonFvPropDel == null) {\r
+ jButtonFvPropDel = new JButton();\r
+ jButtonFvPropDel.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonFvPropDel.setEnabled(false);\r
+ jButtonFvPropDel.setText("Delete");\r
+ jButtonFvPropDel.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(ActionEvent e) {\r
- if (jTable.getSelectedRow() >= 0){\r
- fvPropertyTableModel.removeRow(jTable.getSelectedRow());\r
- ffc.removeFvImagesNameValue(jTable.getSelectedRow());\r
+ if (jTableFvProp.getSelectedRow() >= 0){\r
+ fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
+ docConsole.setSaved(false);\r
+ ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
}\r
}\r
});\r
}\r
- return jButton1;\r
+ return jButtonFvPropDel;\r
}\r
\r
\r
*/\r
private JPanel getJPanelFvImageC() {\r
if (jPanelFvImageC == null) {\r
- jLabel4 = new JLabel();\r
- jLabel4.setPreferredSize(new Dimension(38, 20));\r
- jLabel4.setEnabled(false);\r
- jLabel4.setText("Name");\r
- jLabel3 = new JLabel();\r
- jLabel3.setText("FV Image Names");\r
- jLabel3.setEnabled(false);\r
- jLabel3.setPreferredSize(new java.awt.Dimension(150,20));\r
- jLabel2 = new JLabel();\r
- jLabel2.setText("Type");\r
- jLabel2.setEnabled(false);\r
- jLabel2.setPreferredSize(new java.awt.Dimension(70,20));\r
+ jLabelFvParaName = new JLabel();\r
+ jLabelFvParaName.setPreferredSize(new Dimension(38, 20));\r
+ jLabelFvParaName.setEnabled(false);\r
+ jLabelFvParaName.setText("Name");\r
+ jLabelFvImageNames = new JLabel();\r
+ jLabelFvImageNames.setText("FV Image Names");\r
+ jLabelFvImageNames.setEnabled(false);\r
+ jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20));\r
+ jLabelFvParaType = new JLabel();\r
+ jLabelFvParaType.setText("Type");\r
+ jLabelFvParaType.setEnabled(false);\r
+ jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20));\r
FlowLayout flowLayout3 = new FlowLayout();\r
flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
flowLayout3.setHgap(5);\r
jPanelFvImageC = new JPanel();\r
jPanelFvImageC.setLayout(flowLayout3);\r
- jPanelFvImageC.add(getJPanel6(), null);\r
+ jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
\r
- jPanelFvImageC.add(getJPanel5(), null);\r
+ jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
\r
}\r
return jPanelFvImageC;\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox2() {\r
- if (jCheckBox2 == null) {\r
- jCheckBox2 = new JCheckBox();\r
- jCheckBox2.setText("FV Image Parameters");\r
- jCheckBox2.setPreferredSize(new java.awt.Dimension(200,20));\r
- jCheckBox2.addItemListener(new ItemListener(){\r
+ private JCheckBox getJCheckBoxFvImagePara() {\r
+ if (jCheckBoxFvImagePara == null) {\r
+ jCheckBoxFvImagePara = new JCheckBox();\r
+ jCheckBoxFvImagePara.setText("FV Image Parameters");\r
+ jCheckBoxFvImagePara.setPreferredSize(new java.awt.Dimension(200,20));\r
+ jCheckBoxFvImagePara.addItemListener(new ItemListener(){\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
// TODO Auto-generated method stub\r
- boolean seleted = jCheckBox2.isSelected();\r
+ boolean seleted = jCheckBoxFvImagePara.isSelected();\r
\r
- jLabel2.setEnabled(seleted);\r
- jLabel3.setEnabled(seleted);\r
- jLabel4.setEnabled(seleted);\r
- jComboBox.setEnabled(seleted);\r
- jTextField2.setEnabled(seleted);\r
+ jLabelFvParaType.setEnabled(seleted);\r
+ jLabelFvImageNames.setEnabled(seleted);\r
+ jLabelFvParaName.setEnabled(seleted);\r
+ jComboBoxFvParaType.setEnabled(seleted);\r
+ jTextFieldFvParaName.setEnabled(seleted);\r
\r
- jTable1.setEnabled(seleted);\r
- jButton2.setEnabled(seleted);\r
- jButton3.setEnabled(seleted);\r
+ jTableFvImageNames.setEnabled(seleted);\r
+ jButtonFvParaAdd.setEnabled(seleted);\r
+ jButtonFvParaDel.setEnabled(seleted);\r
\r
\r
}\r
\r
});\r
}\r
- return jCheckBox2;\r
+ return jCheckBoxFvImagePara;\r
}\r
\r
\r
* \r
* @return javax.swing.JComboBox \r
*/\r
- private JComboBox getJComboBox() {\r
- if (jComboBox == null) {\r
- jComboBox = new JComboBox();\r
- jComboBox.addItem("ImageName");\r
- jComboBox.addItem("Attributes");\r
- jComboBox.addItem("Options");\r
- jComboBox.addItem("Components");\r
- jComboBox.setPreferredSize(new java.awt.Dimension(180,20));\r
- jComboBox.setEnabled(false);\r
- jComboBox.addItemListener(new ItemListener() {\r
+ private JComboBox getJComboBoxFvParaType() {\r
+ if (jComboBoxFvParaType == null) {\r
+ jComboBoxFvParaType = new JComboBox();\r
+// jComboBoxFvParaType.addItem("ImageName");\r
+ jComboBoxFvParaType.addItem("Attributes");\r
+ jComboBoxFvParaType.addItem("Options");\r
+// jComboBoxFvParaType.addItem("Components");\r
+ jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20));\r
+ jComboBoxFvParaType.setEnabled(false);\r
+ jComboBoxFvParaType.addItemListener(new ItemListener() {\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
// TODO disable attribute settings when ValidImageNames selected.\r
\r
});\r
}\r
- return jComboBox;\r
+ return jComboBoxFvParaType;\r
}\r
\r
\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField2() {\r
- if (jTextField2 == null) {\r
- jTextField2 = new JTextField();\r
- jTextField2.setPreferredSize(new java.awt.Dimension(140,20));\r
- jTextField2.setEnabled(false);\r
+ private JTextField getJTextFieldFvParaName() {\r
+ if (jTextFieldFvParaName == null) {\r
+ jTextFieldFvParaName = new JTextField();\r
+ jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20));\r
+ jTextFieldFvParaName.setEnabled(false);\r
}\r
- return jTextField2;\r
+ return jTextFieldFvParaName;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton2() {\r
- if (jButton2 == null) {\r
- jButton2 = new JButton();\r
- jButton2.setPreferredSize(new Dimension(80, 20));\r
- jButton2.setEnabled(false);\r
- jButton2.setText("Add");\r
- jButton2.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvParaAdd() {\r
+ if (jButtonFvParaAdd == null) {\r
+ jButtonFvParaAdd = new JButton();\r
+ jButtonFvParaAdd.setPreferredSize(new Dimension(80, 20));\r
+ jButtonFvParaAdd.setEnabled(false);\r
+ jButtonFvParaAdd.setText("Add");\r
+ jButtonFvParaAdd.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- if (jTextField2.getText().length() > 0){\r
- String[] row = {jTextField2.getText()}; \r
+ if (jTextFieldFvParaName.getText().length() > 0){\r
+ String[] row = {jTextFieldFvParaName.getText()}; \r
fvImageNameTableModel.addRow(row);\r
}\r
}\r
});\r
}\r
- return jButton2;\r
+ return jButtonFvParaAdd;\r
}\r
\r
\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane2() {\r
- if (jScrollPane2 == null) {\r
- jScrollPane2 = new JScrollPane();\r
- jScrollPane2.setPreferredSize(new java.awt.Dimension(350,50));\r
- jScrollPane2.setViewportView(getJTable1());\r
+ private JScrollPane getJScrollPaneFvImageNames() {\r
+ if (jScrollPaneFvImageNames == null) {\r
+ jScrollPaneFvImageNames = new JScrollPane();\r
+ jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,50));\r
+ jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames());\r
}\r
- return jScrollPane2;\r
+ return jScrollPaneFvImageNames;\r
}\r
\r
\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable1() {\r
- if (jTable1 == null) {\r
+ private JTable getJTableFvImageNames() {\r
+ if (jTableFvImageNames == null) {\r
fvImageNameTableModel = new DefaultTableModel();\r
- jTable1 = new JTable(fvImageNameTableModel);\r
- jTable1.setEnabled(false);\r
+ jTableFvImageNames = new JTable(fvImageNameTableModel);\r
+ jTableFvImageNames.setEnabled(false);\r
fvImageNameTableModel.addColumn("FV Image Name");\r
}\r
- return jTable1;\r
+ return jTableFvImageNames;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton3() {\r
- if (jButton3 == null) {\r
- jButton3 = new JButton();\r
- jButton3.setPreferredSize(new Dimension(80, 20));\r
- jButton3.setEnabled(false);\r
- jButton3.setText("Delete");\r
- jButton3.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvParaDel() {\r
+ if (jButtonFvParaDel == null) {\r
+ jButtonFvParaDel = new JButton();\r
+ jButtonFvParaDel.setPreferredSize(new Dimension(80, 20));\r
+ jButtonFvParaDel.setEnabled(false);\r
+ jButtonFvParaDel.setText("Delete");\r
+ jButtonFvParaDel.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- if (jTable1.getSelectedRow() >= 0){\r
+ if (jTableFvImageNames.getSelectedRow() >= 0){\r
\r
- fvImageNameTableModel.removeRow(jTable1.getSelectedRow());\r
+ fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
}\r
}\r
});\r
}\r
- return jButton3;\r
+ return jButtonFvParaDel;\r
}\r
\r
\r
\r
\r
- private JPanel getJPanel5() {\r
+ private JPanel getJPanelFvImageOpts() {\r
\r
\r
- if (jPanel5 == null) {\r
+ if (jPanelFvImageOpts == null) {\r
//ToDo add ButtonGroup for RadioButtons\r
- jLabel6 = new JLabel();\r
- jLabel6.setEnabled(false);\r
- jLabel6.setText("Value");\r
- jLabel6.setPreferredSize(new Dimension(38, 20));\r
- jLabel5 = new JLabel();\r
- jLabel5.setEnabled(false);\r
- jLabel5.setText("Name");\r
- jLabel5.setPreferredSize(new Dimension(38, 20));\r
- jPanel5 = new JPanel();\r
- jPanel5.setPreferredSize(new java.awt.Dimension(480,150));\r
+ jLabelFvImageOptValue = new JLabel();\r
+ jLabelFvImageOptValue.setEnabled(true);\r
+ jLabelFvImageOptValue.setText("Value");\r
+ jLabelFvImageOptValue.setPreferredSize(new Dimension(38, 20));\r
+ jLabelFvImageOptName = new JLabel();\r
+ jLabelFvImageOptName.setEnabled(true);\r
+ jLabelFvImageOptName.setText("Name");\r
+ jLabelFvImageOptName.setPreferredSize(new Dimension(38, 20));\r
+ jPanelFvImageOpts = new JPanel();\r
+ jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(480,150));\r
\r
- jPanel5.setLayout(new FlowLayout());\r
+ jPanelFvImageOpts.setLayout(new FlowLayout());\r
\r
- jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
- jPanel5.add(getJCheckBox3(), null);\r
- jPanel5.add(jLabel5, null);\r
- jPanel5.add(getJTextField4(), null);\r
- jPanel5.add(jLabel6, null);\r
- jPanel5.add(getJTextField5(), null);\r
- jPanel5.add(getJScrollPane(), null);\r
- jPanel5.add(getJPanel8(), null);\r
- jPanel5.add(getJButton4(), null);\r
- jPanel5.add(getJButton6(), null);\r
- jPanel5.add(getJButton9(), null);\r
+ jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
+ jPanelFvImageOpts.add(getJCheckBoxFvImageOpts(), null);\r
+ jPanelFvImageOpts.add(jLabelFvImageOptName, null);\r
+ jPanelFvImageOpts.add(getJTextFieldFvImageOptName(), null);\r
+ jPanelFvImageOpts.add(jLabelFvImageOptValue, null);\r
+ jPanelFvImageOpts.add(getJTextFieldFvImageOptValue(), null);\r
+ jPanelFvImageOpts.add(getJScrollPane(), null);\r
+ jPanelFvImageOpts.add(getJPanelFvImageOptsButtonGroup(), null);\r
+ jPanelFvImageOpts.add(getJButtonAddFvImage(), null);\r
+ jPanelFvImageOpts.add(getJButtonDelFvImage(), null);\r
+ jPanelFvImageOpts.add(getJButtonUpdateFvImage(), null);\r
\r
\r
\r
\r
\r
}\r
- return jPanel5;\r
+ return jPanelFvImageOpts;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton4() {\r
- if (jButton4 == null) {\r
- jButton4 = new JButton();\r
- jButton4.setPreferredSize(new java.awt.Dimension(120,20));\r
+ private JButton getJButtonAddFvImage() {\r
+ if (jButtonAddFvImage == null) {\r
+ jButtonAddFvImage = new JButton();\r
+ jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
// jButton4.setEnabled(false);\r
- jButton4.setText("Add FV Image");\r
- jButton4.addActionListener(new AbstractAction() {\r
+ jButtonAddFvImage.setText("Add FV Image");\r
+ jButtonAddFvImage.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- if (jTable2.isEditing()) {\r
- jTable2.getCellEditor().stopCellEditing();\r
+ if (jTableFvInfo.isEditing()) {\r
+ jTableFvInfo.getCellEditor().stopCellEditing();\r
}\r
- if (jTable3.isEditing()) {\r
- jTable3.getCellEditor().stopCellEditing();\r
+ if (jTableFvImageOpts.isEditing()) {\r
+ jTableFvImageOpts.getCellEditor().stopCellEditing();\r
}\r
- if (jTable1.getRowCount()== 0){\r
+ if (jTableFvImageNames.getRowCount()== 0){\r
return;\r
}\r
String imageName = " ";\r
- for (int i = 0; i < jTable1.getRowCount(); ++i){\r
- imageName += (String)jTable1.getValueAt(i, 0);\r
+ for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){\r
+ imageName += (String)jTableFvImageNames.getValueAt(i, 0);\r
imageName += " ";\r
}\r
imageName = imageName.trim();\r
\r
- if (!jCheckBox3.isSelected() && jComboBox.getSelectedIndex() != 0){\r
+ if (!jCheckBoxFvImageOpts.isSelected() && jComboBoxFvParaType.getSelectedIndex() != 0){\r
return;\r
\r
}\r
\r
LinkedHashMap<String, String> m = null;\r
- if (jCheckBox3.isSelected()) {\r
+ if (jCheckBoxFvImageOpts.isSelected()) {\r
m = new LinkedHashMap<String, String>();\r
getOptionNameValue(m);\r
}\r
- ffc.genFvImagesFvImage(imageName.split(" "), jComboBox.getSelectedItem()+"", m);\r
- \r
- Object[] row = {imageName, jComboBox.getSelectedItem()};\r
+ ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
+ docConsole.setSaved(false);\r
+ Object[] row = {imageName, jComboBoxFvParaType.getSelectedItem()};\r
fvImageParaTableModel.addRow(row); \r
}\r
});\r
}\r
- return jButton4;\r
+ return jButtonAddFvImage;\r
}\r
\r
\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(480,150));\r
- jScrollPane3.setViewportView(getJTable2());\r
+ private JScrollPane getJScrollPaneFvInfo() {\r
+ if (jScrollPaneFvInfo == null) {\r
+ jScrollPaneFvInfo = new JScrollPane();\r
+ jScrollPaneFvInfo.setPreferredSize(new java.awt.Dimension(480,150));\r
+ jScrollPaneFvInfo.setViewportView(getJTableFvInfo());\r
}\r
- return jScrollPane3;\r
+ return jScrollPaneFvInfo;\r
}\r
\r
\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable2() {\r
- if (jTable2 == null) {\r
+ private JTable getJTableFvInfo() {\r
+ if (jTableFvInfo == null) {\r
fvImageParaTableModel = new ImageParaTableModel();\r
- jTable2 = new JTable(fvImageParaTableModel);\r
+ jTableFvInfo = new JTable(fvImageParaTableModel);\r
fvImageParaTableModel.addColumn("FvImageNames");\r
fvImageParaTableModel.addColumn("Type");\r
\r
\r
- TableColumn typeCol = jTable2.getColumnModel().getColumn(1);\r
- JComboBox cb = new JComboBox();\r
- cb.addItem("ValidImageNames");\r
- cb.addItem("Attributes");\r
- cb.addItem("Options");\r
- cb.addItem("Components");\r
- typeCol.setCellEditor(new DefaultCellEditor(cb));\r
+// TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1);\r
+// JComboBox cb = new JComboBox();\r
+// cb.addItem("ImageName");\r
+// cb.addItem("Attributes");\r
+// cb.addItem("Options");\r
+// cb.addItem("Components");\r
+// typeCol.setCellEditor(new DefaultCellEditor(cb));\r
\r
- jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
+ jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
public void valueChanged(ListSelectionEvent e) {\r
if (e.getValueIsAdjusting()){\r
return;\r
}\r
else{\r
int selectedRow = lsm.getMinSelectionIndex();\r
+ if (fvImageParaTableModel.getValueAt(selectedRow, 1).equals("ImageName")) {\r
+ String[] fvNames = fvImageParaTableModel.getValueAt(selectedRow, 0).toString().split(" ");\r
+ for (int i = 0; i < fvNames.length; ++i) {\r
+ String[] row = {fvNames[i]};\r
+ fvImageNameTableModel.addRow(row);\r
+ }\r
+ return;\r
+ }\r
LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();\r
ffc.getFvImagesFvImageOptions(selectedRow, optionMap);\r
if (optionMap.size() > 0){\r
\r
\r
}\r
- return jTable2;\r
+ return jTableFvInfo;\r
}\r
\r
\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton6() {\r
- if (jButton6 == null) {\r
- jButton6 = new JButton();\r
- jButton6.setPreferredSize(new java.awt.Dimension(120,20));\r
-// jButton6.setEnabled(false);\r
- jButton6.setText("Delete Row");\r
- jButton6.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonDelFvImage() {\r
+ if (jButtonDelFvImage == null) {\r
+ jButtonDelFvImage = new JButton();\r
+ jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
+ jButtonDelFvImage.setEnabled(false);\r
+ jButtonDelFvImage.setText("Delete Row");\r
+ jButtonDelFvImage.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
\r
public void actionPerformed(ActionEvent arg0) {\r
// TODO Auto-generated method stub\r
- if (jTable2.getSelectedRow() >= 0 ) {\r
- fvImageParaTableModel.removeRow(jTable2.getSelectedRow());\r
- ffc.removeFvImagesFvImage(jTable2.getSelectedRow());\r
+ if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
+ ffc.removeFvImagesFvImage(jTableFvInfo.getSelectedRow());\r
+ fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
+ docConsole.setSaved(false);\r
}\r
}\r
\r
});\r
}\r
- return jButton6;\r
+ return jButtonDelFvImage;\r
}\r
\r
\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox3() {\r
- if (jCheckBox3 == null) {\r
- jCheckBox3 = new JCheckBox();\r
- jCheckBox3.setText("FV Image Options");\r
- jCheckBox3.addItemListener(new ItemListener(){\r
+ private JCheckBox getJCheckBoxFvImageOpts() {\r
+ if (jCheckBoxFvImageOpts == null) {\r
+ jCheckBoxFvImageOpts = new JCheckBox();\r
+ jCheckBoxFvImageOpts.setText("FV Image Options");\r
+ jCheckBoxFvImageOpts.addItemListener(new ItemListener(){\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
// TODO Auto-generated method stub\r
- boolean selected = jCheckBox3.isSelected();\r
+// boolean selected = jCheckBox3.isSelected();\r
\r
- if (!jCheckBox2.isSelected() || jComboBox.getSelectedIndex() == 0) {\r
+ if (!jCheckBoxFvImagePara.isSelected() || jComboBoxFvParaType.getSelectedIndex() == 0) {\r
return;\r
}\r
\r
-// jLabel5.setEnabled(selected);\r
-// jTextField4.setEnabled(selected);\r
-// jLabel6.setEnabled(selected);\r
-// jTextField5.setEnabled(selected);\r
-// jButton7.setEnabled(selected);\r
-// jButton8.setEnabled(selected);\r
-\r
}\r
\r
});\r
}\r
- return jCheckBox3;\r
+ return jCheckBoxFvImageOpts;\r
}\r
\r
\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel6() {\r
- if (jPanel6 == null) {\r
+ private JPanel getJPanelFvImagePara() {\r
+ if (jPanelFvImagePara == null) {\r
StarLabel starLabel = new StarLabel();\r
starLabel.setVisible(false);\r
- jPanel6 = new JPanel();\r
- jPanel6.setPreferredSize(new java.awt.Dimension(480,120));\r
- jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
- jPanel6.add(getJCheckBox2(), null);\r
- jPanel6.add(jLabel2, null);\r
- jPanel6.add(getJComboBox(), null);\r
- jPanel6.add(new StarLabel(), null);\r
- jPanel6.add(jLabel3, null);\r
- jPanel6.add(jLabel4, null);\r
- jPanel6.add(getJTextField2(), null);\r
- jPanel6.add(getJButton2(), null);\r
- jPanel6.add(getJScrollPane2(), null);\r
- jPanel6.add(getJButton3(), null);\r
+ jPanelFvImagePara = new JPanel();\r
+ jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(480,120));\r
+ jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
+ jPanelFvImagePara.add(getJCheckBoxFvImagePara(), null);\r
+ jPanelFvImagePara.add(jLabelFvParaType, null);\r
+ jPanelFvImagePara.add(getJComboBoxFvParaType(), null);\r
+ jPanelFvImagePara.add(new StarLabel(), null);\r
+ jPanelFvImagePara.add(jLabelFvImageNames, null);\r
+ jPanelFvImagePara.add(jLabelFvParaName, null);\r
+ jPanelFvImagePara.add(getJTextFieldFvParaName(), null);\r
+ jPanelFvImagePara.add(getJButtonFvParaAdd(), null);\r
+ jPanelFvImagePara.add(getJScrollPaneFvImageNames(), null);\r
+ jPanelFvImagePara.add(getJButtonFvParaDel(), null);\r
}\r
- return jPanel6;\r
+ return jPanelFvImagePara;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel7() {\r
- if (jPanel7 == null) {\r
- FlowLayout flowLayout1 = new FlowLayout();\r
- flowLayout1.setAlignment(FlowLayout.LEFT);\r
- jPanel7 = new JPanel();\r
- jPanel7.setLayout(flowLayout1);\r
- jPanel7.add(getJCheckBox(), null);\r
- jPanel7.add(getJTextField3(), null);\r
- jPanel7.add(getJButton5(), null);\r
- jPanel7.addComponentListener(new ComponentAdapter(){\r
+ private JPanel getJPanelFdf() {\r
+ if (jPanelFdf == null) {\r
+ jPanelFdf = new JPanel();\r
+ jPanelFdf.setLayout(new BorderLayout());\r
+\r
+ jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH);\r
+ jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER);\r
+ jPanelFdf.addComponentListener(new ComponentAdapter(){\r
public void componentShown(ComponentEvent e) {\r
- if (ffc.getFlashDefinitionFile() != null) {\r
- jTextField3.setText(ffc.getFlashDefinitionFile());\r
- }\r
+// if (ffc.getFlashDefinitionFile() != null) {\r
+// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
+// initFvInFdfTable(System.getenv("WORKSPACE") + File.separator + jTextFieldFdf.getText());\r
+// \r
+// }\r
}\r
public void componentHidden(ComponentEvent e) {\r
- if (jCheckBox.isSelected()) {\r
- ffc.genFlashDefinitionFile(jTextField3.getText());\r
+ if (jCheckBoxFdf.isSelected()) {\r
+ ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
}\r
}\r
});\r
}\r
- return jPanel7;\r
+ return jPanelFdf;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JCheckBox \r
*/\r
- private JCheckBox getJCheckBox() {\r
- if (jCheckBox == null) {\r
- jCheckBox = new JCheckBox();\r
- jCheckBox.setText("Flash Definition File");\r
- jCheckBox.addItemListener(new ItemListener() {\r
+ private JCheckBox getJCheckBoxFdf() {\r
+ if (jCheckBoxFdf == null) {\r
+ jCheckBoxFdf = new JCheckBox();\r
+ jCheckBoxFdf.setText("Flash Definition File");\r
+ jCheckBoxFdf.addItemListener(new ItemListener() {\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
// TODO Auto-generated method stub\r
- if (jCheckBox.isSelected()){\r
- jTextField3.setEnabled(true);\r
- jButton5.setEnabled(true);\r
+ if (jCheckBoxFdf.isSelected()){\r
+ jTextFieldFdf.setEnabled(true);\r
+ jButtonFdfBrowse.setEnabled(true);\r
}\r
else {\r
\r
- jTextField3.setEnabled(false);\r
- jButton5.setEnabled(false);\r
+ jTextFieldFdf.setEnabled(false);\r
+ jButtonFdfBrowse.setEnabled(false);\r
}\r
}\r
});\r
}\r
- return jCheckBox;\r
+ return jCheckBoxFdf;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField3() {\r
- if (jTextField3 == null) {\r
- jTextField3 = new JTextField();\r
- jTextField3.setEnabled(false);\r
- jTextField3.setPreferredSize(new Dimension(300, 20));\r
+ private JTextField getJTextFieldFdf() {\r
+ if (jTextFieldFdf == null) {\r
+ jTextFieldFdf = new JTextField();\r
+ jTextFieldFdf.setEnabled(false);\r
+ jTextFieldFdf.setEditable(false);\r
+ jTextFieldFdf.setPreferredSize(new Dimension(300, 20));\r
+ jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() {\r
+ public void focusLost(java.awt.event.FocusEvent e) {\r
+ ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
+ }\r
+ });\r
}\r
- return jTextField3;\r
+ return jTextFieldFdf;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton5() {\r
- if (jButton5 == null) {\r
- jButton5 = new JButton();\r
- jButton5.setEnabled(false);\r
- jButton5.setText("Browse");\r
- jButton5.setPreferredSize(new Dimension(78, 20));\r
- jButton5.addActionListener(new AbstractAction(){\r
+ private JButton getJButtonFdfBrowse() {\r
+ if (jButtonFdfBrowse == null) {\r
+ jButtonFdfBrowse = new JButton();\r
+ jButtonFdfBrowse.setEnabled(false);\r
+ jButtonFdfBrowse.setText("Browse");\r
+ jButtonFdfBrowse.setPreferredSize(new Dimension(78, 20));\r
+ jButtonFdfBrowse.addActionListener(new AbstractAction(){\r
/**\r
* \r
*/\r
\r
public void actionPerformed(ActionEvent e) {\r
// TODO Auto-generated method stub\r
- JFileChooser chooser = new JFileChooser();\r
+ String wsDir = System.getenv("WORKSPACE");\r
+ JFileChooser chooser = new JFileChooser(wsDir);\r
chooser.setMultiSelectionEnabled(false);\r
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
int retval = chooser.showOpenDialog(frame);\r
if (retval == JFileChooser.APPROVE_OPTION) {\r
\r
File theFile = chooser.getSelectedFile();\r
- jTextField3.setText(theFile.getPath());\r
+ String filePath = theFile.getPath();\r
+ if (!filePath.startsWith(wsDir)) {\r
+ JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE.");\r
+ return;\r
+ }\r
+ jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
+ ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
+ docConsole.setSaved(false);\r
+ initFvInFdfTable(filePath);\r
}\r
}\r
\r
});\r
}\r
- return jButton5;\r
+ return jButtonFdfBrowse;\r
}\r
+ \r
+ private void initFvAdditionalTable() {\r
+ Vector<String> vFvNames = new Vector<String>();\r
+ ffc.getFvImagesFvImageFvImageNames(vFvNames);\r
+ for (int i = 0; i < vFvNames.size(); ++i) {\r
+ String fvName = vFvNames.get(i);\r
+ if (fvNameExists(fvName)) {\r
+ continue;\r
+ }\r
+ HashMap<String, String> mFvOpts = new HashMap<String, String>();\r
+ ffc.getFvImagesFvImageOptions(fvName, mFvOpts);\r
+ String bSize = "";\r
+ String numBlks = "";\r
+ String fvSize = "";\r
+ String fvFile = "";\r
+ if (mFvOpts.get("EFI_FILE_NAME") != null) {\r
+ fvFile = mFvOpts.get("EFI_FILE_NAME");\r
+ }\r
+ if (mFvOpts.get("EFI_BLOCK_SIZE") != null && mFvOpts.get("EFI_NUM_BLOCKS") != null) {\r
+ bSize = mFvOpts.get("EFI_BLOCK_SIZE");\r
+ numBlks = mFvOpts.get("EFI_NUM_BLOCKS");\r
+ boolean blockSizeWellFormat = true;\r
+ boolean numOfBlockWellFormat = true;\r
+ if (!DataValidation.isHexDoubleWordDataType(bSize) && !DataValidation.isInt(bSize)) {\r
+ blockSizeWellFormat = false;\r
+ JOptionPane.showMessageDialog(frame, fvName + " block size bad format.");\r
+ } \r
+ if (!DataValidation.isHexDoubleWordDataType(numBlks) && !DataValidation.isInt(numBlks)) {\r
+ numOfBlockWellFormat = false;\r
+ JOptionPane.showMessageDialog(frame, fvName + " number of blocks bad format.");\r
+ }\r
+ if (blockSizeWellFormat && numOfBlockWellFormat) {\r
+ int size = Integer.decode(bSize);\r
+ int num = Integer.decode(numBlks);\r
+ fvSize = "0x" + Integer.toHexString(size*num);\r
+ }\r
+ }\r
+ fvAdditionalTableModel.addRow(new String[]{fvName, fvSize, fvFile});\r
+ addTabForFv(new FvInfoFromFdf(fvName, "", ""));\r
+ }\r
+ }\r
+\r
+ private void initFvInFdfTable(String fdfPath){\r
+ Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
+ getFvInfoFromFdf(fdfPath, vFvInfo);\r
+ getFlashInfoFromFdf (fdfPath);\r
+ if (!erasePolarity.equals("1") && !erasePolarity.equals("0")) {\r
+ JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid Erase Polarity.");\r
+ }\r
+ else {\r
+ ffc.setTypedFvImageNameValue("Attributes", "ErasePolarity", erasePolarity);\r
+ }\r
+ \r
+ // BugBug: assume all blocks have same size;\r
+ \r
+ String blkSize = "0x10000";\r
+ if (vBlockSize.size() > 0) {\r
+ blkSize = vBlockSize.get(0);\r
+ if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
+ JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid FV block size. Default size 0x10000 will be used.");\r
+ blkSize = "0x10000";\r
+ }\r
+ }\r
+ determinedFvBlockSize = blkSize;\r
+ \r
+ getFvInFdfTableModel().setRowCount(0);\r
+ for (int j = 0; j < vFvInfo.size(); ++j) {\r
+ FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
+ String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
+ // if FV addtional table contains the same FV from fdf file, remove that row.\r
+ for (int k = 0; k < jTableFvAdditional.getRowCount(); ++k) {\r
+ if (fvAdditionalTableModel.getValueAt(k, 0).equals(row[0])) {\r
+ fvAdditionalTableModel.removeRow(k);\r
+ }\r
+ }\r
+ getFvInFdfTableModel().addRow(row);\r
+ try {\r
+ int blockSize = Integer.decode(blkSize);\r
+ int fvSize = Integer.decode(row[1]);\r
+ int numBlocks = fvSize/blockSize;\r
+ HashMap<String, String> mOptions = new HashMap<String, String>();\r
+ // if no options for this FV before, generate a new options entry for this FV.\r
+ if (ffc.getFvImagesFvImageWithName(row[0], "Options") == null) {\r
+ \r
+ mOptions.put("EFI_BLOCK_SIZE", blkSize);\r
+ mOptions.put("EFI_NUM_BLOCKS", numBlocks+"");\r
+ mOptions.put("EFI_FILE_NAME", row[2]);\r
+ ffc.genFvImagesFvImage(new String[]{row[0]}, "Options", mOptions);\r
+ memModified = true;\r
+ }\r
+ else {\r
+ ffc.getFvImagesFvImageOptions(row[0], mOptions);\r
+ if (mOptions.get("EFI_BLOCK_SIZE") == null || !mOptions.get("EFI_BLOCK_SIZE").equalsIgnoreCase(blkSize)) {\r
+ ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_BLOCK_SIZE", blkSize);\r
+ memModified = true;\r
+ }\r
+ if (mOptions.get("EFI_NUM_BLOCKS") == null || Integer.decode(mOptions.get("EFI_NUM_BLOCKS")) != numBlocks) {\r
+ ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_NUM_BLOCKS", numBlocks + "");\r
+ memModified = true;\r
+ }\r
+ if (mOptions.get("EFI_FILE_NAME") == null || !mOptions.get("EFI_FILE_NAME").equals(row[2])) {\r
+ ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_FILE_NAME", row[2]);\r
+ memModified = true;\r
+ }\r
+ \r
+ }\r
+ }\r
+ catch (NumberFormatException e){\r
+ JOptionPane.showMessageDialog(frame, e.getMessage());\r
+ }\r
+ }\r
\r
+ for (int k = 0; k < vFvInfo.size(); ++k) {\r
+ FvInfoFromFdf fvInfo = vFvInfo.get(k);\r
+ addTabForFv(fvInfo);\r
+ }\r
+ \r
+ }\r
+ \r
+ private void addTabForFv (FvInfoFromFdf fvInfo) {\r
+ String fvName = fvInfo.getFvName();\r
+ String outputFile = fvInfo.getEfiFileName();\r
+ int index = jTabbedPane.indexOfTab(fvName);\r
+ if (index >= startIndexOfDynamicTab) {\r
+ return;\r
+ }\r
+ jTabbedPane.addTab(fvName, null, new ModuleOrderPane(fvName, outputFile), null);\r
+ }\r
/**\r
* This method initializes jTextField4 \r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField4() {\r
- if (jTextField4 == null) {\r
- jTextField4 = new JTextField();\r
- jTextField4.setEnabled(false);\r
- jTextField4.setPreferredSize(new Dimension(100, 20));\r
+ private JTextField getJTextFieldFvImageOptName() {\r
+ if (jTextFieldFvImageOptName == null) {\r
+ jTextFieldFvImageOptName = new JTextField();\r
+ jTextFieldFvImageOptName.setEnabled(true);\r
+ jTextFieldFvImageOptName.setPreferredSize(new Dimension(100, 20));\r
}\r
- return jTextField4;\r
+ return jTextFieldFvImageOptName;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JTextField \r
*/\r
- private JTextField getJTextField5() {\r
- if (jTextField5 == null) {\r
- jTextField5 = new JTextField();\r
- jTextField5.setEnabled(false);\r
- jTextField5.setPreferredSize(new Dimension(100, 20));\r
+ private JTextField getJTextFieldFvImageOptValue() {\r
+ if (jTextFieldFvImageOptValue == null) {\r
+ jTextFieldFvImageOptValue = new JTextField();\r
+ jTextFieldFvImageOptValue.setEnabled(true);\r
+ jTextFieldFvImageOptValue.setPreferredSize(new Dimension(100, 20));\r
}\r
- return jTextField5;\r
+ return jTextFieldFvImageOptValue;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel8() {\r
- if (jPanel8 == null) {\r
- jPanel8 = new JPanel();\r
- jPanel8.setPreferredSize(new Dimension(80, 55));\r
- jPanel8.add(getJButton7(), null);\r
- jPanel8.add(getJButton8(), null);\r
+ private JPanel getJPanelFvImageOptsButtonGroup() {\r
+ if (jPanelFvImageOptsButtonGroup == null) {\r
+ jPanelFvImageOptsButtonGroup = new JPanel();\r
+ jPanelFvImageOptsButtonGroup.setPreferredSize(new Dimension(80, 55));\r
+ jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptAdd(), null);\r
+ jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptDel(), null);\r
}\r
- return jPanel8;\r
+ return jPanelFvImageOptsButtonGroup;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton7() {\r
- if (jButton7 == null) {\r
- jButton7 = new JButton();\r
- jButton7.setEnabled(true);\r
- jButton7.setText("Add");\r
- jButton7.setPreferredSize(new Dimension(80, 20));\r
- jButton7.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvImageOptAdd() {\r
+ if (jButtonFvImageOptAdd == null) {\r
+ jButtonFvImageOptAdd = new JButton();\r
+ jButtonFvImageOptAdd.setEnabled(true);\r
+ jButtonFvImageOptAdd.setText("Add");\r
+ jButtonFvImageOptAdd.setPreferredSize(new Dimension(80, 20));\r
+ jButtonFvImageOptAdd.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(ActionEvent e) {\r
- if (jTextField4.getText().length() > 0 && jTextField5.getText().length() > 0){\r
- String[] row = {jTextField4.getText(), jTextField5.getText()}; \r
+ if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
+ String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()}; \r
fvOptionTableModel.addRow(row);\r
}\r
}\r
});\r
}\r
- return jButton7;\r
+ return jButtonFvImageOptAdd;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton8() {\r
- if (jButton8 == null) {\r
- jButton8 = new JButton();\r
- jButton8.setEnabled(true);\r
- jButton8.setText("Delete");\r
- jButton8.setPreferredSize(new Dimension(80, 20));\r
- jButton8.addActionListener(new AbstractAction() {\r
+ private JButton getJButtonFvImageOptDel() {\r
+ if (jButtonFvImageOptDel == null) {\r
+ jButtonFvImageOptDel = new JButton();\r
+ jButtonFvImageOptDel.setEnabled(true);\r
+ jButtonFvImageOptDel.setText("Delete");\r
+ jButtonFvImageOptDel.setPreferredSize(new Dimension(80, 20));\r
+ jButtonFvImageOptDel.addActionListener(new AbstractAction() {\r
/**\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
\r
public void actionPerformed(ActionEvent e) {\r
- if (jTable3.getSelectedRow() >= 0){\r
- fvOptionTableModel.removeRow(jTable.getSelectedRow());\r
+ if (jTableFvImageOpts.getSelectedRow() >= 0){\r
+ fvOptionTableModel.removeRow(jTableFvProp.getSelectedRow());\r
}\r
}\r
});\r
}\r
- return jButton8;\r
+ return jButtonFvImageOptDel;\r
}\r
\r
/**\r
if (jScrollPane == null) {\r
jScrollPane = new JScrollPane();\r
jScrollPane.setPreferredSize(new java.awt.Dimension(350,80));\r
- jScrollPane.setViewportView(getJTable3());\r
+ jScrollPane.setViewportView(getJTableFvImageOpts());\r
}\r
return jScrollPane;\r
}\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable3() {\r
- if (jTable3 == null) {\r
+ private JTable getJTableFvImageOpts() {\r
+ if (jTableFvImageOpts == null) {\r
fvOptionTableModel = new DefaultTableModel();\r
fvOptionTableModel.addColumn("Name");\r
fvOptionTableModel.addColumn("Value");\r
- jTable3 = new JTable(fvOptionTableModel);\r
+ jTableFvImageOpts = new JTable(fvOptionTableModel);\r
\r
- jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTable3.setRowHeight(20);\r
+ jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvImageOpts.setRowHeight(20);\r
\r
}\r
- return jTable3;\r
+ return jTableFvImageOpts;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton9() {\r
- if (jButton9 == null) {\r
- jButton9 = new JButton();\r
- jButton9.setPreferredSize(new Dimension(120, 20));\r
- jButton9.setActionCommand("Update");\r
- jButton9.setText("Update FV");\r
- jButton9.addActionListener(new java.awt.event.ActionListener() {\r
+ private JButton getJButtonUpdateFvImage() {\r
+ if (jButtonUpdateFvImage == null) {\r
+ jButtonUpdateFvImage = new JButton();\r
+ jButtonUpdateFvImage.setPreferredSize(new Dimension(120, 20));\r
+ jButtonUpdateFvImage.setActionCommand("Update");\r
+ jButtonUpdateFvImage.setEnabled(false);\r
+ jButtonUpdateFvImage.setText("Update FV");\r
+ jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() {\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int row = jTable2.getSelectedRow();\r
- if (jTable2.isEditing()) {\r
- jTable2.getCellEditor().stopCellEditing();\r
+ int row = jTableFvInfo.getSelectedRow();\r
+ if (jTableFvInfo.isEditing()) {\r
+ jTableFvInfo.getCellEditor().stopCellEditing();\r
}\r
- if (jTable3.isEditing()) {\r
- jTable3.getCellEditor().stopCellEditing();\r
+ if (jTableFvImageOpts.isEditing()) {\r
+ jTableFvImageOpts.getCellEditor().stopCellEditing();\r
}\r
\r
//ToDo Check data validity before update\r
LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
getOptionNameValue(lhm);\r
\r
-\r
+ docConsole.setSaved(false);\r
ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
\r
}\r
});\r
}\r
- return jButton9;\r
+ return jButtonUpdateFvImage;\r
+ }\r
+\r
+// private JButton getJButtonTest() {\r
+// if (jButtonTest == null) {\r
+// jButtonTest = new JButton();\r
+// jButtonTest.addActionListener(new java.awt.event.ActionListener() {\r
+// public void actionPerformed(java.awt.event.ActionEvent e) {\r
+// docConsole.setSaved(false);\r
+// String[][] includeModules = {{"1", "a"}, {"2", "b"}};\r
+// ffc.genBuildOptionsUserExtensions("FV_RECOVERY", "FvRecovery.inf", null, includeModules);\r
+// int i = ffc.getUserExtsIncModCount("FV_RECOVERY");\r
+// String[][] saa = new String[i][2];\r
+// ffc.getUserExtsIncMods("FV_RECOVERY", saa);\r
+// jTextFieldFdf.setText(saa[0][0] + saa[0][1] + saa[1][0] + saa[1][1]);\r
+// \r
+// }\r
+// });\r
+// }\r
+// return jButtonTest;\r
+// }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfN() {\r
+ if (jPanelFdfN == null) {\r
+ jPanelFdfN = new JPanel();\r
+ jPanelFdfN.add(getJCheckBoxFdf(), null);\r
+ jPanelFdfN.add(getJTextFieldFdf(), null);\r
+ jPanelFdfN.add(getJButtonFdfBrowse(), null);\r
+ }\r
+ return jPanelFdfN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfS() {\r
+ if (jPanelFdfS == null) {\r
+ FlowLayout flowLayout4 = new FlowLayout();\r
+ flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelFdfS = new JPanel();\r
+ jPanelFdfS.setLayout(flowLayout4);\r
+ jPanelFdfS.add(getJButtonAddFv(), null);\r
+ jPanelFdfS.add(getJButtonDelFv(), null);\r
+ jPanelFdfS.add(getJButtonAddFvOptions(), null);\r
+ }\r
+ return jPanelFdfS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jSplitPaneFdfC \r
+ * \r
+ * @return javax.swing.JSplitPane \r
+ */\r
+ private JSplitPane getJSplitPaneFdfC() {\r
+ if (jSplitPaneFdfC == null) {\r
+ jSplitPaneFdfC = new JSplitPane();\r
+ jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
+ jSplitPaneFdfC.setDividerSize(5);\r
+ jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop());\r
+ jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom());\r
+ jSplitPaneFdfC.setDividerLocation(280);\r
+ }\r
+ return jSplitPaneFdfC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTop \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTop() {\r
+ if (jPanelFdfCTop == null) {\r
+ jPanelFdfCTop = new JPanel();\r
+ jPanelFdfCTop.setLayout(new BorderLayout());\r
+ jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH);\r
+ jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER);\r
+ }\r
+ return jPanelFdfCTop;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottom \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottom() {\r
+ if (jPanelFdfCBottom == null) {\r
+ jPanelFdfCBottom = new JPanel();\r
+ jPanelFdfCBottom.setLayout(new BorderLayout());\r
+ jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER);\r
+ }\r
+ return jPanelFdfCBottom;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopN() {\r
+ if (jPanelFdfCTopN == null) {\r
+ jLabelFvInFdf = new JLabel();\r
+ jLabelFvInFdf.setText("FVs in Flash Definition File");\r
+ jPanelFdfCTopN = new JPanel();\r
+ jPanelFdfCTopN.add(jLabelFvInFdf, null);\r
+ }\r
+ return jPanelFdfCTopN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopS() {\r
+ if (jPanelFdfCTopS == null) {\r
+ FlowLayout flowLayout1 = new FlowLayout();\r
+ flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelFdfCTopS = new JPanel();\r
+ jPanelFdfCTopS.setLayout(flowLayout1);\r
+ jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null);\r
+ }\r
+ return jPanelFdfCTopS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopC() {\r
+ if (jPanelFdfCTopC == null) {\r
+ jPanelFdfCTopC = new JPanel();\r
+ jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null);\r
+ }\r
+ return jPanelFdfCTopC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottomN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottomN() {\r
+ if (jPanelFdfCBottomN == null) {\r
+ jLabelFvAdditional = new JLabel();\r
+ jLabelFvAdditional.setText("Additional FVs");\r
+ jPanelFdfCBottomN = new JPanel();\r
+ jPanelFdfCBottomN.add(jLabelFvAdditional, null);\r
+ }\r
+ return jPanelFdfCBottomN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottomC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottomC() {\r
+ if (jPanelFdfCBottomC == null) {\r
+ jPanelFdfCBottomC = new JPanel();\r
+ jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null);\r
+ }\r
+ return jPanelFdfCBottomC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFvInFdf \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFvInFdf() {\r
+ if (jScrollPaneFvInFdf == null) {\r
+ jScrollPaneFvInFdf = new JScrollPane();\r
+ jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200));\r
+ jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf());\r
+ }\r
+ return jScrollPaneFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFvInFdf \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFvInFdf() {\r
+ if (jTableFvInFdf == null) {\r
+ jTableFvInFdf = new JTable();\r
+ jTableFvInFdf.setRowHeight(20);\r
+ jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvInFdf.setModel(getFvInFdfTableModel());\r
+ }\r
+ return jTableFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvInFdfTableModel \r
+ * \r
+ * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
+ */\r
+ private NonEditableTableModel getFvInFdfTableModel() {\r
+ if (fvInFdfTableModel == null) {\r
+ fvInFdfTableModel = new NonEditableTableModel();\r
+ fvInFdfTableModel.addColumn("FV Name");\r
+ fvInFdfTableModel.addColumn("Size");\r
+ fvInFdfTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvInFdfTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonFvInFdfOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonFvInFdfOptions() {\r
+ if (jButtonFvInFdfOptions == null) {\r
+ jButtonFvInFdfOptions = new JButton();\r
+ jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonFvInFdfOptions.setEnabled(true);\r
+ jButtonFvInFdfOptions.setText("Options");\r
+ jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableFvInFdf.getSelectedRow();\r
+ if (selectedRow < 0) {\r
+ return;\r
+ }\r
+ String fvName = jTableFvInFdf.getValueAt(selectedRow, 0)+"";\r
+ DefaultTableModel dtm = getFvInFdfOptTableModel();\r
+ new FpdFvOptions(fvName, dtm, ffc, docConsole);\r
+ }\r
+ });\r
+ }\r
+ return jButtonFvInFdfOptions;\r
+ }\r
+ \r
+ private DefaultTableModel getFvInFdfOptTableModel() {\r
+ if (fvInFdfOptTableModel == null) {\r
+ fvInFdfOptTableModel = new FvOptsTableModel();\r
+ fvInFdfOptTableModel.addColumn("Name");\r
+ fvInFdfOptTableModel.addColumn("Value");\r
+ Vector<Object> v = new Vector<Object>();\r
+ v.add("EFI_BLOCK_SIZE");\r
+ v.add("EFI_NUM_BLOCKS");\r
+ v.add("EFI_FILE_NAME");\r
+ fvInFdfOptTableModel.setVKeyWords(v);\r
+ fvInFdfOptTableModel.setVNonEditableName(v);\r
+ }\r
+ return fvInFdfOptTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFvAdditional \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFvAdditional() {\r
+ if (jScrollPaneFvAdditional == null) {\r
+ jScrollPaneFvAdditional = new JScrollPane();\r
+ jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200));\r
+ jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional());\r
+ }\r
+ return jScrollPaneFvAdditional;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFvAdditional \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFvAdditional() {\r
+ if (jTableFvAdditional == null) {\r
+ jTableFvAdditional = new JTable();\r
+ jTableFvAdditional.setRowHeight(20);\r
+ jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvAdditional.setModel(getFvAdditionalTableModel());\r
+ \r
+ jTableFvAdditional.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
+ public void valueChanged(ListSelectionEvent e) {\r
+ if (e.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRowInFvAdditionalTable = lsm.getMinSelectionIndex();\r
+ oldFvName = jTableFvAdditional.getValueAt(selectedRowInFvAdditionalTable, 0)+"";\r
+ }\r
+ }\r
+ });\r
+ \r
+ jTableFvAdditional.getModel().addTableModelListener(new TableModelListener() {\r
+ public void tableChanged(TableModelEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ int row = arg0.getFirstRow();\r
+ int col = arg0.getColumn();\r
+ TableModel m = (TableModel) arg0.getSource();\r
+ \r
+ if (arg0.getType() == TableModelEvent.UPDATE) {\r
+ if (col == 0) {\r
+ String newFvName = m.getValueAt(row, 0) + "";\r
+ if (newFvName.equals(oldFvName)) {\r
+ return;\r
+ }\r
+ if (fvNameExists(newFvName)) {\r
+ JOptionPane.showMessageDialog(frame, "This FV already exists. Please choose another FV name.");\r
+ m.setValueAt(oldFvName, row, 0);\r
+ return;\r
+ }\r
+ \r
+ tabIndexForFv = jTabbedPane.indexOfTab(oldFvName);\r
+ if (tabIndexForFv >= startIndexOfDynamicTab) {\r
+ jTabbedPane.setTitleAt(tabIndexForFv, newFvName);\r
+ // change FvName in UserExtensions\r
+ ffc.updateBuildOptionsUserExtensions(oldFvName, newFvName);\r
+ // change FvBinding in ModuleSA\r
+ ffc.appendFvBindingFor(oldFvName, newFvName);\r
+ ffc.removeFvBindingAll(oldFvName);\r
+ // change FvImageNames in Flash\r
+ ffc.updateFvImageNameAll(oldFvName, newFvName);\r
+ \r
+ } else {\r
+ jTabbedPane.addTab(newFvName, new ModuleOrderPane(newFvName, ""));\r
+ // Add FvImageNames in Flash\r
+ String[] fvNames = {newFvName};\r
+ ffc.AddFvImageFvImageNames(fvNames);\r
+ }\r
+ docConsole.setSaved(false);\r
+ oldFvName = newFvName;\r
+ }\r
+ \r
+ if (col == 1) {\r
+ String fvSize = m.getValueAt(row, col) + "";\r
+ if (!DataValidation.isInt(fvSize) && !DataValidation.isHexDoubleWordDataType(fvSize)) {\r
+ JOptionPane.showMessageDialog(frame, "FV size should be Integer or Hex format.");\r
+ return;\r
+ }\r
+ HashMap<String, String> mFvOpts = new HashMap<String, String>();\r
+ ffc.getFvImagesFvImageOptions(oldFvName, mFvOpts);\r
+ String blkSize = mFvOpts.get("EFI_BLOCK_SIZE");\r
+ if (blkSize == null) {\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", determinedFvBlockSize);\r
+ int fs = Integer.decode(fvSize);\r
+ int bs = Integer.decode(determinedFvBlockSize);\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
+ docConsole.setSaved(false);\r
+ }\r
+ else {\r
+ if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
+ int retVal = JOptionPane.showConfirmDialog(frame, "Confirm", "FPD file contains error block size format. Would you like to replace it with a default value?", JOptionPane.YES_NO_OPTION);\r
+ if (retVal == JOptionPane.YES_OPTION) {\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", determinedFvBlockSize);\r
+ int fs = Integer.decode(fvSize);\r
+ int bs = Integer.decode(determinedFvBlockSize);\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
+ docConsole.setSaved(false);\r
+ return;\r
+ }\r
+ else {\r
+ return;\r
+ }\r
+ \r
+ }\r
+ int fs = Integer.decode(fvSize);\r
+ int bs = Integer.decode(blkSize);\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+ \r
+ if (col == 2) {\r
+ ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_FILE_NAME", m.getValueAt(row, col)+"");\r
+ docConsole.setSaved(false);\r
+ }\r
+ \r
+ }\r
+ }\r
+ });\r
+ }\r
+ return jTableFvAdditional;\r
+ }\r
+ \r
+ private boolean fvNameExistsInFvInFdfTable (String fvName) {\r
+ for (int i = 0; i < jTableFvInFdf.getRowCount(); ++i) {\r
+ if (fvInFdfTableModel.getValueAt(i, 0).equals(fvName)) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+ \r
+ private boolean fvNameExists (String fvName) {\r
+ if (fvNameExistsInFvInFdfTable(fvName)) {\r
+ return true;\r
+ }\r
+ \r
+ for (int j = 0; j < jTableFvAdditional.getRowCount(); ++j) {\r
+ if (fvAdditionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvAdditionalTableModel \r
+ * \r
+ * @return javax.swing.table.DefaultTableModel \r
+ */\r
+ private DefaultTableModel getFvAdditionalTableModel() {\r
+ if (fvAdditionalTableModel == null) {\r
+ fvAdditionalTableModel = new DefaultTableModel();\r
+ fvAdditionalTableModel.addColumn("FV Name");\r
+ fvAdditionalTableModel.addColumn("Size");\r
+ fvAdditionalTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvAdditionalTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFv() {\r
+ if (jButtonAddFv == null) {\r
+ jButtonAddFv = new JButton();\r
+ jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFv.setEnabled(true);\r
+ jButtonAddFv.setText("New");\r
+ jButtonAddFv.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ if (jTableFvAdditional.isEditing()) {\r
+ jTableFvAdditional.getCellEditor().stopCellEditing();\r
+ }\r
+ String[] row = {"", "", ""};\r
+ fvAdditionalTableModel.addRow(row);\r
+ }\r
+ });\r
+ }\r
+ return jButtonAddFv;\r
}\r
\r
+ /**\r
+ * This method initializes jButtonDelFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDelFv() {\r
+ if (jButtonDelFv == null) {\r
+ jButtonDelFv = new JButton();\r
+ jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonDelFv.setEnabled(true);\r
+ jButtonDelFv.setText("Delete");\r
+ jButtonDelFv.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ //delete row in FvAdditional table.\r
+ int selectedRow = jTableFvAdditional.getSelectedRow();\r
+ if (selectedRow < 0) {\r
+ return;\r
+ }\r
+ String fvName = fvAdditionalTableModel.getValueAt(selectedRow, 0) + "";\r
+ fvAdditionalTableModel.removeRow(selectedRow);\r
+ //\r
+ //delete tab with selected FV name.\r
+ //\r
+ jTabbedPane.removeTabAt(jTabbedPane.indexOfTab(fvName));\r
+ //delete FV Name from FvImages element.\r
+ ffc.updateFvImageNameAll(fvName, null);\r
+ //delete FvBinding from ModuleSA.\r
+ ffc.removeFvBindingAll(fvName);\r
+ docConsole.setSaved(false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonDelFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFvOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFvOptions() {\r
+ if (jButtonAddFvOptions == null) {\r
+ jButtonAddFvOptions = new JButton();\r
+ jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFvOptions.setEnabled(true);\r
+ jButtonAddFvOptions.setText("Options");\r
+ jButtonAddFvOptions.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()\r
+ }\r
+ });\r
+ }\r
+ return jButtonAddFvOptions;\r
+ }\r
+ \r
/**\r
* @param args\r
*/\r
this.setTitle("FPD Flash Definitions");\r
this.addInternalFrameListener(new InternalFrameAdapter(){\r
public void internalFrameDeactivated(InternalFrameEvent e){\r
- if (jTable.isEditing()) {\r
- jTable.getCellEditor().stopCellEditing();\r
+ if (jTableFvProp.isEditing()) {\r
+ jTableFvProp.getCellEditor().stopCellEditing();\r
}\r
- if (jTable1.isEditing()) {\r
- jTable1.getCellEditor().stopCellEditing();\r
+ if (jTableFvImageNames.isEditing()) {\r
+ jTableFvImageNames.getCellEditor().stopCellEditing();\r
}\r
- if (jTable2.isEditing()) {\r
- jTable2.getCellEditor().stopCellEditing();\r
+ if (jTableFvInfo.isEditing()) {\r
+ jTableFvInfo.getCellEditor().stopCellEditing();\r
+ }\r
+ if (jTableFvAdditional.isEditing()) {\r
+ jTableFvAdditional.getCellEditor().stopCellEditing();\r
}\r
}\r
});\r
}\r
\r
private void init(FpdFileContents ffc) {\r
- if (ffc.getFvImagesFvImageCount() == 0) {\r
- return;\r
- }\r
- String[][] saa = new String[ffc.getFvImagesFvImageCount()][2];\r
-// ArrayList<LinkedHashMap<String, String>> options = new ArrayList<LinkedHashMap<String, String>>(ffc.getFvImagesFvImageCount());\r
-//\r
-// for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){\r
-// options.add(new LinkedHashMap<String, String>());\r
-// }\r
- ffc.getFvImagesFvImages(saa);\r
\r
- \r
- int i = 0;\r
- while (i < saa.length) {\r
- \r
- fvImageParaTableModel.addRow(saa[i]);\r
- ++i;\r
+ jTextFieldFdf.setText("");\r
+ String fdfFile = ffc.getFlashDefinitionFile();\r
+ if (fdfFile != null && fdfFile.length() > 0) {\r
+ jTextFieldFdf.setText(fdfFile);\r
+ String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile;\r
+ initFvInFdfTable(fdfPath);\r
}\r
+ \r
+ initFvAdditionalTable();\r
}\r
\r
private void getOptionNameValue(Map<String, String> m){\r
- for (int i = 0; i < jTable3.getRowCount(); ++i) {\r
+ for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) {\r
m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
}\r
}\r
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(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
+ jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
+ jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
+ jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
}\r
return jContentPane;\r
}\r
+ \r
+ private void getFlashInfoFromFdf (String fdfPath) {\r
+ File fdf = new File(fdfPath);\r
+ if (!fdf.exists()) {\r
+ return;\r
+ }\r
+ int lines = 0;\r
+\r
+ try {\r
+ FileReader reader = new FileReader(fdf);\r
+ BufferedReader in = new BufferedReader(reader);\r
+ String str;\r
+\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ //\r
+ // ErasePolarity\r
+ //\r
+ if (str.startsWith("ErasePolarity")) {\r
+ erasePolarity = str.substring(str.indexOf("=") + 1, str.lastIndexOf(",")).trim();\r
+ }\r
+ //\r
+ // dig into Block section.\r
+ //\r
+ if (str.startsWith("Block") && str.endsWith("}")) {\r
+ String[] blockSec = str.split(",");\r
+ String nv = blockSec[1].trim();\r
+ String[] sizeSec = nv.split("=");\r
+ vBlockSize.add(sizeSec[1].trim());\r
+ }\r
+ \r
+ }\r
+ \r
+ reader.close();\r
+ in.close();\r
+ }\r
+ catch (Exception e) {\r
+ \r
+ }\r
+ }\r
+ \r
+ private void getFvInfoFromFdf(String fdfPath, Vector<FvInfoFromFdf> vFvInfo) {\r
+ File fdf = new File(fdfPath);\r
+ if (!fdf.exists()) {\r
+ return;\r
+ }\r
+ int lines = 0;\r
+\r
+ try {\r
+ FileReader reader = new FileReader(fdf);\r
+ BufferedReader in = new BufferedReader(reader);\r
+ String str;\r
+\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ //\r
+ // dig into Region {} section, create FvInfoFromFdf object for it.\r
+ //\r
+ if (str.startsWith("Region") && str.endsWith("{")) {\r
+ FvInfoFromFdf fvInfo = new FvInfoFromFdf();\r
+ boolean nameFound = false;\r
+ boolean sizeFound = false;\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ \r
+ if (str.startsWith("Name")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote));\r
+ nameFound = true;\r
+ }\r
+ \r
+ if (str.startsWith("Size")) {\r
+ int equalIndex = str.indexOf("=");\r
+ int commaIndex = str.indexOf(",");\r
+ fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim());\r
+ sizeFound = true;\r
+ }\r
+ \r
+ if (nameFound && sizeFound) {\r
+ break;\r
+ }\r
+ }\r
+ \r
+ vFvInfo.add(fvInfo);\r
+ }\r
+ //\r
+ // dig into File {} section, supply file name information to existing FvInfoFromFdf object.\r
+ //\r
+ if (str.startsWith("File")) {\r
+ boolean fileNameFound = false;\r
+ boolean fvFound = false;\r
+ String fileName = "";\r
+ String fvName = "";\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ \r
+ if (str.startsWith("Name")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fileName = str.substring(firstQuote + 1, lastQuote);\r
+ fileNameFound = true;\r
+ }\r
+ \r
+ if (str.startsWith("Region")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fvName = str.substring(firstQuote + 1, lastQuote);\r
+ fvFound = true;\r
+ }\r
+ \r
+ if (fileNameFound && fvFound) {\r
+ break;\r
+ }\r
+ }\r
+ \r
+ for (int i = 0; i <vFvInfo.size(); ++i) {\r
+ if (vFvInfo.get(i).getFvName().equals(fvName)) {\r
+ vFvInfo.get(i).setEfiFileName(fileName);\r
+ }\r
+ }\r
+ }\r
+ \r
+ }\r
+ \r
+ reader.close();\r
+ in.close();\r
+ }\r
+ catch (Exception e) {\r
+ \r
+ }\r
+\r
+ }\r
+ \r
+ private class ModuleOrderPane extends JPanel {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ private JPanel jPanelModOrderN = null;\r
+ private JPanel jPanelModOrderS = null;\r
+ private JPanel jPanelModOrderC = null;\r
+ private JScrollPane jScrollPaneModInFv = null;\r
+ private JTable jTableModInFv = null;\r
+ private JPanel jPanelController = null;\r
+ private JScrollPane jScrollPaneFpdModules = null;\r
+ private JTable jTableFpdModules = null;\r
+ private JButton jButtonUp = null;\r
+ private JButton jButtonInsert = null;\r
+ private JButton jButtonRemove = null;\r
+ private JButton jButtonDown = null;\r
+ private JButton jButtonOk = null;\r
+ private JButton jButtonCancel = null;\r
+ private NonEditableTableModel modInFvTableModel = null;\r
+ private NonEditableTableModel fpdModTableModel = null;\r
+ private HashMap<String, ModuleIdentification> mGuidToModuleId = null;\r
+ private ArrayList<String> listModGuidInFv = null;\r
+ private String title = null;\r
+ private String outputFileName = null;\r
+ \r
+ public ModuleOrderPane(String tabTitle, String file) {\r
+ super(new BorderLayout());\r
+ title = tabTitle;\r
+ outputFileName = file;\r
+ mGuidToModuleId = new HashMap<String, ModuleIdentification>();\r
+ listModGuidInFv = new ArrayList<String>();\r
+ add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
+ add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
+ add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
+ showModulesInFv(title);\r
+ showAllModulesInPlatform();\r
+ }\r
+ \r
+ private void showModulesInFv(String fvName) {\r
+ int size = ffc.getUserExtsIncModCount(fvName);\r
+ \r
+ if (size != -1) {\r
+ String[][] saa = new String[size][2];\r
+ ffc.getUserExtsIncMods(fvName, saa);\r
+\r
+ for (int i = 0; i < size; ++i) {\r
+ listModGuidInFv.add(saa[i][0].toLowerCase());\r
+ String name = getModuleName(saa[i][0]);\r
+ String[] row = { name };\r
+ modInFvTableModel.addRow(row);\r
+ }\r
+ }\r
+ //\r
+ // From ModuleSAs, get module guids with FvBinding = fvName.\r
+ //\r
+ Vector<String> vGuid = new Vector<String>();\r
+ ffc.getFrameworkModuleGuid(fvName, vGuid);\r
+ //\r
+ // If BuildOptions->UserExtensions already contain these module info,\r
+ // no need to add them into table again.\r
+ //\r
+ Iterator<String> iter = vGuid.iterator();\r
+ while (iter.hasNext()){\r
+ String guid = iter.next();\r
+// String moduleName = getModuleName(guid);\r
+// if (existedInTable(moduleName, modInFvTableModel)) {\r
+// vGuid.remove(guid);\r
+// }\r
+ if (!listModGuidInFv.contains(guid.toLowerCase())) {\r
+ String[] row = {getModuleName(guid)};\r
+ modInFvTableModel.addRow(row);\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+ private void showAllModulesInPlatform() {\r
+ int size = ffc.getFrameworkModulesCount();\r
+ String[][] saa = new String[size][5];\r
+ ffc.getFrameworkModulesInfo(saa);\r
+ \r
+ for (int i = 0; i < size; ++i) {\r
+ String name = getModuleName(saa[i][0]);\r
+ if (existedInTable(name, modInFvTableModel) || existedInTable(name, fpdModTableModel)) {\r
+ continue;\r
+ }\r
+ String[] row = {name};\r
+ fpdModTableModel.addRow(row);\r
+ }\r
+ \r
+ TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
+ sorter.setSortState(0, TableSorter.ASCENDING);\r
+ }\r
+ \r
+ private String getModuleName (String guid) {\r
+ \r
+ for (int i = 0; i < GlobalData.vModuleList.size(); ++i) {\r
+ ModuleIdentification mi = GlobalData.vModuleList.get(i);\r
+ String mg = mi.getGuid();\r
+ if (mg == null) {\r
+ continue;\r
+ }\r
+ if (mg.equalsIgnoreCase(guid)) {\r
+ mGuidToModuleId.put(guid.toLowerCase(), mi);\r
+ return mi.getName();\r
+ }\r
+ }\r
+ \r
+ return "";\r
+ }\r
+ \r
+ private boolean existedInTable (String name, DefaultTableModel model) {\r
+ int size = model.getDataVector().size();\r
+ for (int i = 0; i < size; ++i) {\r
+ if (((Vector)model.getDataVector().elementAt(i)).contains(name)) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * This method initializes jPanelModOrderN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderN() {\r
+ if (jPanelModOrderN == null) {\r
+ jPanelModOrderN = new JPanel();\r
+ }\r
+ return jPanelModOrderN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderS() {\r
+ if (jPanelModOrderS == null) {\r
+ FlowLayout flowLayout6 = new FlowLayout();\r
+ flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelModOrderS = new JPanel();\r
+ jPanelModOrderS.setLayout(flowLayout6);\r
+ jPanelModOrderS.add(getJButtonOk(), null);\r
+ jPanelModOrderS.add(getJButtonCancel(), null);\r
+ }\r
+ return jPanelModOrderS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderC() {\r
+ if (jPanelModOrderC == null) {\r
+ jPanelModOrderC = new JPanel();\r
+ jPanelModOrderC.add(getJScrollPaneModInFv(), null);\r
+ jPanelModOrderC.add(getJPanelController(), null);\r
+ jPanelModOrderC.add(getJScrollPaneFpdModules(), null);\r
+ }\r
+ return jPanelModOrderC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneModInFv \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneModInFv() {\r
+ if (jScrollPaneModInFv == null) {\r
+ jScrollPaneModInFv = new JScrollPane();\r
+ jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(200,500));\r
+ jScrollPaneModInFv.setViewportView(getJTableModInFv());\r
+ }\r
+ return jScrollPaneModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableModInFv \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableModInFv() {\r
+ if (jTableModInFv == null) {\r
+ modInFvTableModel = new NonEditableTableModel();\r
+ modInFvTableModel.addColumn("Module Orders in FV");\r
+ jTableModInFv = new JTable(modInFvTableModel);\r
+ jTableModInFv.setRowHeight(20);\r
+ jTableModInFv.setShowGrid(false);\r
+ \r
+ }\r
+ return jTableModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelController \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelController() {\r
+ if (jPanelController == null) {\r
+ FlowLayout flowLayout5 = new FlowLayout();\r
+ flowLayout5.setVgap(50);\r
+ flowLayout5.setHgap(50);\r
+ jPanelController = new JPanel();\r
+ jPanelController.setLayout(flowLayout5);\r
+ jPanelController.setPreferredSize(new java.awt.Dimension(150,500));\r
+ jPanelController.add(getJButtonUp(), null);\r
+ jPanelController.add(getJButtonInsert(), null);\r
+ jPanelController.add(getJButtonRemove(), null);\r
+ jPanelController.add(getJButtonDown(), null);\r
+ }\r
+ return jPanelController;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFpdModules \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFpdModules() {\r
+ if (jScrollPaneFpdModules == null) {\r
+ jScrollPaneFpdModules = new JScrollPane();\r
+ jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(200,500));\r
+ jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
+ }\r
+ return jScrollPaneFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFpdModules \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFpdModules() {\r
+ if (jTableFpdModules == null) {\r
+ fpdModTableModel = new NonEditableTableModel();\r
+ TableSorter sorter = new TableSorter(fpdModTableModel);\r
+ jTableFpdModules = new JTable(sorter);\r
+ jTableFpdModules.setRowHeight(20);\r
+ jTableFpdModules.setShowGrid(false);\r
+ fpdModTableModel.addColumn("Modules in Platform");\r
+\r
+ }\r
+ return jTableFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonUp \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonUp() {\r
+ if (jButtonUp == null) {\r
+ jButtonUp = new JButton();\r
+ jButtonUp.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));\r
+ jButtonUp.setText("^");\r
+ jButtonUp.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableModInFv.getSelectedRow();\r
+ if (selectedRow <= 0) {\r
+ return;\r
+ }\r
+ modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1);\r
+ jTableModInFv.changeSelection(selectedRow - 1, 0, false, false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonUp;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonInsert \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonInsert() {\r
+ if (jButtonInsert == null) {\r
+ jButtonInsert = new JButton();\r
+ jButtonInsert.setText("<<");\r
+ jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonInsert.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRowRight = jTableFpdModules.getSelectedRow();\r
+ if (selectedRowRight < 0) {\r
+ return;\r
+ }\r
+ \r
+ int rowInModel = ((TableSorter)jTableFpdModules.getModel()).getModelRowIndex(selectedRowRight);\r
+ \r
+ String[] row = {jTableFpdModules.getValueAt(selectedRowRight, 0)+""};\r
+ int selectedRowLeft = jTableModInFv.getSelectedRow();\r
+ if (selectedRowLeft < 0) {\r
+ modInFvTableModel.addRow(row);\r
+ jTableModInFv.changeSelection(jTableModInFv.getRowCount() - 1, 0, false, false);\r
+ }\r
+ else {\r
+ modInFvTableModel.insertRow(selectedRowLeft, row);\r
+ jTableModInFv.changeSelection(selectedRowLeft, 0, false, false);\r
+ }\r
+ fpdModTableModel.removeRow(rowInModel);\r
+ }\r
+ });\r
+ }\r
+ return jButtonInsert;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonRemove \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonRemove() {\r
+ if (jButtonRemove == null) {\r
+ jButtonRemove = new JButton();\r
+ jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonRemove.setText(">>");\r
+ jButtonRemove.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRowLeft = jTableModInFv.getSelectedRow();\r
+ if (selectedRowLeft < 0) {\r
+ return;\r
+ }\r
+ \r
+ String[] row = {jTableModInFv.getValueAt(selectedRowLeft, 0)+""};\r
+ fpdModTableModel.addRow(row);\r
+ int viewIndex = ((TableSorter) jTableFpdModules.getModel()).getViewIndexArray()[jTableFpdModules\r
+ .getRowCount() - 1];\r
+ jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
+ modInFvTableModel.removeRow(selectedRowLeft);\r
+ }\r
+ });\r
+ }\r
+ return jButtonRemove;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonDown \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDown() {\r
+ if (jButtonDown == null) {\r
+ jButtonDown = new JButton();\r
+ jButtonDown.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));\r
+ jButtonDown.setText("v");\r
+ jButtonDown.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableModInFv.getSelectedRow();\r
+ if (selectedRow >= jTableModInFv.getRowCount() - 1) {\r
+ return;\r
+ }\r
+ modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow + 1);\r
+ jTableModInFv.changeSelection(selectedRow + 1, 0, false, false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonDown;\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("Ok");\r
+ jButtonOk.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ // need reset FvBindings in ModuleSA.\r
+ ffc.removeFvBindingAll(title);\r
+ //\r
+ // collect module order information to store them into <BuildOptions> -> <UserExtensions>.\r
+ // also update the FvBinding info in <ModuleSA>.\r
+ //\r
+ Vector<String[]> vModInFv = new Vector<String[]>();\r
+ for (int i = 0; i < jTableModInFv.getRowCount(); ++i) {\r
+ String moduleName = jTableModInFv.getValueAt(i, 0)+"";\r
+ if (moduleName.length() == 0) {\r
+ continue;\r
+ }\r
+ ModuleIdentification mi = null;\r
+ Set<String> key = mGuidToModuleId.keySet();\r
+ Iterator<String> iter = key.iterator();\r
+ while (iter.hasNext()) {\r
+ String guid = iter.next();\r
+ mi = mGuidToModuleId.get(guid);\r
+ if (mi.getName().equals(moduleName)) {\r
+ String[] sa = {guid, WorkspaceProfile.getModuleBaseName(mi)};\r
+ vModInFv.add(sa);\r
+ ffc.updateFvBindingInModuleSA (mi, title);\r
+ break;\r
+ }\r
+ }\r
+ \r
+ }\r
+ ffc.removeBuildOptionsUserExtensions(title);\r
+ ffc.genBuildOptionsUserExtensions(title, outputFileName, vModInFv);\r
+ \r
+ docConsole.setSaved(false);\r
+ jTabbedPane.setSelectedIndex(0);\r
+ }\r
+ });\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("Cancel");\r
+ jButtonCancel.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ jTabbedPane.setSelectedIndex(0);\r
+ }\r
+ });\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+ }\r
\r
} // @jve:decl-index=0:visual-constraint="10,10"\r
\r
+class FvOptsTableModel extends DefaultTableModel {\r
+\r
+ private static final long serialVersionUID = 1L;\r
+ \r
+ private Vector<Object> vNonEditableName = new Vector<Object>();\r
+ private Vector<Object> vKeyWords = new Vector<Object>();\r
+ \r
+ public boolean isCellEditable(int row, int col) {\r
+ if (vNonEditableName.size() > 0 || vKeyWords.size() > 0) {\r
+ if (vKeyWords.contains(getValueAt(row, 0))) {\r
+ return false;\r
+ }\r
+ if (vNonEditableName.contains(getValueAt(row, 0)) && col == 0) {\r
+ return false;\r
+ }\r
+ } \r
+ \r
+ return true;\r
+ }\r
+\r
+ /**\r
+ * @return Returns the vKeyWords.\r
+ */\r
+ protected Vector<Object> getVKeyWords() {\r
+ return vKeyWords;\r
+ }\r
+\r
+ /**\r
+ * @param keyWords The vKeyWords to set.\r
+ */\r
+ protected void setVKeyWords(Vector<Object> keyWords) {\r
+ vKeyWords.removeAllElements();\r
+ vKeyWords.addAll(keyWords);\r
+ }\r
+\r
+ /**\r
+ * @return Returns the vNonEditableName.\r
+ */\r
+ protected Vector<Object> getVNonEditableName() {\r
+ return vNonEditableName;\r
+ }\r
+\r
+ /**\r
+ * @param nonEditableName The vNonEditableName to set.\r
+ */\r
+ protected void setVNonEditableName(Vector<Object> nonEditableName) {\r
+ vNonEditableName.removeAllElements();\r
+ vNonEditableName.addAll(nonEditableName);\r
+ }\r
+ \r
+}\r
class ImageParaTableModel extends DefaultTableModel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public boolean isCellEditable(int row, int col) {\r
- if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
- return false;\r
- }\r
- return true;\r
+// if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
+// return false;\r
+// }\r
+// return true;\r
+ return false;\r
}\r
}\r
\r
+class FvInfoFromFdf {\r
+ private String fvName;\r
+ private String size;\r
+ private String efiFileName;\r
+ \r
+ public FvInfoFromFdf () {\r
+ fvName = "";\r
+ size = "";\r
+ efiFileName = "";\r
+ }\r
+ public FvInfoFromFdf (String f, String s, String e) {\r
+ this();\r
+ fvName = f;\r
+ size = s;\r
+ efiFileName = e;\r
+ }\r
+ public String getEfiFileName() {\r
+ return efiFileName;\r
+ }\r
+ public void setEfiFileName(String efiFileName) {\r
+ this.efiFileName = efiFileName;\r
+ }\r
+ public String getFvName() {\r
+ return fvName;\r
+ }\r
+ public void setFvName(String fvName) {\r
+ this.fvName = fvName;\r
+ }\r
+ public String getSize() {\r
+ return size;\r
+ }\r
+ public void setSize(String size) {\r
+ this.size = size;\r
+ }\r
+ \r
+}\r