+++ /dev/null
-/** @file\r
- Java class FpdFlash is GUI for Flash element operation in SPD file.\r
- \r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
-package org.tianocore.frameworkwizard.platform.ui;\r
-\r
-import java.awt.BorderLayout;\r
-import javax.swing.JPanel;\r
-\r
-import javax.swing.AbstractAction;\r
-import javax.swing.JFileChooser;\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.PlatformSurfaceAreaDocument;\r
-import org.tianocore.frameworkwizard.FrameworkWizardUI;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.IDefaultTableModel;\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
-import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
-import org.tianocore.frameworkwizard.workspace.Workspace;\r
-\r
-import java.awt.FlowLayout;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.awt.event.ComponentAdapter;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
-import java.awt.event.MouseAdapter;\r
-import java.awt.event.MouseEvent;\r
-import java.io.BufferedReader;\r
-import java.io.File;\r
-import java.io.FileReader;\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 java.awt.GridLayout;\r
-import javax.swing.JLabel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.event.InternalFrameAdapter;\r
-import javax.swing.event.InternalFrameEvent;\r
-import javax.swing.event.ListSelectionEvent;\r
-import javax.swing.event.ListSelectionListener;\r
-import javax.swing.event.TableModelEvent;\r
-import javax.swing.event.TableModelListener;\r
-import javax.swing.table.DefaultTableModel;\r
-import javax.swing.table.TableModel;\r
-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
- */\r
- private static final long serialVersionUID = 1L;\r
- private final int startIndexOfDynamicTab = 2;\r
- private JPanel jContentPane = 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 JPanel jPanelFvImageS = null;\r
- private JPanel jPanelFvImageN = 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 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 jButtonFvNameAdd = null;\r
- private JScrollPane jScrollPaneFvImageNames = null;\r
- private JTable jTableFvImageNames = null;\r
- private JButton jButtonFvNameDel = 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 JPanel jPanelFvImagePara = null;\r
- private OpeningPlatformType docConsole = null;\r
- private FpdFileContents ffc = 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 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 IDefaultTableModel 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 final String defaultBlkSize = "0x10000";\r
- private String erasePolarity = "";\r
- boolean memModified = false;\r
- private FvOptsTableModel fvInFdfOptTableModel = null;\r
- private FvOptsTableModel fvAdditionalOptTableModel = null;\r
- private boolean sizeFromOptionDlg = false;\r
- private boolean fileFromOptionDlg = false;\r
- private JLabel jLabelOptions = null;\r
- private JPanel jPanelBgFvName = null;\r
- private JPanel jPanelBgFvImage = null;\r
- private JPanel jPanelW = null;\r
- private JPanel jPanelFvImageParaN = null;\r
- private JPanel jPanelFvImageParaS = null;\r
-// private JPanel jPanelFvImageParaC = null;\r
- private JPanel jPanelFvImageOptsN = null;\r
- private JPanel jPanelFvImageOptsS = null;\r
-// private JPanel jPanelFvImageOptsC = null;\r
- private JPanel jPanelFvImageParaE = null;\r
- private JPanel jPanelFvImageOptsE = null;\r
- private JPanel jPanelFvImageSN = null;\r
- private JPanel jPanelFvImageSE = null;\r
- private JPanel jPanelFvImageSS = null;\r
- \r
- public FpdFlash() {\r
- super();\r
- // TODO Auto-generated constructor stub\r
-\r
- initialize();\r
- this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
- this.setVisible(true);\r
- }\r
-\r
- public FpdFlash(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
- this();\r
- ffc = new FpdFileContents(fpd);\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(FrameworkWizardUI.getInstance(), "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 getJPanelContentEast() {\r
- if (jPanelContentEast == null) {\r
- FlowLayout flowLayout7 = new FlowLayout();\r
- flowLayout7.setVgap(50);\r
- jPanelContentEast = new JPanel();\r
- jPanelContentEast.setLayout(flowLayout7);\r
- }\r
- return jPanelContentEast;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel1 \r
- * \r
- * @return javax.swing.JPanel \r
- */\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
- jPanelContentSouth = new JPanel();\r
- jPanelContentSouth.setLayout(flowLayout);\r
- jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
- }\r
- return jPanelContentSouth;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel2 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentWest() {\r
- if (jPanelContentWest == null) {\r
- jPanelContentWest = new JPanel();\r
- }\r
- return jPanelContentWest;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel3 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentNorth() {\r
- if (jPanelContentNorth == null) {\r
- jPanelContentNorth = new JPanel();\r
- }\r
- return jPanelContentNorth;\r
- }\r
-\r
- /**\r
- * This method initializes jTabbedPane \r
- * \r
- * @return javax.swing.JTabbedPane \r
- */\r
- private JTabbedPane getJTabbedPane() {\r
- if (jTabbedPane == null) {\r
- jTabbedPane = new JTabbedPane();\r
- jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
- jTabbedPane.addTab("Advanced", null, getJPanelFvImages(), null);\r
- \r
- }\r
- return jTabbedPane;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImages \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImages() {\r
- if (jPanelFvImages == null) {\r
- jPanelFvImages = new JPanel();\r
- jPanelFvImages.setLayout(new BorderLayout());\r
- jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.NORTH);\r
- jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH);\r
- jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);\r
- jPanelFvImages.add(getJPanelW(), java.awt.BorderLayout.EAST);\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
- \r
- }\r
- });\r
- \r
- }\r
- return jPanelFvImages;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageN \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageS() {\r
- if (jPanelFvImageS == null) {\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
- jPanelFvImageS = new JPanel();\r
- jPanelFvImageS.setPreferredSize(new java.awt.Dimension(576,130));\r
- jPanelFvImageS.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));\r
- jPanelFvImageS.setLayout(new BorderLayout());\r
- jPanelFvImageS.add(getJPanelFvImageSN(), java.awt.BorderLayout.NORTH);\r
- jPanelFvImageS.add(getJPanelFvImageSE(), java.awt.BorderLayout.EAST);\r
- jPanelFvImageS.add(getJPanelFvImageSS(), java.awt.BorderLayout.SOUTH);\r
- jPanelFvImageS.add(getJScrollPaneFvProp(), java.awt.BorderLayout.CENTER);\r
-\r
- }\r
- return jPanelFvImageS;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageS \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageN() {\r
- if (jPanelFvImageN == null) {\r
- GridLayout gridLayout2 = new GridLayout();\r
- gridLayout2.setRows(1);\r
- jPanelFvImageN = new JPanel();\r
- jPanelFvImageN.setPreferredSize(new java.awt.Dimension(480,150));\r
- jPanelFvImageN.setLayout(gridLayout2);\r
- jPanelFvImageN.add(getJScrollPaneFvInfo(), null);\r
- }\r
- return jPanelFvImageN;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jCheckBox1 \r
- * \r
- * @return javax.swing.JCheckBox \r
- */\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 = jCheckBoxFvProperty.isSelected();\r
- \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 jCheckBoxFvProperty;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTextField \r
- * \r
- * @return javax.swing.JTextField \r
- */\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 jTextFieldFvPropName;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTextField1 \r
- * \r
- * @return javax.swing.JTextField \r
- */\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 jTextFieldFvPropValue;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton \r
- * \r
- * @return javax.swing.JButton \r
- */\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 (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 jButtonFvPropAdd;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jScrollPane1 \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneFvProp() {\r
- if (jScrollPaneFvProp == null) {\r
- jScrollPaneFvProp = new JScrollPane();\r
- jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,100));\r
- jScrollPaneFvProp.setViewportView(getJTableFvProp());\r
- }\r
- return jScrollPaneFvProp;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTable \r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableFvProp() {\r
- if (jTableFvProp == null) {\r
- fvPropertyTableModel = new DefaultTableModel();\r
- jTableFvProp = new JTable(fvPropertyTableModel);\r
- fvPropertyTableModel.addColumn("Name");\r
- fvPropertyTableModel.addColumn("Value");\r
- jTableFvProp.setRowHeight(20);\r
- jTableFvProp.setEnabled(false);\r
- \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
- ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
- if (lsm.isSelectionEmpty()) {\r
- return;\r
- }\r
- else{\r
-// selectedRow = lsm.getMinSelectionIndex();\r
- }\r
- }\r
- });\r
- \r
- jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
- public void tableChanged(TableModelEvent arg0) {\r
- // TODO Auto-generated method stub\r
- int row = arg0.getFirstRow();\r
- TableModel m = (TableModel)arg0.getSource();\r
- if (arg0.getType() == TableModelEvent.UPDATE){\r
- \r
- String name = m.getValueAt(row, 0) + "";\r
- String value = m.getValueAt(row, 1) + "";\r
- docConsole.setSaved(false);\r
- ffc.updateFvImagesNameValue(row, name, value);\r
- }\r
- }\r
- });\r
- }\r
- return jTableFvProp;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jPanel4 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvPropButtonGroup() {\r
- if (jPanelFvPropButtonGroup == null) {\r
- jPanelFvPropButtonGroup = new JPanel();\r
- jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55));\r
- \r
- jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
- jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
- }\r
- return jPanelFvPropButtonGroup;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton1 \r
- * \r
- * @return javax.swing.JButton \r
- */\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 (jTableFvProp.getSelectedRow() >= 0){\r
- fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
- docConsole.setSaved(false);\r
- ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
- }\r
- }\r
- });\r
- }\r
- return jButtonFvPropDel;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jPanelFvImageC \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageC() {\r
- if (jPanelFvImageC == null) {\r
- GridLayout gridLayout = new GridLayout();\r
- gridLayout.setRows(2);\r
- jLabelFvParaName = new JLabel();\r
- jLabelFvParaName.setPreferredSize(new Dimension(38, 20));\r
- jLabelFvParaName.setText("Name");\r
- jLabelFvImageNames = new JLabel();\r
- jLabelFvImageNames.setText("FV Image Names");\r
- jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20));\r
- jLabelFvParaType = new JLabel();\r
- jLabelFvParaType.setText("Type");\r
- jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20));\r
- jPanelFvImageC = new JPanel();\r
- jPanelFvImageC.setLayout(gridLayout);\r
- jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
- jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
- \r
- \r
- }\r
- return jPanelFvImageC;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jComboBox \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxFvParaType() {\r
- if (jComboBoxFvParaType == null) {\r
- jComboBoxFvParaType = new JComboBox();\r
- jComboBoxFvParaType.addItem("Attributes");\r
- jComboBoxFvParaType.addItem("Components");\r
- jComboBoxFvParaType.setSelectedIndex(0);\r
- jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20));\r
- jComboBoxFvParaType.addItemListener(new ItemListener() {\r
-\r
- public void itemStateChanged(ItemEvent arg0) {\r
- // TODO disable attribute settings when ValidImageNames selected.\r
- int selectedRow = jTableFvInfo.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
- String oldType = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, oldType);\r
- if (fvImagePos < 0) {\r
- return;\r
- }\r
- \r
- String type = jComboBoxFvParaType.getSelectedItem()+"";\r
- ffc.updateFvImagesFvImageType(fvImagePos, type);\r
- jTableFvInfo.setValueAt(type, selectedRow, 1);\r
- docConsole.setSaved(false);\r
- }\r
- \r
- });\r
- }\r
- return jComboBoxFvParaType;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTextField2 \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFvParaName() {\r
- if (jTextFieldFvParaName == null) {\r
- jTextFieldFvParaName = new JTextField();\r
- jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20));\r
- }\r
- return jTextFieldFvParaName;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton2 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonFvNameAdd() {\r
- if (jButtonFvNameAdd == null) {\r
- jButtonFvNameAdd = new JButton();\r
- jButtonFvNameAdd.setPreferredSize(new Dimension(80, 20));\r
- jButtonFvNameAdd.setEnabled(true);\r
- jButtonFvNameAdd.setText("Add");\r
- jButtonFvNameAdd.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 (jTextFieldFvParaName.getText().length() > 0){\r
- String[] row = {jTextFieldFvParaName.getText()}; \r
- int selectedRow = jTableFvInfo.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- \r
- String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
- String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
- \r
- if (fvImagePos < 0) {\r
- // new FvImage.\r
- ffc.genFvImagesFvImage(row, jComboBoxFvParaType.getSelectedItem()+"", null); \r
- }\r
- else {\r
- //append Fv name.\r
- ffc.addFvImageNamesInFvImage(fvImagePos, row); \r
- }\r
- docConsole.setSaved(false);\r
- fvImageNameTableModel.addRow(row);\r
- fvNameList += " ";\r
- fvNameList += row[0];\r
- jTableFvInfo.setValueAt(fvNameList.trim(), selectedRow, 0);\r
- jTableFvImageNames.changeSelection(jTableFvImageNames.getRowCount() - 1, 0, false, false);\r
- }\r
- }\r
- });\r
- }\r
- return jButtonFvNameAdd;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jScrollPane2 \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneFvImageNames() {\r
- if (jScrollPaneFvImageNames == null) {\r
- jScrollPaneFvImageNames = new JScrollPane();\r
- jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,80));\r
- jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames());\r
- }\r
- return jScrollPaneFvImageNames;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTable1 \r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableFvImageNames() {\r
- if (jTableFvImageNames == null) {\r
- fvImageNameTableModel = new IDefaultTableModel();\r
- jTableFvImageNames = new JTable(fvImageNameTableModel);\r
- jTableFvImageNames.setRowHeight(20);\r
- fvImageNameTableModel.addColumn("FV Image Name");\r
- \r
- }\r
- return jTableFvImageNames;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton3 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonFvNameDel() {\r
- if (jButtonFvNameDel == null) {\r
- jButtonFvNameDel = new JButton();\r
- jButtonFvNameDel.setPreferredSize(new Dimension(80, 20));\r
- jButtonFvNameDel.setEnabled(true);\r
- jButtonFvNameDel.setText("Delete");\r
- jButtonFvNameDel.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 (jTableFvImageNames.getSelectedRow() >= 0){\r
- int selectedRow = jTableFvInfo.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- \r
- String selectedFvName = jTableFvImageNames.getValueAt(jTableFvImageNames.getSelectedRow(), 0)+"";\r
- String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
- String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
- \r
- if (fvImagePos < 0) {\r
- return; \r
- }\r
- else {\r
- //delete Fv name.\r
- ffc.updateFvImageNamesInFvImage(fvImagePos, selectedFvName, null);\r
- }\r
- docConsole.setSaved(false);\r
- String newList = removeFvNameFromList(fvNameList, selectedFvName);\r
- jTableFvInfo.setValueAt(newList, selectedRow, 0); \r
- fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
- }\r
- }\r
- });\r
- }\r
- return jButtonFvNameDel;\r
- }\r
-\r
- private String removeFvNameFromList (String list, String name) {\r
- String[] nameArray = list.split(" ");\r
- int occursAt = -1;\r
- for (int i = 0; i < nameArray.length; ++i) {\r
- if (nameArray[i].equals(name)) {\r
- occursAt = i;\r
- break;\r
- }\r
- }\r
- \r
- if (occursAt == -1) {\r
- return list;\r
- }\r
- \r
- String newList = " ";\r
- for (int j = 0; j < nameArray.length; ++j) {\r
- if (j != occursAt) {\r
- newList += nameArray[j];\r
- newList += " ";\r
- }\r
- }\r
- \r
- return newList.trim();\r
- }\r
-\r
- \r
- private JPanel getJPanelFvImageOpts() {\r
- \r
-\r
- if (jPanelFvImageOpts == null) {\r
- //ToDo add ButtonGroup for RadioButtons\r
- jLabelOptions = new JLabel();\r
- jLabelOptions.setText("Attribute");\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.setLayout(new BorderLayout());\r
- jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(450,130));\r
- \r
- \r
- jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
-\r
- jPanelFvImageOpts.add(getJPanelFvImageOptsN(), java.awt.BorderLayout.NORTH);\r
- jPanelFvImageOpts.add(getJPanelFvImageOptsS(), java.awt.BorderLayout.SOUTH);\r
- jPanelFvImageOpts.add(getJScrollPane(), java.awt.BorderLayout.CENTER);\r
-\r
- jPanelFvImageOpts.add(getJPanelFvImageOptsE(), java.awt.BorderLayout.EAST);\r
- }\r
- return jPanelFvImageOpts;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton4 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonAddFvImage() {\r
- if (jButtonAddFvImage == null) {\r
- jButtonAddFvImage = new JButton();\r
- jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
- jButtonAddFvImage.setText("New FV Attributes");\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
- \r
-// String imageName = " ";\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
-// LinkedHashMap<String, String> m = null;\r
-// m = new LinkedHashMap<String, String>();\r
-// getOptionNameValue(m);\r
-// ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
-// docConsole.setSaved(false);\r
- fvImageNameTableModel.setRowCount(0);\r
- fvOptionTableModel.setRowCount(0);\r
- Object[] row = {"", jComboBoxFvParaType.getSelectedItem()};\r
- fvImageParaTableModel.addRow(row);\r
- jTableFvInfo.changeSelection(jTableFvInfo.getRowCount() - 1, 0, false, false);\r
- }\r
- });\r
- }\r
- return jButtonAddFvImage;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jScrollPane3 \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\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 jScrollPaneFvInfo;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jTable2 \r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableFvInfo() {\r
- if (jTableFvInfo == null) {\r
- fvImageParaTableModel = new ImageParaTableModel();\r
- jTableFvInfo = new JTable(fvImageParaTableModel);\r
- fvImageParaTableModel.addColumn("FvImageNames");\r
- fvImageParaTableModel.addColumn("Type");\r
- \r
- jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTableFvInfo.setRowHeight(20);\r
- jTableFvInfo.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
- }\r
- else{\r
- int selectedRow = lsm.getMinSelectionIndex();\r
- String fvNameList = fvImageParaTableModel.getValueAt(selectedRow, 0)+"";\r
- String type = fvImageParaTableModel.getValueAt(selectedRow, 1)+"";\r
- jComboBoxFvParaType.setSelectedItem(type);\r
- String[] fvNames = fvNameList.split(" ");\r
- fvImageNameTableModel.setRowCount(0);\r
- fvOptionTableModel.setRowCount(0);\r
- for (int i = 0; i < fvNames.length; ++i) {\r
- String[] row = { fvNames[i] };\r
- if (row[0].length() > 0) {\r
- fvImageNameTableModel.addRow(row);\r
- }\r
- }\r
- \r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
- if (fvImagePos < 0) {\r
- return;\r
- }\r
- LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();\r
- ffc.getFvImagesFvImageOptions(fvImagePos, optionMap);\r
- if (optionMap.size() > 0){\r
- Set<String> key = optionMap.keySet();\r
- Iterator<String> i = key.iterator();\r
- while (i.hasNext()) {\r
- String k = (String)i.next();\r
- String[] row = {k, optionMap.get(k)};\r
- fvOptionTableModel.addRow(row);\r
- }\r
- }\r
- }\r
- }\r
- });\r
- \r
- \r
- }\r
- return jTableFvInfo;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jButton6 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonDelFvImage() {\r
- if (jButtonDelFvImage == null) {\r
- jButtonDelFvImage = new JButton();\r
- jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
- jButtonDelFvImage.setText("Delete FV Attributes");\r
- jButtonDelFvImage.addActionListener(new AbstractAction() {\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = 1L;\r
-\r
- public void actionPerformed(ActionEvent arg0) {\r
- // TODO Auto-generated method stub\r
- if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
- String fvNameList = fvImageParaTableModel.getValueAt(jTableFvInfo.getSelectedRow(), 0)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, jComboBoxFvParaType.getSelectedItem()+"");\r
- \r
- ffc.removeFvImagesFvImage(fvImagePos);\r
- fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
- docConsole.setSaved(false);\r
- \r
- fvImageNameTableModel.setRowCount(0);\r
- fvOptionTableModel.setRowCount(0);\r
- }\r
- }\r
- \r
- });\r
- }\r
- return jButtonDelFvImage;\r
- }\r
-\r
-\r
- /**\r
- * This method initializes jPanel6 \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImagePara() {\r
- if (jPanelFvImagePara == null) {\r
- StarLabel starLabel = new StarLabel();\r
- starLabel.setVisible(false);\r
- jPanelFvImagePara = new JPanel();\r
- jPanelFvImagePara.setLayout(new BorderLayout());\r
- jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(450,140));\r
- jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
-\r
- jPanelFvImagePara.add(getJPanelFvImageParaN(), java.awt.BorderLayout.NORTH);\r
- jPanelFvImagePara.add(getJPanelFvImageParaS(), java.awt.BorderLayout.SOUTH);\r
- jPanelFvImagePara.add(getJScrollPaneFvImageNames(), java.awt.BorderLayout.CENTER);\r
-\r
- jPanelFvImagePara.add(getJPanelFvImageParaE(), java.awt.BorderLayout.EAST);\r
-// \r
-// \r
-// \r
- }\r
- return jPanelFvImagePara;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel7 \r
- * \r
- * @return javax.swing.JPanel \r
- */\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
-// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
-// initFvInFdfTable(Workspace.getCurrenetWorkspace() + File.separator + jTextFieldFdf.getText());\r
-// \r
-// }\r
- }\r
- public void componentHidden(ComponentEvent e) {\r
- if (jCheckBoxFdf.isSelected()) {\r
- ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
- }\r
- }\r
- });\r
- }\r
- return jPanelFdf;\r
- }\r
-\r
- /**\r
- * This method initializes jCheckBox \r
- * \r
- * @return javax.swing.JCheckBox \r
- */\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 (jCheckBoxFdf.isSelected()){\r
- jTextFieldFdf.setEnabled(true);\r
- jButtonFdfBrowse.setEnabled(true);\r
- }\r
- else {\r
- getFvInFdfTableModel().setRowCount(0);\r
- jTextFieldFdf.setEnabled(false);\r
- jTextFieldFdf.setText("");\r
- jButtonFdfBrowse.setEnabled(false);\r
- ffc.genFlashDefinitionFile("");\r
- docConsole.setSaved(false);\r
- int selectedBackup = selectedRowInFvAdditionalTable;\r
- selectedRowInFvAdditionalTable = -1;\r
- initFvAdditionalTable();\r
- selectedRowInFvAdditionalTable = selectedBackup;\r
- }\r
- }\r
- });\r
- }\r
- return jCheckBoxFdf;\r
- }\r
-\r
- /**\r
- * This method initializes jTextField3 \r
- * \r
- * @return javax.swing.JTextField \r
- */\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 jTextFieldFdf;\r
- }\r
-\r
- /**\r
- * This method initializes jButton5 \r
- * \r
- * @return javax.swing.JButton \r
- */\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
- private static final long serialVersionUID = 1L;\r
-\r
- public void actionPerformed(ActionEvent e) {\r
- // TODO Auto-generated method stub\r
- String wsDir = Workspace.getCurrentWorkspace();\r
- JFileChooser chooser = new JFileChooser(wsDir);\r
- chooser.setMultiSelectionEnabled(false);\r
- chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
- int retval = chooser.showOpenDialog(FpdFlash.this);\r
- if (retval == JFileChooser.APPROVE_OPTION) {\r
-\r
- File theFile = chooser.getSelectedFile();\r
- String filePath = theFile.getPath();\r
- if (!filePath.startsWith(wsDir)) {\r
- JOptionPane.showMessageDialog(FpdFlash.this, "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 jButtonFdfBrowse;\r
- }\r
- \r
- private void initFvAttributes () {\r
- if (ffc.getFvImagesFvImageCount("Attributes") == 0 && ffc.getFvImagesFvImageCount("Components") == 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.getFvImagesFvImageCount("Components")][2];\r
- ffc.getFvImagesFvImages(saa, "Components");\r
- 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
- 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
- fvAdditionalTableModel.addRow(getBasicFvInfo(fvName));\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(FrameworkWizardUI.getInstance(), "FDF file does NOT contain valid Erase Polarity.");\r
- }\r
- else {\r
- ffc.setTypedFvImageNameValue("Attributes", "EFI_ERASE_POLARITY", erasePolarity);\r
- }\r
- \r
- // BugBug: assume all blocks have same size;\r
- \r
- String blkSize = defaultBlkSize;\r
- if (vBlockSize.size() > 0) {\r
- blkSize = vBlockSize.get(0);\r
- if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
- JOptionPane.showMessageDialog(FpdFlash.this, "FDF file does NOT contain valid FV block size. Default size 0x10000 will be used.");\r
- blkSize = defaultBlkSize;\r
- }\r
- }\r
- determinedFvBlockSize = blkSize;\r
- \r
- getFvInFdfTableModel().setRowCount(0);\r
- Vector<String> vExistingFvNameInFpd = new Vector<String>();\r
- ffc.getFvImagesFvImageFvImageNames(vExistingFvNameInFpd);\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
- \r
- if (row[0].length() > 0 && !vExistingFvNameInFpd.contains(row[0])) {\r
- ffc.addFvImageFvImageNames(new String[]{row[0]});\r
- }\r
- \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, null);\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 + "", null);\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], null);\r
- memModified = true;\r
- }\r
- \r
- }\r
- }\r
- catch (NumberFormatException e){\r
- JOptionPane.showMessageDialog(FpdFlash.this, 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
- ModuleOrderPane pane = new ModuleOrderPane(fvName, outputFile, ffc, this);\r
- pane.showModulesInFv(fvName);\r
- pane.showAllModulesInPlatform();\r
- jTabbedPane.addTab(fvName, null, pane, null);\r
- }\r
- /**\r
- * This method initializes jTextField4 \r
- * \r
- * @return javax.swing.JTextField \r
- */\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 jTextFieldFvImageOptName;\r
- }\r
-\r
- /**\r
- * This method initializes jTextField5 \r
- * \r
- * @return javax.swing.JTextField \r
- */\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 jTextFieldFvImageOptValue;\r
- }\r
-\r
- /**\r
- * This method initializes jPanel8 \r
- * \r
- * @return javax.swing.JPanel \r
- */\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 jPanelFvImageOptsButtonGroup;\r
- }\r
-\r
- /**\r
- * This method initializes jButton7 \r
- * \r
- * @return javax.swing.JButton \r
- */\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 (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
- int selectedRow = jTableFvInfo.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- \r
- String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
- String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
- String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()};\r
- \r
- if (fvImagePos < 0) {\r
- return;\r
- }\r
- else {\r
- //append options to FvImage.\r
- ffc.setFvImagesFvImageNameValue(fvImagePos, row[0], row[1]);\r
- }\r
- docConsole.setSaved(false);\r
- fvOptionTableModel.addRow(row);\r
- jTableFvImageOpts.changeSelection(jTableFvImageOpts.getRowCount() - 1, 0, false, false);\r
- }\r
- }\r
- });\r
- }\r
- return jButtonFvImageOptAdd;\r
- }\r
-\r
- /**\r
- * This method initializes jButton8 \r
- * \r
- * @return javax.swing.JButton \r
- */\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 (jTableFvImageOpts.getSelectedRow() >= 0){\r
- int selectedRow = jTableFvInfo.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- \r
- String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
- String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
- int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
- if (fvImagePos < 0) {\r
- return;\r
- }\r
- \r
- String optName = fvOptionTableModel.getValueAt(jTableFvImageOpts.getSelectedRow(), 0)+"";\r
- ffc.removeFvImageNameValue(fvImagePos, optName);\r
- docConsole.setSaved(false);\r
- fvOptionTableModel.removeRow(jTableFvImageOpts.getSelectedRow());\r
- }\r
- }\r
- });\r
- }\r
- return jButtonFvImageOptDel;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPane \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setPreferredSize(new java.awt.Dimension(350,100));\r
- jScrollPane.setViewportView(getJTableFvImageOpts());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- * This method initializes jTable3 \r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableFvImageOpts() {\r
- if (jTableFvImageOpts == null) {\r
- fvOptionTableModel = new IDefaultTableModel();\r
- fvOptionTableModel.addColumn("Name");\r
- fvOptionTableModel.addColumn("Value");\r
- jTableFvImageOpts = new JTable(fvOptionTableModel);\r
-\r
- jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTableFvImageOpts.setRowHeight(20);\r
- \r
- }\r
- return jTableFvImageOpts;\r
- }\r
-\r
- /**\r
- * This method initializes jButton9 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonUpdateFvImage() {\r
- if (jButtonUpdateFvImage == null) {\r
- jButtonUpdateFvImage = new JButton();\r
- jButtonUpdateFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
- jButtonUpdateFvImage.setActionCommand("Update");\r
- jButtonUpdateFvImage.setText("Update FV Attributes");\r
- jButtonUpdateFvImage.setVisible(false);\r
- jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int row = jTableFvInfo.getSelectedRow();\r
- if (jTableFvInfo.isEditing()) {\r
- jTableFvInfo.getCellEditor().stopCellEditing();\r
- }\r
- if (jTableFvImageOpts.isEditing()) {\r
- jTableFvImageOpts.getCellEditor().stopCellEditing();\r
- }\r
- \r
- //ToDo Check data validity before update\r
- String name = fvImageParaTableModel.getValueAt(row, 0) + "";\r
- String type = fvImageParaTableModel.getValueAt(row, 1) + "";\r
- \r
- LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
- getOptionNameValue(lhm);\r
- \r
- docConsole.setSaved(false);\r
- ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
- \r
- }\r
- });\r
- }\r
- return jButtonUpdateFvImage;\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(getJScrollPaneFvInFdf(), 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(getJScrollPaneFvAdditional(), 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 IDefaultTableModel getFvInFdfTableModel() {\r
- if (fvInFdfTableModel == null) {\r
- fvInFdfTableModel = new IDefaultTableModel();\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
- if (fvName.length() == 0) {\r
- return;\r
- }\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
- private DefaultTableModel getFvAdditionalOptTableModel() {\r
- if (fvAdditionalOptTableModel == null) {\r
- fvAdditionalOptTableModel = new FvOptsTableModel();\r
- fvAdditionalOptTableModel.addColumn("Name");\r
- fvAdditionalOptTableModel.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
- fvAdditionalOptTableModel.setVNonEditableName(v);\r
- }\r
- return fvAdditionalOptTableModel;\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(FpdFlash.this, "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
- ModuleOrderPane pane = new ModuleOrderPane(newFvName, "", ffc, FpdFlash.this);\r
- pane.showModulesInFv(newFvName);\r
- pane.showAllModulesInPlatform();\r
- jTabbedPane.addTab(newFvName, pane);\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 && !sizeFromOptionDlg) {\r
- String fvSize = m.getValueAt(row, col) + "";\r
- if (!DataValidation.isInt(fvSize) && !DataValidation.isHexDoubleWordDataType(fvSize)) {\r
- JOptionPane.showMessageDialog(FpdFlash.this, "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
- if (determinedFvBlockSize != null) {\r
- blkSize = determinedFvBlockSize;\r
- }\r
- else {\r
- blkSize = defaultBlkSize;\r
- }\r
- ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", blkSize, null);\r
- int fs = Integer.decode(fvSize);\r
- int bs = Integer.decode(blkSize);\r
- ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"", null);\r
- docConsole.setSaved(false);\r
- }\r
- else {\r
- if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
- int retVal = JOptionPane.showConfirmDialog(FpdFlash.this, "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", defaultBlkSize, null);\r
- int fs = Integer.decode(fvSize);\r
- int bs = Integer.decode(defaultBlkSize);\r
- ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"", null);\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)+"", null);\r
- docConsole.setSaved(false);\r
- }\r
- }\r
- \r
- if (col == 2 && !fileFromOptionDlg) {\r
- ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_FILE_NAME", m.getValueAt(row, col)+"", null);\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
- int selectedRow = jTableFvAdditional.getSelectedRow();\r
- if (selectedRow < 0) {\r
- return;\r
- }\r
- String fvName = jTableFvAdditional.getValueAt(selectedRow, 0)+"";\r
- String oldFvSize = jTableFvAdditional.getValueAt(selectedRow, 1)+"";\r
- String oldFileName = jTableFvAdditional.getValueAt(selectedRow, 2)+"";\r
- if (fvName.length() == 0) {\r
- return;\r
- }\r
- DefaultTableModel dtm = getFvAdditionalOptTableModel();\r
- new FpdFvOptions(fvName, dtm, ffc, docConsole);\r
- \r
- String[] updatedFvInfo = getBasicFvInfo (fvName);\r
- if (!oldFvSize.equalsIgnoreCase(updatedFvInfo[1])) {\r
- sizeFromOptionDlg = true;\r
- jTableFvAdditional.setValueAt(updatedFvInfo[1], selectedRow, 1);\r
- sizeFromOptionDlg = false;\r
- }\r
- if (!oldFileName.equals(updatedFvInfo[2])) {\r
- fileFromOptionDlg = true;\r
- jTableFvAdditional.setValueAt(updatedFvInfo[2], selectedRow, 2);\r
- fileFromOptionDlg = false;\r
- }\r
- }\r
- });\r
- }\r
- return jButtonAddFvOptions;\r
- }\r
- \r
- private String[] getBasicFvInfo (String fvName) {\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(FpdFlash.this, fvName + " block size bad format.");\r
- } \r
- if (!DataValidation.isHexDoubleWordDataType(numBlks) && !DataValidation.isInt(numBlks)) {\r
- numOfBlockWellFormat = false;\r
- JOptionPane.showMessageDialog(FpdFlash.this, 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
- \r
- return new String[]{fvName, fvSize, fvFile};\r
-\r
- }\r
- \r
- /**\r
- * This method initializes jPanelBgFvName \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelBgFvName() {\r
- if (jPanelBgFvName == null) {\r
- jPanelBgFvName = new JPanel();\r
- jPanelBgFvName.setPreferredSize(new java.awt.Dimension(80,55));\r
- jPanelBgFvName.add(getJButtonFvNameAdd(), null);\r
- jPanelBgFvName.add(getJButtonFvNameDel(), null);\r
- }\r
- return jPanelBgFvName;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelBgFvImage \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelBgFvImage() {\r
- if (jPanelBgFvImage == null) {\r
- jPanelBgFvImage = new JPanel();\r
- jPanelBgFvImage.setPreferredSize(new java.awt.Dimension(150,100));\r
- jPanelBgFvImage.add(getJButtonAddFvImage(), null);\r
- jPanelBgFvImage.add(getJButtonDelFvImage(), null);\r
- jPanelBgFvImage.add(getJButtonUpdateFvImage(), null);\r
- }\r
- return jPanelBgFvImage;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelW \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelW() {\r
- if (jPanelW == null) {\r
- jPanelW = new JPanel();\r
- jPanelW.add(getJPanelBgFvImage(), null);\r
- }\r
- return jPanelW;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageParaN \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageParaN() {\r
- if (jPanelFvImageParaN == null) {\r
- FlowLayout flowLayout3 = new FlowLayout();\r
- flowLayout3.setAlignment(java.awt.FlowLayout.CENTER);\r
- jPanelFvImageParaN = new JPanel();\r
- jPanelFvImageParaN.setLayout(flowLayout3);\r
- jPanelFvImageParaN.add(new StarLabel(), null);\r
- jPanelFvImageParaN.add(jLabelFvImageNames, null);\r
- jPanelFvImageParaN.add(jLabelFvParaName, null);\r
- jPanelFvImageParaN.add(getJTextFieldFvParaName(), null);\r
- }\r
- return jPanelFvImageParaN;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageParaS \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageParaS() {\r
- if (jPanelFvImageParaS == null) {\r
- FlowLayout flowLayout6 = new FlowLayout();\r
- flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);\r
- jPanelFvImageParaS = new JPanel();\r
- jPanelFvImageParaS.setLayout(flowLayout6);\r
- jPanelFvImageParaS.add(jLabelFvParaType, null);\r
- jPanelFvImageParaS.add(getJComboBoxFvParaType(), null);\r
- }\r
- return jPanelFvImageParaS;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageParaC \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-// private JPanel getJPanelFvImageParaC() {\r
-// if (jPanelFvImageParaC == null) {\r
-// jPanelFvImageParaC = new JPanel();\r
-// jPanelFvImageParaC.add(getJScrollPaneFvImageNames(), null);\r
-// }\r
-// return jPanelFvImageParaC;\r
-// }\r
-\r
- /**\r
- * This method initializes jPanelFvImageOptsN \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageOptsN() {\r
- if (jPanelFvImageOptsN == null) {\r
- jPanelFvImageOptsN = new JPanel();\r
- jPanelFvImageOptsN.add(jLabelOptions, null);\r
- jPanelFvImageOptsN.add(jLabelFvImageOptName, null);\r
- jPanelFvImageOptsN.add(getJTextFieldFvImageOptName(), null);\r
- jPanelFvImageOptsN.add(jLabelFvImageOptValue, null);\r
- jPanelFvImageOptsN.add(getJTextFieldFvImageOptValue(), null);\r
- }\r
- return jPanelFvImageOptsN;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageOptsS \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageOptsS() {\r
- if (jPanelFvImageOptsS == null) {\r
- jPanelFvImageOptsS = new JPanel();\r
- }\r
- return jPanelFvImageOptsS;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageOptsC \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-// private JPanel getJPanelFvImageOptsC() {\r
-// if (jPanelFvImageOptsC == null) {\r
-// jPanelFvImageOptsC = new JPanel();\r
-// jPanelFvImageOptsC.add(getJScrollPane(), null);\r
-// }\r
-// return jPanelFvImageOptsC;\r
-// }\r
-\r
- /**\r
- * This method initializes jPanelFvImageParaE \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageParaE() {\r
- if (jPanelFvImageParaE == null) {\r
- jPanelFvImageParaE = new JPanel();\r
- jPanelFvImageParaE.add(getJPanelBgFvName(), null);\r
- }\r
- return jPanelFvImageParaE;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageOptsE \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageOptsE() {\r
- if (jPanelFvImageOptsE == null) {\r
- jPanelFvImageOptsE = new JPanel();\r
- jPanelFvImageOptsE.add(getJPanelFvImageOptsButtonGroup(), null);\r
- }\r
- return jPanelFvImageOptsE;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageSN \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageSN() {\r
- if (jPanelFvImageSN == null) {\r
- jPanelFvImageSN = new JPanel();\r
- jPanelFvImageSN.add(getJCheckBoxFvProperty(), null);\r
- jPanelFvImageSN.add(jLabelFvPropName, null);\r
- jPanelFvImageSN.add(getJTextFieldFvPropName(), null);\r
- jPanelFvImageSN.add(jLabelFvPropValue, null);\r
- jPanelFvImageSN.add(getJTextFieldFvPropValue(), null);\r
- }\r
- return jPanelFvImageSN;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageSE \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageSE() {\r
- if (jPanelFvImageSE == null) {\r
- jPanelFvImageSE = new JPanel();\r
- jPanelFvImageSE.add(getJPanelFvPropButtonGroup(), null);\r
- }\r
- return jPanelFvImageSE;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelFvImageSS \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelFvImageSS() {\r
- if (jPanelFvImageSS == null) {\r
- jPanelFvImageSS = new JPanel();\r
- }\r
- return jPanelFvImageSS;\r
- }\r
-\r
- /**\r
- * @param args\r
- */\r
- public static void main(String[] args) {\r
- // TODO Auto-generated method stub\r
- new FpdFlash().setVisible(true);\r
- }\r
-\r
- /**\r
- * This method initializes this\r
- * \r
- * @return void\r
- */\r
- private void initialize() {\r
- this.setSize(660, 650);\r
- this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
- this.setContentPane(getJContentPane());\r
- this.setTitle("FPD Flash Definitions");\r
- this.addInternalFrameListener(new InternalFrameAdapter(){\r
- public void internalFrameDeactivated(InternalFrameEvent e){\r
- if (jTableFvProp.isEditing()) {\r
- jTableFvProp.getCellEditor().stopCellEditing();\r
- }\r
- if (jTableFvImageNames.isEditing()) {\r
- jTableFvImageNames.getCellEditor().stopCellEditing();\r
- }\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
- initFvAttributes();\r
- \r
- jTextFieldFdf.setText("");\r
- String fdfFile = ffc.getFlashDefinitionFile();\r
- if (fdfFile != null && fdfFile.length() > 0) {\r
- jCheckBoxFdf.setSelected(true);\r
- jTextFieldFdf.setText(fdfFile);\r
- String fdfPath = Workspace.getCurrentWorkspace() + 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 < jTableFvImageOpts.getRowCount(); ++i) {\r
- m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
- }\r
- }\r
- /**\r
- * This method initializes jContentPane\r
- * \r
- * @return javax.swing.JPanel\r
- */\r
- private JPanel getJContentPane() {\r
- if (jContentPane == null) {\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(new BorderLayout());\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
- /* (non-Javadoc)\r
- * @see org.tianocore.frameworkwizard.common.ui.IInternalFrame#actionPerformed(java.awt.event.ActionEvent)\r
- */\r
- @Override\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getActionCommand().equals("ModuleOrderPaneOk")) {\r
- docConsole.setSaved(false);\r
- jTabbedPane.setSelectedIndex(0);\r
- }\r
- else if (arg0.getActionCommand().equals("ModuleOrderPaneCancel")) {\r
- jTabbedPane.setSelectedIndex(0);\r
- }\r
- else {\r
- return;\r
- }\r
- }\r
- \r
-} // @jve:decl-index=0:visual-constraint="10,10"\r
-\r
-class ModuleOrderPane extends JPanel implements ActionListener{\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 IDefaultTableModel modInFvTableModel = null;\r
- private IDefaultTableModel fpdModTableModel = null;\r
- private FpdFileContents ffc = null;\r
- private String title = null;\r
- private String outputFileName = null;\r
- \r
- public ModuleOrderPane(String tabTitle, String file, FpdFileContents inputFfc, ActionListener action) {\r
- super(new BorderLayout());\r
- title = tabTitle;\r
- outputFileName = file;\r
- ffc = inputFfc;\r
- add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
- add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
- add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
- jButtonOk.addActionListener(action);\r
- jButtonCancel.addActionListener(action);\r
- \r
- }\r
- \r
- public void showModulesInFv(String fvName) {\r
- \r
- if (modInFvTableModel == null) {\r
- return;\r
- }\r
- int size = ffc.getUserExtsIncModCount(fvName, "IMAGES", "1");\r
- \r
- if (size != -1) {\r
- String[][] saa = new String[size][5];\r
- ffc.getUserExtsIncMods(fvName, "IMAGES", "1", saa);\r
-\r
- for (int i = 0; i < size; ++i) {\r
- String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
- String name = "N/A";\r
- if (mi != null) {\r
- name = mi.getName();\r
- }\r
- \r
- String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
- modInFvTableModel.addRow(row);\r
- }\r
- }\r
- //\r
- // From ModuleSAs, get module guids with FvBinding = fvName.\r
- //\r
- Vector<String[]> vModuleSA = new Vector<String[]>();\r
- ffc.getFrameworkModuleSAByFvBinding(fvName, vModuleSA);\r
- //\r
- // If BuildOptions->UserExtensions already contain these module info,\r
- // no need to add them into table again.\r
- //\r
- Iterator<String[]> iter = vModuleSA.iterator();\r
- while (iter.hasNext()){\r
- String[] sa = iter.next();\r
- if (!moduleInfoInTable (sa, modInFvTableModel)) {\r
- String moduleKey = sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3];\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
- String name = "N/A";\r
- if (mi != null) {\r
- name = mi.getName();\r
- }\r
- String[] row = { name, sa[0] , sa[1], sa[2] , sa[3], sa[4] };\r
- modInFvTableModel.addRow(row);\r
- }\r
- }\r
-\r
- }\r
- \r
- public void showAllModulesInPlatform() {\r
- \r
- if (modInFvTableModel == null || fpdModTableModel == null) {\r
- return;\r
- }\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
- if (moduleInfoInTable(saa[i], modInFvTableModel) || moduleInfoInTable(saa[i], fpdModTableModel)) {\r
- continue;\r
- }\r
- String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
- String name = "N/A";\r
- if (mi != null) {\r
- name = mi.getName();\r
- }\r
- String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
- fpdModTableModel.addRow(row);\r
- }\r
- \r
- TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
- sorter.setSortState(0, TableSorter.ASCENDING);\r
- }\r
- \r
- \r
- protected boolean moduleInfoInTable (String[] moduleInfo, DefaultTableModel model) {\r
- boolean matched = false;\r
- int size = model.getDataVector().size();\r
- for (int i = 0; i < size; ++i) {\r
- Vector rowData = (Vector)model.getDataVector().elementAt(i);\r
- for (int j = 1; j < rowData.size(); ++j) {\r
- if (rowData.elementAt(j) == null && moduleInfo[j-1] == null) {\r
- matched = true;\r
- }\r
- else if (rowData.elementAt(j).equals("null") && moduleInfo[j-1] == null) {\r
- matched = true;\r
- }\r
- else if (rowData.elementAt(j) == null && moduleInfo[j-1].equals("null")) {\r
- matched = true;\r
- }\r
- else if (rowData.elementAt(j) != null && rowData.elementAt(j).toString().equalsIgnoreCase(moduleInfo[j-1])) {\r
- matched = true;\r
- }\r
- else {\r
- matched = false;\r
- break;\r
- }\r
- }\r
- \r
- if (matched) {\r
- return true;\r
- }\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
- protected JTable getJTableModInFv() {\r
- if (jTableModInFv == null) {\r
- modInFvTableModel = new IDefaultTableModel();\r
- \r
- jTableModInFv = new JTable(modInFvTableModel){\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = 4903583933542581721L;\r
-\r
- public String getToolTipText(MouseEvent e) {\r
- String tip = null;\r
- java.awt.Point p = e.getPoint();\r
- int rowIndex = rowAtPoint(p);\r
-// int colIndex = columnAtPoint(p);\r
-// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
-\r
- TableModel model = getModel();\r
- String mg = (String) model.getValueAt(rowIndex, 1);\r
- String mv = (String) model.getValueAt(rowIndex, 2);\r
- String pg = (String) model.getValueAt(rowIndex, 3);\r
- String pv = (String) model.getValueAt(rowIndex, 4);\r
- String arch = (String) model.getValueAt(rowIndex, 5);\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
- if (mi != null) {\r
- tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
- }\r
- else {\r
- tip = "No Module Path Information."; \r
- }\r
- \r
- return tip;\r
- }\r
-\r
- };\r
- modInFvTableModel.addColumn("Module Orders in FV");\r
- modInFvTableModel.addColumn("mg");\r
- modInFvTableModel.addColumn("mv");\r
- modInFvTableModel.addColumn("pg");\r
- modInFvTableModel.addColumn("pv");\r
- modInFvTableModel.addColumn("arch");\r
- \r
- for (int i = 1; i < 6; ++i) {\r
- jTableModInFv.removeColumn(jTableModInFv.getColumnModel().getColumn(jTableModInFv.getColumnCount()-1));\r
- }\r
- \r
- jTableModInFv.setRowHeight(20);\r
- jTableModInFv.setShowGrid(false);\r
- jTableModInFv.setAutoCreateColumnsFromModel(false);\r
- jTableModInFv.addMouseListener(new MouseAdapter() {\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
- */\r
- @Override\r
- public void mouseClicked(MouseEvent arg0) {\r
- if (arg0.getButton() == MouseEvent.BUTTON3) {\r
- java.awt.Point p = arg0.getPoint();\r
- int rowIndex = jTableModInFv.rowAtPoint(p);\r
- TableModel model = jTableModInFv.getModel();\r
- String mg = (String) model.getValueAt(rowIndex, 1);\r
- String mv = (String) model.getValueAt(rowIndex, 2);\r
- String pg = (String) model.getValueAt(rowIndex, 3);\r
- String pv = (String) model.getValueAt(rowIndex, 4);\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
- String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
- if (mi != null) {\r
- details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
- }\r
- JOptionPane.showMessageDialog(ModuleOrderPane.this, details);\r
- }\r
- }\r
- \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 IDefaultTableModel();\r
- TableSorter sorter = new TableSorter(fpdModTableModel);\r
- jTableFpdModules = new JTable(sorter){\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = -4666296888377637808L;\r
-\r
- public String getToolTipText(MouseEvent e) {\r
- String tip = null;\r
- java.awt.Point p = e.getPoint();\r
- int rowIndex = rowAtPoint(p);\r
-// int colIndex = columnAtPoint(p);\r
-// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
-\r
- TableModel model = getModel();\r
- String mg = (String) model.getValueAt(rowIndex, 1);\r
- String mv = (String) model.getValueAt(rowIndex, 2);\r
- String pg = (String) model.getValueAt(rowIndex, 3);\r
- String pv = (String) model.getValueAt(rowIndex, 4);\r
- String arch = (String) model.getValueAt(rowIndex, 5);\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
- if (mi != null) {\r
- tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
- }\r
- else {\r
- tip = "No Module Path Information."; \r
- }\r
- \r
- return tip;\r
- }\r
-\r
- };\r
- \r
- fpdModTableModel.addColumn("Modules in Platform");\r
- fpdModTableModel.addColumn("mg");\r
- fpdModTableModel.addColumn("mv");\r
- fpdModTableModel.addColumn("pg");\r
- fpdModTableModel.addColumn("pv");\r
- fpdModTableModel.addColumn("arch");\r
- \r
- for (int i = 1; i < 6; ++i) {\r
- jTableFpdModules.removeColumn(jTableFpdModules.getColumnModel().getColumn(jTableFpdModules.getColumnCount()-1));\r
- }\r
- jTableFpdModules.setRowHeight(20);\r
- jTableFpdModules.setShowGrid(false);\r
- jTableFpdModules.setAutoCreateColumnsFromModel(false);\r
- jTableFpdModules.addMouseListener(new MouseAdapter() {\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
- */\r
- @Override\r
- public void mouseClicked(MouseEvent arg0) {\r
- if (arg0.getButton() == MouseEvent.BUTTON3) {\r
- java.awt.Point p = arg0.getPoint();\r
- int rowIndex = jTableFpdModules.rowAtPoint(p);\r
- TableModel model = jTableFpdModules.getModel();\r
- String mg = (String) model.getValueAt(rowIndex, 1);\r
- String mv = (String) model.getValueAt(rowIndex, 2);\r
- String pg = (String) model.getValueAt(rowIndex, 3);\r
- String pv = (String) model.getValueAt(rowIndex, 4);\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
- String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
- if (mi != null) {\r
- details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
- }\r
- JOptionPane.showMessageDialog(ModuleOrderPane.this, details);\r
- }\r
- }\r
- \r
- });\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
- String name = fpdModTableModel.getValueAt(rowInModel, 0)+"";\r
- String mg = fpdModTableModel.getValueAt(rowInModel, 1)+"";\r
- String mv = fpdModTableModel.getValueAt(rowInModel, 2)+"";\r
- String pg = fpdModTableModel.getValueAt(rowInModel, 3)+"";\r
- String pv = fpdModTableModel.getValueAt(rowInModel, 4)+"";\r
- String arch = fpdModTableModel.getValueAt(rowInModel, 5)+"";\r
- String[] row = {name, mg, mv, pg, pv, arch};\r
- if (name.length() == 0 || name.equals("N/A")) {\r
- return;\r
- }\r
- \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 name = modInFvTableModel.getValueAt(selectedRowLeft, 0)+"";\r
- String mg = modInFvTableModel.getValueAt(selectedRowLeft, 1)+"";\r
- String mv = modInFvTableModel.getValueAt(selectedRowLeft, 2)+"";\r
- String pg = modInFvTableModel.getValueAt(selectedRowLeft, 3)+"";\r
- String pv = modInFvTableModel.getValueAt(selectedRowLeft, 4)+"";\r
- String arch = modInFvTableModel.getValueAt(selectedRowLeft, 5)+"";\r
- String[] row = {name, mg, mv, pg, pv, arch};\r
- String moduleKey = mg + " " + mv + " " + pg + " " + pv + " " + arch; \r
- if (name.length() == 0 || name.equals("N/A") || ffc.getModuleSA(moduleKey) == null) {\r
- JOptionPane.showMessageDialog(ModuleOrderPane.this, "Module " + name + " not exists in platform. If you want to add back this module, please first add it into current platform. " + moduleKey );\r
- modInFvTableModel.removeRow(selectedRowLeft);\r
- return;\r
- }\r
- \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
- protected 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.setActionCommand("ModuleOrderPaneOk");\r
- jButtonOk.addActionListener(this);\r
- \r
- }\r
- return jButtonOk;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonCancel \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- protected 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.setActionCommand("ModuleOrderPaneCancel");\r
- \r
- }\r
- return jButtonCancel;\r
- }\r
-\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonOk) {\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 = modInFvTableModel.getValueAt(i, 0)+"";\r
- if (moduleName.length() == 0 || moduleName.equals("N/A")) {\r
- continue;\r
- }\r
- \r
- String mg = modInFvTableModel.getValueAt(i, 1)+"";\r
- String mv = modInFvTableModel.getValueAt(i, 2)+"";\r
- String pg = modInFvTableModel.getValueAt(i, 3)+"";\r
- String pv = modInFvTableModel.getValueAt(i, 4)+"";\r
- String arch = modInFvTableModel.getValueAt(i, 5)+"";\r
- \r
- String moduleInfo = mg + " " + mv + " " + pg + " " + pv + " " + arch;\r
- \r
- String[] sa = { mg, mv, pg, pv, arch};\r
- vModInFv.add(sa);\r
- ffc.updateFvBindingInModuleSA(moduleInfo, title);\r
- \r
- }\r
- ffc.removeBuildOptionsUserExtensions(title, "IMAGES", "1");\r
- ffc.genBuildOptionsUserExtensions(title, "IMAGES", "1", outputFileName, vModInFv);\r
- \r
- }\r
- }\r
-\r
- /**\r
- * @return Returns the fpdModTableModel.\r
- */\r
- protected IDefaultTableModel getFpdModTableModel() {\r
- return fpdModTableModel;\r
- }\r
-\r
- /**\r
- * @return Returns the modInFvTableModel.\r
- */\r
- protected IDefaultTableModel getModInFvTableModel() {\r
- return modInFvTableModel;\r
- }\r
-}\r
-\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
-\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
- if (col == 0 && getValueAt(row, 0) != null && getValueAt(row, 0).toString().length() > 0) {\r
- return false;\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
- 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