X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2Fplatform%2Fui%2FFpdFlash.java;h=e97004c3ca03877765d277320987b0c6440869b9;hp=d20c0b8d565a51c108ddc3737640a35f1c7a4f0a;hb=5342724213d3797764f4deddcaf5677d7340b23a;hpb=d6d24759a0c47633e30acbda45a0d899764e4610 diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java index d20c0b8d56..e97004c3ca 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java @@ -16,18 +16,21 @@ import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.AbstractAction; -import javax.swing.DefaultCellEditor; import javax.swing.JFileChooser; import javax.swing.JFrame; +import javax.swing.JOptionPane; import javax.swing.JTabbedPane; import javax.swing.JButton; import javax.swing.ListSelectionModel; import org.tianocore.PlatformSurfaceAreaDocument; +import org.tianocore.frameworkwizard.common.DataValidation; +import org.tianocore.frameworkwizard.common.IDefaultTableModel; import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; import org.tianocore.frameworkwizard.common.ui.IInternalFrame; import org.tianocore.frameworkwizard.common.ui.StarLabel; - +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; +import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; import java.awt.FlowLayout; import java.awt.event.ActionEvent; @@ -35,11 +38,17 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.BufferedReader; import java.io.File; +import java.io.FileReader; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; +import java.util.Vector; import javax.swing.JCheckBox; import javax.swing.JTextField; @@ -54,10 +63,10 @@ import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; -import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import javax.swing.JComboBox; import java.awt.Dimension; +import javax.swing.JSplitPane; public class FpdFlash extends IInternalFrame { @@ -65,66 +74,102 @@ public class FpdFlash extends IInternalFrame { * */ private static final long serialVersionUID = 1L; + private final int startIndexOfDynamicTab = 2; static JFrame frame; private JPanel jContentPane = null; - private JPanel jPanel = null; - private JPanel jPanel1 = null; - private JPanel jPanel2 = null; - private JPanel jPanel3 = null; + private JPanel jPanelContentEast = null; + private JPanel jPanelContentSouth = null; + private JPanel jPanelContentWest = null; + private JPanel jPanelContentNorth = null; private JTabbedPane jTabbedPane = null; private JPanel jPanelFvImages = null; - private JButton jButtonOk = null; - private JButton jButtonCancel = null; private JPanel jPanelFvImageN = null; private JPanel jPanelFvImageS = null; - private JCheckBox jCheckBox1 = null; - private JLabel jLabel = null; - private JTextField jTextField = null; - private JLabel jLabel1 = null; - private JTextField jTextField1 = null; - private JButton jButton = null; - private JScrollPane jScrollPane1 = null; - private JTable jTable = null; - private JPanel jPanel4 = null; - private JButton jButton1 = null; + private JCheckBox jCheckBoxFvProperty = null; + private JLabel jLabelFvPropName = null; + private JTextField jTextFieldFvPropName = null; + private JLabel jLabelFvPropValue = null; + private JTextField jTextFieldFvPropValue = null; + private JButton jButtonFvPropAdd = null; + private JScrollPane jScrollPaneFvProp = null; + private JTable jTableFvProp = null; + private JPanel jPanelFvPropButtonGroup = null; + private JButton jButtonFvPropDel = null; private DefaultTableModel fvPropertyTableModel = null; private DefaultTableModel fvImageNameTableModel = null; private ImageParaTableModel fvImageParaTableModel = null; private DefaultTableModel fvOptionTableModel = null; private JPanel jPanelFvImageC = null; - private JCheckBox jCheckBox2 = null; - private JLabel jLabel2 = null; - private JComboBox jComboBox = null; - private JLabel jLabel3 = null; - private JLabel jLabel4 = null; - private JTextField jTextField2 = null; - private JButton jButton2 = null; - private JScrollPane jScrollPane2 = null; - private JTable jTable1 = null; - private JButton jButton3 = null; - private JPanel jPanel5 = null; - private JButton jButton4 = null; - private JScrollPane jScrollPane3 = null; - private JTable jTable2 = null; - private JButton jButton6 = null; - private JCheckBox jCheckBox3 = null; - private JPanel jPanel6 = null; + private JLabel jLabelFvParaType = null; + private JComboBox jComboBoxFvParaType = null; + private JLabel jLabelFvImageNames = null; + private JLabel jLabelFvParaName = null; + private JTextField jTextFieldFvParaName = null; + private JButton jButtonFvNameAdd = null; + private JScrollPane jScrollPaneFvImageNames = null; + private JTable jTableFvImageNames = null; + private JButton jButtonFvNameDel = null; + private JPanel jPanelFvImageOpts = null; + private JButton jButtonAddFvImage = null; + private JScrollPane jScrollPaneFvInfo = null; + private JTable jTableFvInfo = null; + private JButton jButtonDelFvImage = null; + private JPanel jPanelFvImagePara = null; private OpeningPlatformType docConsole = null; private FpdFileContents ffc = null; - private JPanel jPanel7 = null; - private JCheckBox jCheckBox = null; - private JTextField jTextField3 = null; - private JButton jButton5 = null; - private JLabel jLabel5 = null; - private JTextField jTextField4 = null; - private JLabel jLabel6 = null; - private JTextField jTextField5 = null; - private JPanel jPanel8 = null; - private JButton jButton7 = null; - private JButton jButton8 = null; + private JPanel jPanelFdf = null; + private JCheckBox jCheckBoxFdf = null; + private JTextField jTextFieldFdf = null; + private JButton jButtonFdfBrowse = null; + private JLabel jLabelFvImageOptName = null; + private JTextField jTextFieldFvImageOptName = null; + private JLabel jLabelFvImageOptValue = null; + private JTextField jTextFieldFvImageOptValue = null; + private JPanel jPanelFvImageOptsButtonGroup = null; + private JButton jButtonFvImageOptAdd = null; + private JButton jButtonFvImageOptDel = null; private JScrollPane jScrollPane = null; - private JTable jTable3 = null; - private JButton jButton9 = null; + private JTable jTableFvImageOpts = null; + private JButton jButtonUpdateFvImage = null; + private JPanel jPanelFdfN = null; + private JPanel jPanelFdfS = null; + private JSplitPane jSplitPaneFdfC = null; + private JPanel jPanelFdfCTop = null; + private JPanel jPanelFdfCBottom = null; + private JPanel jPanelFdfCTopN = null; + private JPanel jPanelFdfCTopS = null; + private JPanel jPanelFdfCTopC = null; + private JPanel jPanelFdfCBottomN = null; + private JPanel jPanelFdfCBottomC = null; + private JLabel jLabelFvInFdf = null; + private JLabel jLabelFvAdditional = null; + private JScrollPane jScrollPaneFvInFdf = null; + private JTable jTableFvInFdf = null; + private IDefaultTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint="" + private JButton jButtonFvInFdfOptions = null; + private JScrollPane jScrollPaneFvAdditional = null; + private JTable jTableFvAdditional = null; + private DefaultTableModel fvAdditionalTableModel = null; // @jve:decl-index=0:visual-constraint="" + private JButton jButtonAddFv = null; + private JButton jButtonDelFv = null; + private JButton jButtonAddFvOptions = null; + private int tabIndexForFv = -1; + private int selectedRowInFvAdditionalTable = -1; + private String oldFvName = null; + private Vector vBlockSize = new Vector(); + private String determinedFvBlockSize = null; + private final String defaultBlkSize = "0x10000"; + private String erasePolarity = ""; + boolean memModified = false; + private FvOptsTableModel fvInFdfOptTableModel = null; + private FvOptsTableModel fvAdditionalOptTableModel = null; + private boolean sizeFromOptionDlg = false; + private boolean fileFromOptionDlg = false; + private JLabel jLabelOptions = null; + private JPanel jPanelBgFvName = null; + private JPanel jPanelBgFvImage = null; + private JPanel jPanelW = null; + public FpdFlash() { super(); // TODO Auto-generated constructor stub @@ -143,6 +188,11 @@ public class FpdFlash extends IInternalFrame { public FpdFlash(OpeningPlatformType opt) { this(opt.getXmlFpd()); docConsole = opt; + if (memModified) { + docConsole.setSaved(false); + JOptionPane.showMessageDialog(frame, "Platform Synced with FDF file."); + memModified = false; + } } /** @@ -150,11 +200,14 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel() { - if (jPanel == null) { - jPanel = new JPanel(); + private JPanel getJPanelContentEast() { + if (jPanelContentEast == null) { + FlowLayout flowLayout7 = new FlowLayout(); + flowLayout7.setVgap(50); + jPanelContentEast = new JPanel(); + jPanelContentEast.setLayout(flowLayout7); } - return jPanel; + return jPanelContentEast; } /** @@ -162,18 +215,16 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel1() { - if (jPanel1 == null) { + private JPanel getJPanelContentSouth() { + if (jPanelContentSouth == null) { FlowLayout flowLayout = new FlowLayout(); flowLayout.setAlignment(java.awt.FlowLayout.RIGHT); flowLayout.setHgap(15); - jPanel1 = new JPanel(); - jPanel1.setLayout(flowLayout); - jPanel1.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT); - jPanel1.add(getJButtonCancel(), null); - jPanel1.add(getJButtonOk(), null); + jPanelContentSouth = new JPanel(); + jPanelContentSouth.setLayout(flowLayout); + jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT); } - return jPanel1; + return jPanelContentSouth; } /** @@ -181,11 +232,11 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel2() { - if (jPanel2 == null) { - jPanel2 = new JPanel(); + private JPanel getJPanelContentWest() { + if (jPanelContentWest == null) { + jPanelContentWest = new JPanel(); } - return jPanel2; + return jPanelContentWest; } /** @@ -193,11 +244,11 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel3() { - if (jPanel3 == null) { - jPanel3 = new JPanel(); + private JPanel getJPanelContentNorth() { + if (jPanelContentNorth == null) { + jPanelContentNorth = new JPanel(); } - return jPanel3; + return jPanelContentNorth; } /** @@ -208,8 +259,8 @@ public class FpdFlash extends IInternalFrame { private JTabbedPane getJTabbedPane() { if (jTabbedPane == null) { jTabbedPane = new JTabbedPane(); - jTabbedPane.addTab("FV Images", null, getJPanelFvImages(), null); - jTabbedPane.addTab("Flash Definition File", null, getJPanel7(), null); + jTabbedPane.addTab("General", null, getJPanelFdf(), null); + jTabbedPane.addTab("Advanced", null, getJPanelFvImages(), null); } return jTabbedPane; @@ -224,45 +275,23 @@ public class FpdFlash extends IInternalFrame { if (jPanelFvImages == null) { jPanelFvImages = new JPanel(); jPanelFvImages.setLayout(new BorderLayout()); - jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.NORTH); -// jPanelFvImages.add(getJPanelFvImageW(), java.awt.BorderLayout.WEST); - jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH); + jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.NORTH); + jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.SOUTH); jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER); + jPanelFvImages.add(getJPanelW(), java.awt.BorderLayout.EAST); + jPanelFvImages.addComponentListener(new java.awt.event.ComponentAdapter() { + public void componentShown(java.awt.event.ComponentEvent e) { +// fvImageParaTableModel.setRowCount(0); +// fvPropertyTableModel.setRowCount(0); + + + } + }); } return jPanelFvImages; } - /** - * This method initializes jButtonOk - * - * @return javax.swing.JButton - */ - private JButton getJButtonOk() { - if (jButtonOk == null) { - jButtonOk = new JButton(); - jButtonOk.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonOk.setText("Cancel"); - jButtonOk.setVisible(false); - } - return jButtonOk; - } - - /** - * This method initializes jButtonCancel - * - * @return javax.swing.JButton - */ - private JButton getJButtonCancel() { - if (jButtonCancel == null) { - jButtonCancel = new JButton(); - jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonCancel.setText("Ok"); - jButtonCancel.setVisible(false); - } - return jButtonCancel; - } - /** * This method initializes jPanelFvImageN * @@ -270,28 +299,28 @@ public class FpdFlash extends IInternalFrame { */ private JPanel getJPanelFvImageN() { if (jPanelFvImageN == null) { - jLabel1 = new JLabel(); - jLabel1.setText("Value"); - jLabel1.setEnabled(false); - jLabel1.setPreferredSize(new java.awt.Dimension(38,20)); - jLabel = new JLabel(); - jLabel.setText("Name"); - jLabel.setEnabled(false); - jLabel.setPreferredSize(new java.awt.Dimension(38,20)); + jLabelFvPropValue = new JLabel(); + jLabelFvPropValue.setText("Value"); + jLabelFvPropValue.setEnabled(false); + jLabelFvPropValue.setPreferredSize(new java.awt.Dimension(38,20)); + jLabelFvPropName = new JLabel(); + jLabelFvPropName.setText("Name"); + jLabelFvPropName.setEnabled(false); + jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20)); FlowLayout flowLayout2 = new FlowLayout(); - flowLayout2.setAlignment(java.awt.FlowLayout.CENTER); - flowLayout2.setHgap(15); + flowLayout2.setAlignment(java.awt.FlowLayout.LEFT); + flowLayout2.setHgap(5); jPanelFvImageN = new JPanel(); - jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100)); + jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,130)); jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jPanelFvImageN.setLayout(flowLayout2); - jPanelFvImageN.add(getJCheckBox1(), null); - jPanelFvImageN.add(jLabel, null); - jPanelFvImageN.add(getJTextField(), null); - jPanelFvImageN.add(jLabel1, null); - jPanelFvImageN.add(getJTextField1(), null); - jPanelFvImageN.add(getJScrollPane1(), null); - jPanelFvImageN.add(getJPanel4(), null); + jPanelFvImageN.add(getJCheckBoxFvProperty(), null); + jPanelFvImageN.add(jLabelFvPropName, null); + jPanelFvImageN.add(getJTextFieldFvPropName(), null); + jPanelFvImageN.add(jLabelFvPropValue, null); + jPanelFvImageN.add(getJTextFieldFvPropValue(), null); + jPanelFvImageN.add(getJScrollPaneFvProp(), null); + jPanelFvImageN.add(getJPanelFvPropButtonGroup(), null); } return jPanelFvImageN; } @@ -306,9 +335,9 @@ public class FpdFlash extends IInternalFrame { GridLayout gridLayout2 = new GridLayout(); gridLayout2.setRows(1); jPanelFvImageS = new JPanel(); - jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190)); + jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,150)); jPanelFvImageS.setLayout(gridLayout2); - jPanelFvImageS.add(getJScrollPane3(), null); + jPanelFvImageS.add(getJScrollPaneFvInfo(), null); } return jPanelFvImageS; } @@ -319,30 +348,30 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JCheckBox */ - private JCheckBox getJCheckBox1() { - if (jCheckBox1 == null) { - jCheckBox1 = new JCheckBox(); - jCheckBox1.setText("FV Properties"); - jCheckBox1.addItemListener(new ItemListener(){ + private JCheckBox getJCheckBoxFvProperty() { + if (jCheckBoxFvProperty == null) { + jCheckBoxFvProperty = new JCheckBox(); + jCheckBoxFvProperty.setText("Global FV Variables"); + jCheckBoxFvProperty.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent arg0) { // TODO Auto-generated method stub - boolean seleted = jCheckBox1.isSelected(); + boolean seleted = jCheckBoxFvProperty.isSelected(); - jLabel.setEnabled(seleted); - jTextField.setEnabled(seleted); - jLabel1.setEnabled(seleted); - jTextField1.setEnabled(seleted); - jTable.setEnabled(seleted); - jButton.setEnabled(seleted); - jButton1.setEnabled(seleted); + jLabelFvPropName.setEnabled(seleted); + jTextFieldFvPropName.setEnabled(seleted); + jLabelFvPropValue.setEnabled(seleted); + jTextFieldFvPropValue.setEnabled(seleted); + jTableFvProp.setEnabled(seleted); + jButtonFvPropAdd.setEnabled(seleted); + jButtonFvPropDel.setEnabled(seleted); } }); } - return jCheckBox1; + return jCheckBoxFvProperty; } @@ -351,13 +380,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTextField */ - private JTextField getJTextField() { - if (jTextField == null) { - jTextField = new JTextField(); - jTextField.setPreferredSize(new java.awt.Dimension(100,20)); - jTextField.setEnabled(false); + private JTextField getJTextFieldFvPropName() { + if (jTextFieldFvPropName == null) { + jTextFieldFvPropName = new JTextField(); + jTextFieldFvPropName.setPreferredSize(new java.awt.Dimension(100,20)); + jTextFieldFvPropName.setEnabled(false); } - return jTextField; + return jTextFieldFvPropName; } @@ -366,13 +395,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTextField */ - private JTextField getJTextField1() { - if (jTextField1 == null) { - jTextField1 = new JTextField(); - jTextField1.setPreferredSize(new java.awt.Dimension(100,20)); - jTextField1.setEnabled(false); + private JTextField getJTextFieldFvPropValue() { + if (jTextFieldFvPropValue == null) { + jTextFieldFvPropValue = new JTextField(); + jTextFieldFvPropValue.setPreferredSize(new java.awt.Dimension(100,20)); + jTextFieldFvPropValue.setEnabled(false); } - return jTextField1; + return jTextFieldFvPropValue; } @@ -381,21 +410,21 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton() { - if (jButton == null) { - jButton = new JButton(); - jButton.setPreferredSize(new java.awt.Dimension(80,20)); - jButton.setEnabled(false); - jButton.setText("Add"); - jButton.addActionListener(new AbstractAction() { + private JButton getJButtonFvPropAdd() { + if (jButtonFvPropAdd == null) { + jButtonFvPropAdd = new JButton(); + jButtonFvPropAdd.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonFvPropAdd.setEnabled(false); + jButtonFvPropAdd.setText("Add"); + jButtonFvPropAdd.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { - if (jTextField.getText().length() > 0 && jTextField1.getText().length() > 0){ - String[] row = {jTextField.getText(), jTextField1.getText()}; + if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){ + String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; fvPropertyTableModel.addRow(row); docConsole.setSaved(false); ffc.genFvImagesNameValue(row[0], row[1]); @@ -403,7 +432,7 @@ public class FpdFlash extends IInternalFrame { } }); } - return jButton; + return jButtonFvPropAdd; } @@ -412,13 +441,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JScrollPane */ - private JScrollPane getJScrollPane1() { - if (jScrollPane1 == null) { - jScrollPane1 = new JScrollPane(); - jScrollPane1.setPreferredSize(new java.awt.Dimension(350,55)); - jScrollPane1.setViewportView(getJTable()); + private JScrollPane getJScrollPaneFvProp() { + if (jScrollPaneFvProp == null) { + jScrollPaneFvProp = new JScrollPane(); + jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,100)); + jScrollPaneFvProp.setViewportView(getJTableFvProp()); } - return jScrollPane1; + return jScrollPaneFvProp; } @@ -427,17 +456,17 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTable */ - private JTable getJTable() { - if (jTable == null) { + private JTable getJTableFvProp() { + if (jTableFvProp == null) { fvPropertyTableModel = new DefaultTableModel(); - jTable = new JTable(fvPropertyTableModel); + jTableFvProp = new JTable(fvPropertyTableModel); fvPropertyTableModel.addColumn("Name"); fvPropertyTableModel.addColumn("Value"); - jTable.setRowHeight(20); - jTable.setEnabled(false); + jTableFvProp.setRowHeight(20); + jTableFvProp.setEnabled(false); - jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ + jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()){ return; @@ -452,7 +481,7 @@ public class FpdFlash extends IInternalFrame { } }); - jTable.getModel().addTableModelListener(new TableModelListener(){ + jTableFvProp.getModel().addTableModelListener(new TableModelListener(){ public void tableChanged(TableModelEvent arg0) { // TODO Auto-generated method stub int row = arg0.getFirstRow(); @@ -467,7 +496,7 @@ public class FpdFlash extends IInternalFrame { } }); } - return jTable; + return jTableFvProp; } @@ -476,15 +505,15 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel4() { - if (jPanel4 == null) { - jPanel4 = new JPanel(); - jPanel4.setPreferredSize(new java.awt.Dimension(80,55)); + private JPanel getJPanelFvPropButtonGroup() { + if (jPanelFvPropButtonGroup == null) { + jPanelFvPropButtonGroup = new JPanel(); + jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55)); - jPanel4.add(getJButton(), null); - jPanel4.add(getJButton1(), null); + jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null); + jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null); } - return jPanel4; + return jPanelFvPropButtonGroup; } @@ -493,28 +522,28 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton1() { - if (jButton1 == null) { - jButton1 = new JButton(); - jButton1.setPreferredSize(new java.awt.Dimension(80,20)); - jButton1.setEnabled(false); - jButton1.setText("Delete"); - jButton1.addActionListener(new AbstractAction() { + private JButton getJButtonFvPropDel() { + if (jButtonFvPropDel == null) { + jButtonFvPropDel = new JButton(); + jButtonFvPropDel.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonFvPropDel.setEnabled(false); + jButtonFvPropDel.setText("Delete"); + jButtonFvPropDel.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { - if (jTable.getSelectedRow() >= 0){ - fvPropertyTableModel.removeRow(jTable.getSelectedRow()); + if (jTableFvProp.getSelectedRow() >= 0){ + fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow()); docConsole.setSaved(false); - ffc.removeFvImagesNameValue(jTable.getSelectedRow()); + ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow()); } } }); } - return jButton1; + return jButtonFvPropDel; } @@ -525,91 +554,65 @@ public class FpdFlash extends IInternalFrame { */ private JPanel getJPanelFvImageC() { if (jPanelFvImageC == null) { - jLabel4 = new JLabel(); - jLabel4.setPreferredSize(new Dimension(38, 20)); - jLabel4.setEnabled(false); - jLabel4.setText("Name"); - jLabel3 = new JLabel(); - jLabel3.setText("FV Image Names"); - jLabel3.setEnabled(false); - jLabel3.setPreferredSize(new java.awt.Dimension(150,20)); - jLabel2 = new JLabel(); - jLabel2.setText("Type"); - jLabel2.setEnabled(false); - jLabel2.setPreferredSize(new java.awt.Dimension(70,20)); + jLabelFvParaName = new JLabel(); + jLabelFvParaName.setPreferredSize(new Dimension(38, 20)); + jLabelFvParaName.setText("Name"); + jLabelFvImageNames = new JLabel(); + jLabelFvImageNames.setText("FV Image Names"); + jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20)); + jLabelFvParaType = new JLabel(); + jLabelFvParaType.setText("Type"); + jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20)); FlowLayout flowLayout3 = new FlowLayout(); flowLayout3.setAlignment(java.awt.FlowLayout.LEFT); flowLayout3.setHgap(5); jPanelFvImageC = new JPanel(); jPanelFvImageC.setLayout(flowLayout3); - jPanelFvImageC.add(getJPanel6(), null); + jPanelFvImageC.add(getJPanelFvImagePara(), null); - jPanelFvImageC.add(getJPanel5(), null); + jPanelFvImageC.add(getJPanelFvImageOpts(), null); } return jPanelFvImageC; } - /** - * This method initializes jCheckBox2 - * - * @return javax.swing.JCheckBox - */ - private JCheckBox getJCheckBox2() { - if (jCheckBox2 == null) { - jCheckBox2 = new JCheckBox(); - jCheckBox2.setText("FV Image Parameters"); - jCheckBox2.setPreferredSize(new java.awt.Dimension(200,20)); - jCheckBox2.addItemListener(new ItemListener(){ - - public void itemStateChanged(ItemEvent arg0) { - // TODO Auto-generated method stub - boolean seleted = jCheckBox2.isSelected(); - - jLabel2.setEnabled(seleted); - jLabel3.setEnabled(seleted); - jLabel4.setEnabled(seleted); - jComboBox.setEnabled(seleted); - jTextField2.setEnabled(seleted); - - jTable1.setEnabled(seleted); - jButton2.setEnabled(seleted); - jButton3.setEnabled(seleted); - - - } - - }); - } - return jCheckBox2; - } - - /** * This method initializes jComboBox * * @return javax.swing.JComboBox */ - private JComboBox getJComboBox() { - if (jComboBox == null) { - jComboBox = new JComboBox(); - jComboBox.addItem("ImageName"); - jComboBox.addItem("Attributes"); - jComboBox.addItem("Options"); - jComboBox.addItem("Components"); - jComboBox.setPreferredSize(new java.awt.Dimension(180,20)); - jComboBox.setEnabled(false); - jComboBox.addItemListener(new ItemListener() { + private JComboBox getJComboBoxFvParaType() { + if (jComboBoxFvParaType == null) { + jComboBoxFvParaType = new JComboBox(); + jComboBoxFvParaType.addItem("Attributes"); + jComboBoxFvParaType.addItem("Components"); + jComboBoxFvParaType.setSelectedIndex(0); + jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20)); + jComboBoxFvParaType.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { // TODO disable attribute settings when ValidImageNames selected. + int selectedRow = jTableFvInfo.getSelectedRow(); + if (selectedRow < 0) { + return; + } + String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+""; + String oldType = jTableFvInfo.getValueAt(selectedRow, 1)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, oldType); + if (fvImagePos < 0) { + return; + } + String type = jComboBoxFvParaType.getSelectedItem()+""; + ffc.updateFvImagesFvImageType(fvImagePos, type); + jTableFvInfo.setValueAt(type, selectedRow, 1); + docConsole.setSaved(false); } }); } - return jComboBox; + return jComboBoxFvParaType; } @@ -618,13 +621,12 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTextField */ - private JTextField getJTextField2() { - if (jTextField2 == null) { - jTextField2 = new JTextField(); - jTextField2.setPreferredSize(new java.awt.Dimension(140,20)); - jTextField2.setEnabled(false); + private JTextField getJTextFieldFvParaName() { + if (jTextFieldFvParaName == null) { + jTextFieldFvParaName = new JTextField(); + jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20)); } - return jTextField2; + return jTextFieldFvParaName; } @@ -633,27 +635,49 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton2() { - if (jButton2 == null) { - jButton2 = new JButton(); - jButton2.setPreferredSize(new Dimension(80, 20)); - jButton2.setEnabled(false); - jButton2.setText("Add"); - jButton2.addActionListener(new AbstractAction() { + private JButton getJButtonFvNameAdd() { + if (jButtonFvNameAdd == null) { + jButtonFvNameAdd = new JButton(); + jButtonFvNameAdd.setPreferredSize(new Dimension(80, 20)); + jButtonFvNameAdd.setEnabled(true); + jButtonFvNameAdd.setText("Add"); + jButtonFvNameAdd.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(java.awt.event.ActionEvent e) { - if (jTextField2.getText().length() > 0){ - String[] row = {jTextField2.getText()}; + if (jTextFieldFvParaName.getText().length() > 0){ + String[] row = {jTextFieldFvParaName.getText()}; + int selectedRow = jTableFvInfo.getSelectedRow(); + if (selectedRow < 0) { + return; + } + + String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+""; + String type = jTableFvInfo.getValueAt(selectedRow, 1)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type); + + if (fvImagePos < 0) { + // new FvImage. + ffc.genFvImagesFvImage(row, jComboBoxFvParaType.getSelectedItem()+"", null); + } + else { + //append Fv name. + ffc.addFvImageNamesInFvImage(fvImagePos, row); + } + docConsole.setSaved(false); fvImageNameTableModel.addRow(row); + fvNameList += " "; + fvNameList += row[0]; + jTableFvInfo.setValueAt(fvNameList.trim(), selectedRow, 0); + jTableFvImageNames.changeSelection(jTableFvImageNames.getRowCount() - 1, 0, false, false); } } }); } - return jButton2; + return jButtonFvNameAdd; } @@ -662,13 +686,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JScrollPane */ - private JScrollPane getJScrollPane2() { - if (jScrollPane2 == null) { - jScrollPane2 = new JScrollPane(); - jScrollPane2.setPreferredSize(new java.awt.Dimension(350,50)); - jScrollPane2.setViewportView(getJTable1()); + private JScrollPane getJScrollPaneFvImageNames() { + if (jScrollPaneFvImageNames == null) { + jScrollPaneFvImageNames = new JScrollPane(); + jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,80)); + jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames()); } - return jScrollPane2; + return jScrollPaneFvImageNames; } @@ -677,14 +701,15 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTable */ - private JTable getJTable1() { - if (jTable1 == null) { - fvImageNameTableModel = new DefaultTableModel(); - jTable1 = new JTable(fvImageNameTableModel); - jTable1.setEnabled(false); + private JTable getJTableFvImageNames() { + if (jTableFvImageNames == null) { + fvImageNameTableModel = new IDefaultTableModel(); + jTableFvImageNames = new JTable(fvImageNameTableModel); + jTableFvImageNames.setRowHeight(20); fvImageNameTableModel.addColumn("FV Image Name"); + } - return jTable1; + return jTableFvImageNames; } @@ -693,68 +718,111 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton3() { - if (jButton3 == null) { - jButton3 = new JButton(); - jButton3.setPreferredSize(new Dimension(80, 20)); - jButton3.setEnabled(false); - jButton3.setText("Delete"); - jButton3.addActionListener(new AbstractAction() { + private JButton getJButtonFvNameDel() { + if (jButtonFvNameDel == null) { + jButtonFvNameDel = new JButton(); + jButtonFvNameDel.setPreferredSize(new Dimension(80, 20)); + jButtonFvNameDel.setEnabled(true); + jButtonFvNameDel.setText("Delete"); + jButtonFvNameDel.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(java.awt.event.ActionEvent e) { - if (jTable1.getSelectedRow() >= 0){ - - fvImageNameTableModel.removeRow(jTable1.getSelectedRow()); + if (jTableFvImageNames.getSelectedRow() >= 0){ + int selectedRow = jTableFvInfo.getSelectedRow(); + if (selectedRow < 0) { + return; + } + + String selectedFvName = jTableFvImageNames.getValueAt(jTableFvImageNames.getSelectedRow(), 0)+""; + String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+""; + String type = jTableFvInfo.getValueAt(selectedRow, 1)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type); + + if (fvImagePos < 0) { + return; + } + else { + //delete Fv name. + ffc.updateFvImageNamesInFvImage(fvImagePos, selectedFvName, null); + } + docConsole.setSaved(false); + String newList = removeFvNameFromList(fvNameList, selectedFvName); + jTableFvInfo.setValueAt(newList, selectedRow, 0); + fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow()); } } }); } - return jButton3; + return jButtonFvNameDel; } - + private String removeFvNameFromList (String list, String name) { + String[] nameArray = list.split(" "); + int occursAt = -1; + for (int i = 0; i < nameArray.length; ++i) { + if (nameArray[i].equals(name)) { + occursAt = i; + break; + } + } + + if (occursAt == -1) { + return list; + } + + String newList = " "; + for (int j = 0; j < nameArray.length; ++j) { + if (j != occursAt) { + newList += nameArray[j]; + newList += " "; + } + } + + return newList.trim(); + } - private JPanel getJPanel5() { + private JPanel getJPanelFvImageOpts() { - if (jPanel5 == null) { + if (jPanelFvImageOpts == null) { //ToDo add ButtonGroup for RadioButtons - jLabel6 = new JLabel(); - jLabel6.setEnabled(true); - jLabel6.setText("Value"); - jLabel6.setPreferredSize(new Dimension(38, 20)); - jLabel5 = new JLabel(); - jLabel5.setEnabled(true); - jLabel5.setText("Name"); - jLabel5.setPreferredSize(new Dimension(38, 20)); - jPanel5 = new JPanel(); - jPanel5.setPreferredSize(new java.awt.Dimension(480,150)); + FlowLayout flowLayout5 = new FlowLayout(); + flowLayout5.setAlignment(java.awt.FlowLayout.LEFT); + jLabelOptions = new JLabel(); + jLabelOptions.setText("Attribute"); + jLabelFvImageOptValue = new JLabel(); + jLabelFvImageOptValue.setEnabled(true); + jLabelFvImageOptValue.setText("Value"); + jLabelFvImageOptValue.setPreferredSize(new Dimension(38, 20)); + jLabelFvImageOptName = new JLabel(); + jLabelFvImageOptName.setEnabled(true); + jLabelFvImageOptName.setText("Name"); + jLabelFvImageOptName.setPreferredSize(new Dimension(38, 20)); + jPanelFvImageOpts = new JPanel(); + jPanelFvImageOpts.setLayout(flowLayout5); + jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(450,130)); - jPanel5.setLayout(new FlowLayout()); - jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED)); - jPanel5.add(getJCheckBox3(), null); - jPanel5.add(jLabel5, null); - jPanel5.add(getJTextField4(), null); - jPanel5.add(jLabel6, null); - jPanel5.add(getJTextField5(), null); - jPanel5.add(getJScrollPane(), null); - jPanel5.add(getJPanel8(), null); - jPanel5.add(getJButton4(), null); - jPanel5.add(getJButton6(), null); - jPanel5.add(getJButton9(), null); + jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED)); + jPanelFvImageOpts.add(jLabelOptions, null); + jPanelFvImageOpts.add(jLabelFvImageOptName, null); + jPanelFvImageOpts.add(getJTextFieldFvImageOptName(), null); + jPanelFvImageOpts.add(jLabelFvImageOptValue, null); + jPanelFvImageOpts.add(getJTextFieldFvImageOptValue(), null); + jPanelFvImageOpts.add(getJScrollPane(), null); + jPanelFvImageOpts.add(getJPanelFvImageOptsButtonGroup(), null); } - return jPanel5; + return jPanelFvImageOpts; } @@ -763,53 +831,40 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton4() { - if (jButton4 == null) { - jButton4 = new JButton(); - jButton4.setPreferredSize(new java.awt.Dimension(120,20)); -// jButton4.setEnabled(false); - jButton4.setText("Add FV Image"); - jButton4.addActionListener(new AbstractAction() { + private JButton getJButtonAddFvImage() { + if (jButtonAddFvImage == null) { + jButtonAddFvImage = new JButton(); + jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(150,20)); + jButtonAddFvImage.setText("New FV Attributes"); + jButtonAddFvImage.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(java.awt.event.ActionEvent e) { - if (jTable2.isEditing()) { - jTable2.getCellEditor().stopCellEditing(); - } - if (jTable3.isEditing()) { - jTable3.getCellEditor().stopCellEditing(); - } - if (jTable1.getRowCount()== 0){ - return; - } - String imageName = " "; - for (int i = 0; i < jTable1.getRowCount(); ++i){ - imageName += (String)jTable1.getValueAt(i, 0); - imageName += " "; - } - imageName = imageName.trim(); - if (!jCheckBox3.isSelected() && jComboBox.getSelectedIndex() != 0){ - return; - - } +// String imageName = " "; +// for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){ +// imageName += (String)jTableFvImageNames.getValueAt(i, 0); +// imageName += " "; +// } +// imageName = imageName.trim(); - LinkedHashMap m = null; - if (jCheckBox3.isSelected()) { - m = new LinkedHashMap(); - getOptionNameValue(m); - } - ffc.genFvImagesFvImage(imageName.split(" "), jComboBox.getSelectedItem()+"", m); - docConsole.setSaved(false); - Object[] row = {imageName, jComboBox.getSelectedItem()}; - fvImageParaTableModel.addRow(row); +// LinkedHashMap m = null; +// m = new LinkedHashMap(); +// getOptionNameValue(m); +// ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m); +// docConsole.setSaved(false); + fvImageNameTableModel.setRowCount(0); + fvOptionTableModel.setRowCount(0); + Object[] row = {"", jComboBoxFvParaType.getSelectedItem()}; + fvImageParaTableModel.addRow(row); + jTableFvInfo.changeSelection(jTableFvInfo.getRowCount() - 1, 0, false, false); } }); } - return jButton4; + return jButtonAddFvImage; } @@ -818,13 +873,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JScrollPane */ - private JScrollPane getJScrollPane3() { - if (jScrollPane3 == null) { - jScrollPane3 = new JScrollPane(); - jScrollPane3.setPreferredSize(new java.awt.Dimension(480,150)); - jScrollPane3.setViewportView(getJTable2()); + private JScrollPane getJScrollPaneFvInfo() { + if (jScrollPaneFvInfo == null) { + jScrollPaneFvInfo = new JScrollPane(); + jScrollPaneFvInfo.setPreferredSize(new java.awt.Dimension(480,150)); + jScrollPaneFvInfo.setViewportView(getJTableFvInfo()); } - return jScrollPane3; + return jScrollPaneFvInfo; } @@ -833,24 +888,16 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTable */ - private JTable getJTable2() { - if (jTable2 == null) { + private JTable getJTableFvInfo() { + if (jTableFvInfo == null) { fvImageParaTableModel = new ImageParaTableModel(); - jTable2 = new JTable(fvImageParaTableModel); + jTableFvInfo = new JTable(fvImageParaTableModel); fvImageParaTableModel.addColumn("FvImageNames"); fvImageParaTableModel.addColumn("Type"); - - TableColumn typeCol = jTable2.getColumnModel().getColumn(1); - JComboBox cb = new JComboBox(); - cb.addItem("ValidImageNames"); - cb.addItem("Attributes"); - cb.addItem("Options"); - cb.addItem("Components"); - typeCol.setCellEditor(new DefaultCellEditor(cb)); - - jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ + jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + jTableFvInfo.setRowHeight(20); + jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()){ return; @@ -861,28 +908,41 @@ public class FpdFlash extends IInternalFrame { } else{ int selectedRow = lsm.getMinSelectionIndex(); + String fvNameList = fvImageParaTableModel.getValueAt(selectedRow, 0)+""; + String type = fvImageParaTableModel.getValueAt(selectedRow, 1)+""; + jComboBoxFvParaType.setSelectedItem(type); + String[] fvNames = fvNameList.split(" "); + fvImageNameTableModel.setRowCount(0); + fvOptionTableModel.setRowCount(0); + for (int i = 0; i < fvNames.length; ++i) { + String[] row = { fvNames[i] }; + if (row[0].length() > 0) { + fvImageNameTableModel.addRow(row); + } + } + + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type); + if (fvImagePos < 0) { + return; + } LinkedHashMap optionMap = new LinkedHashMap(); - ffc.getFvImagesFvImageOptions(selectedRow, optionMap); + ffc.getFvImagesFvImageOptions(fvImagePos, optionMap); if (optionMap.size() > 0){ - fvOptionTableModel.setRowCount(0); Set key = optionMap.keySet(); Iterator i = key.iterator(); while (i.hasNext()) { - String k = (String)i.next(); String[] row = {k, optionMap.get(k)}; - fvOptionTableModel.addRow(row); } } - } } }); } - return jTable2; + return jTableFvInfo; } @@ -891,13 +951,12 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton6() { - if (jButton6 == null) { - jButton6 = new JButton(); - jButton6.setPreferredSize(new java.awt.Dimension(120,20)); -// jButton6.setEnabled(false); - jButton6.setText("Delete Row"); - jButton6.addActionListener(new AbstractAction() { + private JButton getJButtonDelFvImage() { + if (jButtonDelFvImage == null) { + jButtonDelFvImage = new JButton(); + jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(150,20)); + jButtonDelFvImage.setText("Delete FV Attributes"); + jButtonDelFvImage.addActionListener(new AbstractAction() { /** * */ @@ -905,50 +964,22 @@ public class FpdFlash extends IInternalFrame { public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub - if (jTable2.getSelectedRow() >= 0 ) { - ffc.removeFvImagesFvImage(jTable2.getSelectedRow()); - fvImageParaTableModel.removeRow(jTable2.getSelectedRow()); + if (jTableFvInfo.getSelectedRow() >= 0 ) { + String fvNameList = fvImageParaTableModel.getValueAt(jTableFvInfo.getSelectedRow(), 0)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, jComboBoxFvParaType.getSelectedItem()+""); + + ffc.removeFvImagesFvImage(fvImagePos); + fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow()); docConsole.setSaved(false); - } - } - - }); - } - return jButton6; - } - - - /** - * This method initializes jCheckBox3 - * - * @return javax.swing.JCheckBox - */ - private JCheckBox getJCheckBox3() { - if (jCheckBox3 == null) { - jCheckBox3 = new JCheckBox(); - jCheckBox3.setText("FV Image Options"); - jCheckBox3.addItemListener(new ItemListener(){ - - public void itemStateChanged(ItemEvent arg0) { - // TODO Auto-generated method stub -// boolean selected = jCheckBox3.isSelected(); - - if (!jCheckBox2.isSelected() || jComboBox.getSelectedIndex() == 0) { - return; - } -// jLabel5.setEnabled(selected); -// jTextField4.setEnabled(selected); -// jLabel6.setEnabled(selected); -// jTextField5.setEnabled(selected); -// jButton7.setEnabled(selected); -// jButton8.setEnabled(selected); - + fvImageNameTableModel.setRowCount(0); + fvOptionTableModel.setRowCount(0); + } } }); } - return jCheckBox3; + return jButtonDelFvImage; } @@ -957,25 +988,26 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel6() { - if (jPanel6 == null) { + private JPanel getJPanelFvImagePara() { + if (jPanelFvImagePara == null) { + FlowLayout flowLayout6 = new FlowLayout(); + flowLayout6.setAlignment(java.awt.FlowLayout.LEFT); StarLabel starLabel = new StarLabel(); starLabel.setVisible(false); - jPanel6 = new JPanel(); - jPanel6.setPreferredSize(new java.awt.Dimension(480,120)); - jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); - jPanel6.add(getJCheckBox2(), null); - jPanel6.add(jLabel2, null); - jPanel6.add(getJComboBox(), null); - jPanel6.add(new StarLabel(), null); - jPanel6.add(jLabel3, null); - jPanel6.add(jLabel4, null); - jPanel6.add(getJTextField2(), null); - jPanel6.add(getJButton2(), null); - jPanel6.add(getJScrollPane2(), null); - jPanel6.add(getJButton3(), null); + jPanelFvImagePara = new JPanel(); + jPanelFvImagePara.setLayout(flowLayout6); + jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(450,140)); + jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); + jPanelFvImagePara.add(new StarLabel(), null); + jPanelFvImagePara.add(jLabelFvImageNames, null); + jPanelFvImagePara.add(jLabelFvParaName, null); + jPanelFvImagePara.add(getJTextFieldFvParaName(), null); + jPanelFvImagePara.add(getJScrollPaneFvImageNames(), null); + jPanelFvImagePara.add(getJPanelBgFvName(), null); + jPanelFvImagePara.add(jLabelFvParaType, null); + jPanelFvImagePara.add(getJComboBoxFvParaType(), null); } - return jPanel6; + return jPanelFvImagePara; } /** @@ -983,29 +1015,30 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel7() { - if (jPanel7 == null) { - FlowLayout flowLayout1 = new FlowLayout(); - flowLayout1.setAlignment(FlowLayout.LEFT); - jPanel7 = new JPanel(); - jPanel7.setLayout(flowLayout1); - jPanel7.add(getJCheckBox(), null); - jPanel7.add(getJTextField3(), null); - jPanel7.add(getJButton5(), null); - jPanel7.addComponentListener(new ComponentAdapter(){ + private JPanel getJPanelFdf() { + if (jPanelFdf == null) { + jPanelFdf = new JPanel(); + jPanelFdf.setLayout(new BorderLayout()); + + jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH); + jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH); + jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER); + jPanelFdf.addComponentListener(new ComponentAdapter(){ public void componentShown(ComponentEvent e) { - if (ffc.getFlashDefinitionFile() != null) { - jTextField3.setText(ffc.getFlashDefinitionFile()); - } +// if (ffc.getFlashDefinitionFile() != null) { +// jTextFieldFdf.setText(ffc.getFlashDefinitionFile()); +// initFvInFdfTable(System.getenv("WORKSPACE") + File.separator + jTextFieldFdf.getText()); +// +// } } public void componentHidden(ComponentEvent e) { - if (jCheckBox.isSelected()) { - ffc.genFlashDefinitionFile(jTextField3.getText()); + if (jCheckBoxFdf.isSelected()) { + ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); } } }); } - return jPanel7; + return jPanelFdf; } /** @@ -1013,27 +1046,27 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JCheckBox */ - private JCheckBox getJCheckBox() { - if (jCheckBox == null) { - jCheckBox = new JCheckBox(); - jCheckBox.setText("Flash Definition File"); - jCheckBox.addItemListener(new ItemListener() { + private JCheckBox getJCheckBoxFdf() { + if (jCheckBoxFdf == null) { + jCheckBoxFdf = new JCheckBox(); + jCheckBoxFdf.setText("Flash Definition File"); + jCheckBoxFdf.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { // TODO Auto-generated method stub - if (jCheckBox.isSelected()){ - jTextField3.setEnabled(true); - jButton5.setEnabled(true); + if (jCheckBoxFdf.isSelected()){ + jTextFieldFdf.setEnabled(true); + jButtonFdfBrowse.setEnabled(true); } else { - jTextField3.setEnabled(false); - jButton5.setEnabled(false); + jTextFieldFdf.setEnabled(false); + jButtonFdfBrowse.setEnabled(false); } } }); } - return jCheckBox; + return jCheckBoxFdf; } /** @@ -1041,13 +1074,19 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTextField */ - private JTextField getJTextField3() { - if (jTextField3 == null) { - jTextField3 = new JTextField(); - jTextField3.setEnabled(false); - jTextField3.setPreferredSize(new Dimension(300, 20)); + private JTextField getJTextFieldFdf() { + if (jTextFieldFdf == null) { + jTextFieldFdf = new JTextField(); + jTextFieldFdf.setEnabled(false); + jTextFieldFdf.setEditable(false); + jTextFieldFdf.setPreferredSize(new Dimension(300, 20)); + jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusLost(java.awt.event.FocusEvent e) { + ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); + } + }); } - return jTextField3; + return jTextFieldFdf; } /** @@ -1055,13 +1094,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton5() { - if (jButton5 == null) { - jButton5 = new JButton(); - jButton5.setEnabled(false); - jButton5.setText("Browse"); - jButton5.setPreferredSize(new Dimension(78, 20)); - jButton5.addActionListener(new AbstractAction(){ + private JButton getJButtonFdfBrowse() { + if (jButtonFdfBrowse == null) { + jButtonFdfBrowse = new JButton(); + jButtonFdfBrowse.setEnabled(false); + jButtonFdfBrowse.setText("Browse"); + jButtonFdfBrowse.setPreferredSize(new Dimension(78, 20)); + jButtonFdfBrowse.addActionListener(new AbstractAction(){ /** * */ @@ -1069,34 +1108,170 @@ public class FpdFlash extends IInternalFrame { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub - JFileChooser chooser = new JFileChooser(); + String wsDir = System.getenv("WORKSPACE"); + JFileChooser chooser = new JFileChooser(wsDir); chooser.setMultiSelectionEnabled(false); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int retval = chooser.showOpenDialog(frame); if (retval == JFileChooser.APPROVE_OPTION) { File theFile = chooser.getSelectedFile(); - jTextField3.setText(theFile.getPath()); + String filePath = theFile.getPath(); + if (!filePath.startsWith(wsDir)) { + JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE."); + return; + } + jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/')); + ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); + docConsole.setSaved(false); + initFvInFdfTable(filePath); } } }); } - return jButton5; + return jButtonFdfBrowse; + } + + private void initFvAttributes () { + if (ffc.getFvImagesFvImageCount("Attributes") == 0 && ffc.getFvImagesFvImageCount("Components") == 0) { + return; + } + String[][] saa = new String[ffc.getFvImagesFvImageCount("Attributes")][2]; + ffc.getFvImagesFvImages(saa, "Attributes"); + + int i = 0; + while (i < saa.length) { + fvImageParaTableModel.addRow(saa[i]); + ++i; + } + + saa = new String[ffc.getFvImagesFvImageCount("Components")][2]; + ffc.getFvImagesFvImages(saa, "Components"); + i = 0; + while (i < saa.length) { + fvImageParaTableModel.addRow(saa[i]); + ++i; + } + + saa = new String[ffc.getFvImagesNameValueCount()][2]; + ffc.getFvImagesNameValues(saa); + for (int m = 0; m < saa.length; ++m) { + fvPropertyTableModel.addRow(saa[m]); + } + } + + private void initFvAdditionalTable() { + Vector vFvNames = new Vector(); + ffc.getFvImagesFvImageFvImageNames(vFvNames); + for (int i = 0; i < vFvNames.size(); ++i) { + String fvName = vFvNames.get(i); + if (fvNameExists(fvName)) { + continue; + } + fvAdditionalTableModel.addRow(getBasicFvInfo(fvName)); + addTabForFv(new FvInfoFromFdf(fvName, "", "")); + } } + private void initFvInFdfTable(String fdfPath){ + Vector vFvInfo = new Vector(); + getFvInfoFromFdf(fdfPath, vFvInfo); + getFlashInfoFromFdf (fdfPath); + if (!erasePolarity.equals("1") && !erasePolarity.equals("0")) { + JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid Erase Polarity."); + } + else { + ffc.setTypedFvImageNameValue("Attributes", "EFI_ERASE_POLARITY", erasePolarity); + } + + // BugBug: assume all blocks have same size; + + String blkSize = defaultBlkSize; + if (vBlockSize.size() > 0) { + blkSize = vBlockSize.get(0); + if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) { + JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid FV block size. Default size 0x10000 will be used."); + blkSize = defaultBlkSize; + } + } + determinedFvBlockSize = blkSize; + + getFvInFdfTableModel().setRowCount(0); + for (int j = 0; j < vFvInfo.size(); ++j) { + FvInfoFromFdf fvInfo = vFvInfo.get(j); + String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()}; + // if FV addtional table contains the same FV from fdf file, remove that row. + for (int k = 0; k < jTableFvAdditional.getRowCount(); ++k) { + if (fvAdditionalTableModel.getValueAt(k, 0).equals(row[0])) { + fvAdditionalTableModel.removeRow(k); + } + } + getFvInFdfTableModel().addRow(row); + try { + int blockSize = Integer.decode(blkSize); + int fvSize = Integer.decode(row[1]); + int numBlocks = fvSize/blockSize; + HashMap mOptions = new HashMap(); + // if no options for this FV before, generate a new options entry for this FV. + if (ffc.getFvImagesFvImageWithName(row[0], "Options") == null) { + + mOptions.put("EFI_BLOCK_SIZE", blkSize); + mOptions.put("EFI_NUM_BLOCKS", numBlocks+""); + mOptions.put("EFI_FILE_NAME", row[2]); + ffc.genFvImagesFvImage(new String[]{row[0]}, "Options", mOptions); + memModified = true; + } + else { + ffc.getFvImagesFvImageOptions(row[0], mOptions); + if (mOptions.get("EFI_BLOCK_SIZE") == null || !mOptions.get("EFI_BLOCK_SIZE").equalsIgnoreCase(blkSize)) { + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_BLOCK_SIZE", blkSize); + memModified = true; + } + if (mOptions.get("EFI_NUM_BLOCKS") == null || Integer.decode(mOptions.get("EFI_NUM_BLOCKS")) != numBlocks) { + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_NUM_BLOCKS", numBlocks + ""); + memModified = true; + } + if (mOptions.get("EFI_FILE_NAME") == null || !mOptions.get("EFI_FILE_NAME").equals(row[2])) { + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_FILE_NAME", row[2]); + memModified = true; + } + + } + } + catch (NumberFormatException e){ + JOptionPane.showMessageDialog(frame, e.getMessage()); + } + } + + for (int k = 0; k < vFvInfo.size(); ++k) { + FvInfoFromFdf fvInfo = vFvInfo.get(k); + addTabForFv(fvInfo); + } + + } + + private void addTabForFv (FvInfoFromFdf fvInfo) { + String fvName = fvInfo.getFvName(); + String outputFile = fvInfo.getEfiFileName(); + int index = jTabbedPane.indexOfTab(fvName); + if (index >= startIndexOfDynamicTab) { + return; + } + jTabbedPane.addTab(fvName, null, new ModuleOrderPane(fvName, outputFile), null); + } /** * This method initializes jTextField4 * * @return javax.swing.JTextField */ - private JTextField getJTextField4() { - if (jTextField4 == null) { - jTextField4 = new JTextField(); - jTextField4.setEnabled(true); - jTextField4.setPreferredSize(new Dimension(100, 20)); + private JTextField getJTextFieldFvImageOptName() { + if (jTextFieldFvImageOptName == null) { + jTextFieldFvImageOptName = new JTextField(); + jTextFieldFvImageOptName.setEnabled(true); + jTextFieldFvImageOptName.setPreferredSize(new Dimension(100, 20)); } - return jTextField4; + return jTextFieldFvImageOptName; } /** @@ -1104,13 +1279,13 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTextField */ - private JTextField getJTextField5() { - if (jTextField5 == null) { - jTextField5 = new JTextField(); - jTextField5.setEnabled(true); - jTextField5.setPreferredSize(new Dimension(100, 20)); + private JTextField getJTextFieldFvImageOptValue() { + if (jTextFieldFvImageOptValue == null) { + jTextFieldFvImageOptValue = new JTextField(); + jTextFieldFvImageOptValue.setEnabled(true); + jTextFieldFvImageOptValue.setPreferredSize(new Dimension(100, 20)); } - return jTextField5; + return jTextFieldFvImageOptValue; } /** @@ -1118,14 +1293,14 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JPanel */ - private JPanel getJPanel8() { - if (jPanel8 == null) { - jPanel8 = new JPanel(); - jPanel8.setPreferredSize(new Dimension(80, 55)); - jPanel8.add(getJButton7(), null); - jPanel8.add(getJButton8(), null); + private JPanel getJPanelFvImageOptsButtonGroup() { + if (jPanelFvImageOptsButtonGroup == null) { + jPanelFvImageOptsButtonGroup = new JPanel(); + jPanelFvImageOptsButtonGroup.setPreferredSize(new Dimension(80, 55)); + jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptAdd(), null); + jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptDel(), null); } - return jPanel8; + return jPanelFvImageOptsButtonGroup; } /** @@ -1133,27 +1308,45 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton7() { - if (jButton7 == null) { - jButton7 = new JButton(); - jButton7.setEnabled(true); - jButton7.setText("Add"); - jButton7.setPreferredSize(new Dimension(80, 20)); - jButton7.addActionListener(new AbstractAction() { + private JButton getJButtonFvImageOptAdd() { + if (jButtonFvImageOptAdd == null) { + jButtonFvImageOptAdd = new JButton(); + jButtonFvImageOptAdd.setEnabled(true); + jButtonFvImageOptAdd.setText("Add"); + jButtonFvImageOptAdd.setPreferredSize(new Dimension(80, 20)); + jButtonFvImageOptAdd.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { - if (jTextField4.getText().length() > 0 && jTextField5.getText().length() > 0){ - String[] row = {jTextField4.getText(), jTextField5.getText()}; + if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){ + int selectedRow = jTableFvInfo.getSelectedRow(); + if (selectedRow < 0) { + return; + } + + String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+""; + String type = jTableFvInfo.getValueAt(selectedRow, 1)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type); + String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()}; + + if (fvImagePos < 0) { + return; + } + else { + //append options to FvImage. + ffc.setFvImagesFvImageNameValue(fvImagePos, row[0], row[1]); + } + docConsole.setSaved(false); fvOptionTableModel.addRow(row); + jTableFvImageOpts.changeSelection(jTableFvImageOpts.getRowCount() - 1, 0, false, false); } } }); } - return jButton7; + return jButtonFvImageOptAdd; } /** @@ -1161,26 +1354,41 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton8() { - if (jButton8 == null) { - jButton8 = new JButton(); - jButton8.setEnabled(true); - jButton8.setText("Delete"); - jButton8.setPreferredSize(new Dimension(80, 20)); - jButton8.addActionListener(new AbstractAction() { + private JButton getJButtonFvImageOptDel() { + if (jButtonFvImageOptDel == null) { + jButtonFvImageOptDel = new JButton(); + jButtonFvImageOptDel.setEnabled(true); + jButtonFvImageOptDel.setText("Delete"); + jButtonFvImageOptDel.setPreferredSize(new Dimension(80, 20)); + jButtonFvImageOptDel.addActionListener(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { - if (jTable3.getSelectedRow() >= 0){ - fvOptionTableModel.removeRow(jTable.getSelectedRow()); + if (jTableFvImageOpts.getSelectedRow() >= 0){ + int selectedRow = jTableFvInfo.getSelectedRow(); + if (selectedRow < 0) { + return; + } + + String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+""; + String type = jTableFvInfo.getValueAt(selectedRow, 1)+""; + int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type); + if (fvImagePos < 0) { + return; + } + + String optName = fvOptionTableModel.getValueAt(jTableFvImageOpts.getSelectedRow(), 0)+""; + ffc.removeFvImageNameValue(fvImagePos, optName); + docConsole.setSaved(false); + fvOptionTableModel.removeRow(jTableFvImageOpts.getSelectedRow()); } } }); } - return jButton8; + return jButtonFvImageOptDel; } /** @@ -1191,8 +1399,8 @@ public class FpdFlash extends IInternalFrame { private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); - jScrollPane.setPreferredSize(new java.awt.Dimension(350,80)); - jScrollPane.setViewportView(getJTable3()); + jScrollPane.setPreferredSize(new java.awt.Dimension(350,100)); + jScrollPane.setViewportView(getJTableFvImageOpts()); } return jScrollPane; } @@ -1202,18 +1410,18 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JTable */ - private JTable getJTable3() { - if (jTable3 == null) { - fvOptionTableModel = new DefaultTableModel(); + private JTable getJTableFvImageOpts() { + if (jTableFvImageOpts == null) { + fvOptionTableModel = new IDefaultTableModel(); fvOptionTableModel.addColumn("Name"); fvOptionTableModel.addColumn("Value"); - jTable3 = new JTable(fvOptionTableModel); + jTableFvImageOpts = new JTable(fvOptionTableModel); - jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - jTable3.setRowHeight(20); + jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + jTableFvImageOpts.setRowHeight(20); } - return jTable3; + return jTableFvImageOpts; } /** @@ -1221,20 +1429,21 @@ public class FpdFlash extends IInternalFrame { * * @return javax.swing.JButton */ - private JButton getJButton9() { - if (jButton9 == null) { - jButton9 = new JButton(); - jButton9.setPreferredSize(new Dimension(120, 20)); - jButton9.setActionCommand("Update"); - jButton9.setText("Update FV"); - jButton9.addActionListener(new java.awt.event.ActionListener() { + private JButton getJButtonUpdateFvImage() { + if (jButtonUpdateFvImage == null) { + jButtonUpdateFvImage = new JButton(); + jButtonUpdateFvImage.setPreferredSize(new java.awt.Dimension(150,20)); + jButtonUpdateFvImage.setActionCommand("Update"); + jButtonUpdateFvImage.setText("Update FV Attributes"); + jButtonUpdateFvImage.setVisible(false); + jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { - int row = jTable2.getSelectedRow(); - if (jTable2.isEditing()) { - jTable2.getCellEditor().stopCellEditing(); + int row = jTableFvInfo.getSelectedRow(); + if (jTableFvInfo.isEditing()) { + jTableFvInfo.getCellEditor().stopCellEditing(); } - if (jTable3.isEditing()) { - jTable3.getCellEditor().stopCellEditing(); + if (jTableFvImageOpts.isEditing()) { + jTableFvImageOpts.getCellEditor().stopCellEditing(); } //ToDo Check data validity before update @@ -1250,97 +1459,1658 @@ public class FpdFlash extends IInternalFrame { } }); } - return jButton9; + return jButtonUpdateFvImage; } /** - * @param args + * This method initializes jPanelFdfN + * + * @return javax.swing.JPanel */ - public static void main(String[] args) { - // TODO Auto-generated method stub - new FpdFlash().setVisible(true); + private JPanel getJPanelFdfN() { + if (jPanelFdfN == null) { + jPanelFdfN = new JPanel(); + jPanelFdfN.add(getJCheckBoxFdf(), null); + jPanelFdfN.add(getJTextFieldFdf(), null); + jPanelFdfN.add(getJButtonFdfBrowse(), null); + } + return jPanelFdfN; } /** - * This method initializes this - * - * @return void + * This method initializes jPanelFdfS + * + * @return javax.swing.JPanel */ - private void initialize() { - this.setSize(518, 650); - this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); - this.setContentPane(getJContentPane()); - this.setTitle("FPD Flash Definitions"); - this.addInternalFrameListener(new InternalFrameAdapter(){ - public void internalFrameDeactivated(InternalFrameEvent e){ - if (jTable.isEditing()) { - jTable.getCellEditor().stopCellEditing(); - } - if (jTable1.isEditing()) { - jTable1.getCellEditor().stopCellEditing(); - } - if (jTable2.isEditing()) { - jTable2.getCellEditor().stopCellEditing(); - } - } - }); + private JPanel getJPanelFdfS() { + if (jPanelFdfS == null) { + FlowLayout flowLayout4 = new FlowLayout(); + flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelFdfS = new JPanel(); + jPanelFdfS.setLayout(flowLayout4); + jPanelFdfS.add(getJButtonAddFv(), null); + jPanelFdfS.add(getJButtonDelFv(), null); + jPanelFdfS.add(getJButtonAddFvOptions(), null); + } + return jPanelFdfS; } - private void init(FpdFileContents ffc) { - if (ffc.getFvImagesFvImageCount() == 0) { - return; - } - String[][] saa = new String[ffc.getFvImagesFvImageCount()][2]; -// ArrayList> options = new ArrayList>(ffc.getFvImagesFvImageCount()); -// -// for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){ -// options.add(new LinkedHashMap()); -// } - ffc.getFvImagesFvImages(saa); - - - int i = 0; - while (i < saa.length) { - - fvImageParaTableModel.addRow(saa[i]); - ++i; + /** + * This method initializes jSplitPaneFdfC + * + * @return javax.swing.JSplitPane + */ + private JSplitPane getJSplitPaneFdfC() { + if (jSplitPaneFdfC == null) { + jSplitPaneFdfC = new JSplitPane(); + jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); + jSplitPaneFdfC.setDividerSize(5); + jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop()); + jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom()); + jSplitPaneFdfC.setDividerLocation(280); } + return jSplitPaneFdfC; } - - private void getOptionNameValue(Map m){ - for (int i = 0; i < jTable3.getRowCount(); ++i) { - m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+""); + + /** + * This method initializes jPanelFdfCTop + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTop() { + if (jPanelFdfCTop == null) { + jPanelFdfCTop = new JPanel(); + jPanelFdfCTop.setLayout(new BorderLayout()); + jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH); + jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH); + jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER); } + return jPanelFdfCTop; } + /** - * This method initializes jContentPane - * - * @return javax.swing.JPanel + * This method initializes jPanelFdfCBottom + * + * @return javax.swing.JPanel */ - private JPanel getJContentPane() { - if (jContentPane == null) { - jContentPane = new JPanel(); - jContentPane.setLayout(new BorderLayout()); - jContentPane.add(getJPanel(), java.awt.BorderLayout.EAST); - jContentPane.add(getJPanel1(), java.awt.BorderLayout.SOUTH); - jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST); - jContentPane.add(getJPanel3(), java.awt.BorderLayout.NORTH); - jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER); + private JPanel getJPanelFdfCBottom() { + if (jPanelFdfCBottom == null) { + jPanelFdfCBottom = new JPanel(); + jPanelFdfCBottom.setLayout(new BorderLayout()); + jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH); + jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER); } - return jContentPane; + return jPanelFdfCBottom; } -} // @jve:decl-index=0:visual-constraint="10,10" + /** + * This method initializes jPanelFdfCTopN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopN() { + if (jPanelFdfCTopN == null) { + jLabelFvInFdf = new JLabel(); + jLabelFvInFdf.setText("FVs in Flash Definition File"); + jPanelFdfCTopN = new JPanel(); + jPanelFdfCTopN.add(jLabelFvInFdf, null); + } + return jPanelFdfCTopN; + } -class ImageParaTableModel extends DefaultTableModel { + /** + * This method initializes jPanelFdfCTopS + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopS() { + if (jPanelFdfCTopS == null) { + FlowLayout flowLayout1 = new FlowLayout(); + flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelFdfCTopS = new JPanel(); + jPanelFdfCTopS.setLayout(flowLayout1); + jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null); + } + return jPanelFdfCTopS; + } - private static final long serialVersionUID = 1L; - - public boolean isCellEditable(int row, int col) { - if (getValueAt(row, 1).equals("ImageName") && col >=1) { - return false; + /** + * This method initializes jPanelFdfCTopC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopC() { + if (jPanelFdfCTopC == null) { + jPanelFdfCTopC = new JPanel(); + jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null); } - return true; + return jPanelFdfCTopC; } -} + /** + * This method initializes jPanelFdfCBottomN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCBottomN() { + if (jPanelFdfCBottomN == null) { + jLabelFvAdditional = new JLabel(); + jLabelFvAdditional.setText("Additional FVs"); + jPanelFdfCBottomN = new JPanel(); + jPanelFdfCBottomN.add(jLabelFvAdditional, null); + } + return jPanelFdfCBottomN; + } + + /** + * This method initializes jPanelFdfCBottomC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCBottomC() { + if (jPanelFdfCBottomC == null) { + jPanelFdfCBottomC = new JPanel(); + jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null); + } + return jPanelFdfCBottomC; + } + + /** + * This method initializes jScrollPaneFvInFdf + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFvInFdf() { + if (jScrollPaneFvInFdf == null) { + jScrollPaneFvInFdf = new JScrollPane(); + jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200)); + jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf()); + } + return jScrollPaneFvInFdf; + } + + /** + * This method initializes jTableFvInFdf + * + * @return javax.swing.JTable + */ + private JTable getJTableFvInFdf() { + if (jTableFvInFdf == null) { + jTableFvInFdf = new JTable(); + jTableFvInFdf.setRowHeight(20); + jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + jTableFvInFdf.setModel(getFvInFdfTableModel()); + } + return jTableFvInFdf; + } + + /** + * This method initializes fvInFdfTableModel + * + * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel + */ + private IDefaultTableModel getFvInFdfTableModel() { + if (fvInFdfTableModel == null) { + fvInFdfTableModel = new IDefaultTableModel(); + fvInFdfTableModel.addColumn("FV Name"); + fvInFdfTableModel.addColumn("Size"); + fvInFdfTableModel.addColumn("Corresponding File Name"); + } + return fvInFdfTableModel; + } + + /** + * This method initializes jButtonFvInFdfOptions + * + * @return javax.swing.JButton + */ + private JButton getJButtonFvInFdfOptions() { + if (jButtonFvInFdfOptions == null) { + jButtonFvInFdfOptions = new JButton(); + jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonFvInFdfOptions.setEnabled(true); + jButtonFvInFdfOptions.setText("Options"); + jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRow = jTableFvInFdf.getSelectedRow(); + if (selectedRow < 0) { + return; + } + String fvName = jTableFvInFdf.getValueAt(selectedRow, 0)+""; + if (fvName.length() == 0) { + return; + } + DefaultTableModel dtm = getFvInFdfOptTableModel(); + new FpdFvOptions(fvName, dtm, ffc, docConsole); + } + }); + } + return jButtonFvInFdfOptions; + } + + private DefaultTableModel getFvInFdfOptTableModel() { + if (fvInFdfOptTableModel == null) { + fvInFdfOptTableModel = new FvOptsTableModel(); + fvInFdfOptTableModel.addColumn("Name"); + fvInFdfOptTableModel.addColumn("Value"); + Vector v = new Vector(); + v.add("EFI_BLOCK_SIZE"); + v.add("EFI_NUM_BLOCKS"); + v.add("EFI_FILE_NAME"); + fvInFdfOptTableModel.setVKeyWords(v); + fvInFdfOptTableModel.setVNonEditableName(v); + } + return fvInFdfOptTableModel; + } + + private DefaultTableModel getFvAdditionalOptTableModel() { + if (fvAdditionalOptTableModel == null) { + fvAdditionalOptTableModel = new FvOptsTableModel(); + fvAdditionalOptTableModel.addColumn("Name"); + fvAdditionalOptTableModel.addColumn("Value"); + Vector v = new Vector(); + v.add("EFI_BLOCK_SIZE"); + v.add("EFI_NUM_BLOCKS"); + v.add("EFI_FILE_NAME"); + fvAdditionalOptTableModel.setVNonEditableName(v); + } + return fvAdditionalOptTableModel; + } + + /** + * This method initializes jScrollPaneFvAdditional + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFvAdditional() { + if (jScrollPaneFvAdditional == null) { + jScrollPaneFvAdditional = new JScrollPane(); + jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200)); + jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional()); + } + return jScrollPaneFvAdditional; + } + + /** + * This method initializes jTableFvAdditional + * + * @return javax.swing.JTable + */ + private JTable getJTableFvAdditional() { + if (jTableFvAdditional == null) { + jTableFvAdditional = new JTable(); + jTableFvAdditional.setRowHeight(20); + jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + jTableFvAdditional.setModel(getFvAdditionalTableModel()); + + jTableFvAdditional.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + if (e.getValueIsAdjusting()) { + return; + } + ListSelectionModel lsm = (ListSelectionModel) e.getSource(); + if (lsm.isSelectionEmpty()) { + return; + } else { + selectedRowInFvAdditionalTable = lsm.getMinSelectionIndex(); + oldFvName = jTableFvAdditional.getValueAt(selectedRowInFvAdditionalTable, 0)+""; + } + } + }); + + jTableFvAdditional.getModel().addTableModelListener(new TableModelListener() { + public void tableChanged(TableModelEvent arg0) { + // TODO Auto-generated method stub + int row = arg0.getFirstRow(); + int col = arg0.getColumn(); + TableModel m = (TableModel) arg0.getSource(); + + if (arg0.getType() == TableModelEvent.UPDATE) { + if (col == 0) { + String newFvName = m.getValueAt(row, 0) + ""; + if (newFvName.equals(oldFvName)) { + return; + } + if (fvNameExists(newFvName)) { + JOptionPane.showMessageDialog(frame, "This FV already exists. Please choose another FV name."); + m.setValueAt(oldFvName, row, 0); + return; + } + + tabIndexForFv = jTabbedPane.indexOfTab(oldFvName); + if (tabIndexForFv >= startIndexOfDynamicTab) { + jTabbedPane.setTitleAt(tabIndexForFv, newFvName); + // change FvName in UserExtensions + ffc.updateBuildOptionsUserExtensions(oldFvName, newFvName); + // change FvBinding in ModuleSA + ffc.appendFvBindingFor(oldFvName, newFvName); + ffc.removeFvBindingAll(oldFvName); + // change FvImageNames in Flash + ffc.updateFvImageNameAll(oldFvName, newFvName); + + } else { + jTabbedPane.addTab(newFvName, new ModuleOrderPane(newFvName, "")); + // Add FvImageNames in Flash + String[] fvNames = {newFvName}; + ffc.addFvImageFvImageNames(fvNames); + } + docConsole.setSaved(false); + oldFvName = newFvName; + } + + if (col == 1 && !sizeFromOptionDlg) { + String fvSize = m.getValueAt(row, col) + ""; + if (!DataValidation.isInt(fvSize) && !DataValidation.isHexDoubleWordDataType(fvSize)) { + JOptionPane.showMessageDialog(frame, "FV size should be Integer or Hex format."); + return; + } + HashMap mFvOpts = new HashMap(); + ffc.getFvImagesFvImageOptions(oldFvName, mFvOpts); + String blkSize = mFvOpts.get("EFI_BLOCK_SIZE"); + if (blkSize == null) { + if (determinedFvBlockSize != null) { + blkSize = determinedFvBlockSize; + } + else { + blkSize = defaultBlkSize; + } + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", blkSize); + int fs = Integer.decode(fvSize); + int bs = Integer.decode(blkSize); + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+""); + docConsole.setSaved(false); + } + else { + if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) { + int retVal = JOptionPane.showConfirmDialog(frame, "Confirm", "FPD file contains error block size format. Would you like to replace it with a default value?", JOptionPane.YES_NO_OPTION); + if (retVal == JOptionPane.YES_OPTION) { + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", defaultBlkSize); + int fs = Integer.decode(fvSize); + int bs = Integer.decode(defaultBlkSize); + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+""); + docConsole.setSaved(false); + return; + } + else { + return; + } + + } + int fs = Integer.decode(fvSize); + int bs = Integer.decode(blkSize); + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+""); + docConsole.setSaved(false); + } + } + + if (col == 2 && !fileFromOptionDlg) { + ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_FILE_NAME", m.getValueAt(row, col)+""); + docConsole.setSaved(false); + } + + } + } + }); + } + return jTableFvAdditional; + } + + private boolean fvNameExistsInFvInFdfTable (String fvName) { + for (int i = 0; i < jTableFvInFdf.getRowCount(); ++i) { + if (fvInFdfTableModel.getValueAt(i, 0).equals(fvName)) { + return true; + } + } + return false; + } + + private boolean fvNameExists (String fvName) { + if (fvNameExistsInFvInFdfTable(fvName)) { + return true; + } + + for (int j = 0; j < jTableFvAdditional.getRowCount(); ++j) { + if (fvAdditionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) { + return true; + } + } + return false; + } + + /** + * This method initializes fvAdditionalTableModel + * + * @return javax.swing.table.DefaultTableModel + */ + private DefaultTableModel getFvAdditionalTableModel() { + if (fvAdditionalTableModel == null) { + fvAdditionalTableModel = new DefaultTableModel(); + fvAdditionalTableModel.addColumn("FV Name"); + fvAdditionalTableModel.addColumn("Size"); + fvAdditionalTableModel.addColumn("Corresponding File Name"); + } + return fvAdditionalTableModel; + } + + /** + * This method initializes jButtonAddFv + * + * @return javax.swing.JButton + */ + private JButton getJButtonAddFv() { + if (jButtonAddFv == null) { + jButtonAddFv = new JButton(); + jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonAddFv.setEnabled(true); + jButtonAddFv.setText("New"); + jButtonAddFv.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + if (jTableFvAdditional.isEditing()) { + jTableFvAdditional.getCellEditor().stopCellEditing(); + } + String[] row = {"", "", ""}; + fvAdditionalTableModel.addRow(row); + } + }); + } + return jButtonAddFv; + } + + /** + * This method initializes jButtonDelFv + * + * @return javax.swing.JButton + */ + private JButton getJButtonDelFv() { + if (jButtonDelFv == null) { + jButtonDelFv = new JButton(); + jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonDelFv.setEnabled(true); + jButtonDelFv.setText("Delete"); + jButtonDelFv.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + //delete row in FvAdditional table. + int selectedRow = jTableFvAdditional.getSelectedRow(); + if (selectedRow < 0) { + return; + } + String fvName = fvAdditionalTableModel.getValueAt(selectedRow, 0) + ""; + fvAdditionalTableModel.removeRow(selectedRow); + // + //delete tab with selected FV name. + // + jTabbedPane.removeTabAt(jTabbedPane.indexOfTab(fvName)); + //delete FV Name from FvImages element. + ffc.updateFvImageNameAll(fvName, null); + //delete FvBinding from ModuleSA. + ffc.removeFvBindingAll(fvName); + docConsole.setSaved(false); + } + }); + } + return jButtonDelFv; + } + + /** + * This method initializes jButtonAddFvOptions + * + * @return javax.swing.JButton + */ + private JButton getJButtonAddFvOptions() { + if (jButtonAddFvOptions == null) { + jButtonAddFvOptions = new JButton(); + jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonAddFvOptions.setEnabled(true); + jButtonAddFvOptions.setText("Options"); + jButtonAddFvOptions.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRow = jTableFvAdditional.getSelectedRow(); + if (selectedRow < 0) { + return; + } + String fvName = jTableFvAdditional.getValueAt(selectedRow, 0)+""; + String oldFvSize = jTableFvAdditional.getValueAt(selectedRow, 1)+""; + String oldFileName = jTableFvAdditional.getValueAt(selectedRow, 2)+""; + if (fvName.length() == 0) { + return; + } + DefaultTableModel dtm = getFvAdditionalOptTableModel(); + new FpdFvOptions(fvName, dtm, ffc, docConsole); + + String[] updatedFvInfo = getBasicFvInfo (fvName); + if (!oldFvSize.equalsIgnoreCase(updatedFvInfo[1])) { + sizeFromOptionDlg = true; + jTableFvAdditional.setValueAt(updatedFvInfo[1], selectedRow, 1); + sizeFromOptionDlg = false; + } + if (!oldFileName.equals(updatedFvInfo[2])) { + fileFromOptionDlg = true; + jTableFvAdditional.setValueAt(updatedFvInfo[2], selectedRow, 2); + fileFromOptionDlg = false; + } + } + }); + } + return jButtonAddFvOptions; + } + + private String[] getBasicFvInfo (String fvName) { + HashMap mFvOpts = new HashMap(); + ffc.getFvImagesFvImageOptions(fvName, mFvOpts); + String bSize = ""; + String numBlks = ""; + String fvSize = ""; + String fvFile = ""; + if (mFvOpts.get("EFI_FILE_NAME") != null) { + fvFile = mFvOpts.get("EFI_FILE_NAME"); + } + if (mFvOpts.get("EFI_BLOCK_SIZE") != null && mFvOpts.get("EFI_NUM_BLOCKS") != null) { + bSize = mFvOpts.get("EFI_BLOCK_SIZE"); + numBlks = mFvOpts.get("EFI_NUM_BLOCKS"); + boolean blockSizeWellFormat = true; + boolean numOfBlockWellFormat = true; + if (!DataValidation.isHexDoubleWordDataType(bSize) && !DataValidation.isInt(bSize)) { + blockSizeWellFormat = false; + JOptionPane.showMessageDialog(frame, fvName + " block size bad format."); + } + if (!DataValidation.isHexDoubleWordDataType(numBlks) && !DataValidation.isInt(numBlks)) { + numOfBlockWellFormat = false; + JOptionPane.showMessageDialog(frame, fvName + " number of blocks bad format."); + } + if (blockSizeWellFormat && numOfBlockWellFormat) { + int size = Integer.decode(bSize); + int num = Integer.decode(numBlks); + fvSize = "0x" + Integer.toHexString(size*num); + } + } + + return new String[]{fvName, fvSize, fvFile}; + + } + + /** + * This method initializes jPanelBgFvName + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelBgFvName() { + if (jPanelBgFvName == null) { + jPanelBgFvName = new JPanel(); + jPanelBgFvName.setPreferredSize(new java.awt.Dimension(80,55)); + jPanelBgFvName.add(getJButtonFvNameAdd(), null); + jPanelBgFvName.add(getJButtonFvNameDel(), null); + } + return jPanelBgFvName; + } + + /** + * This method initializes jPanelBgFvImage + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelBgFvImage() { + if (jPanelBgFvImage == null) { + jPanelBgFvImage = new JPanel(); + jPanelBgFvImage.setPreferredSize(new java.awt.Dimension(150,100)); + jPanelBgFvImage.add(getJButtonAddFvImage(), null); + jPanelBgFvImage.add(getJButtonDelFvImage(), null); + jPanelBgFvImage.add(getJButtonUpdateFvImage(), null); + } + return jPanelBgFvImage; + } + + /** + * This method initializes jPanelW + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelW() { + if (jPanelW == null) { + jPanelW = new JPanel(); + jPanelW.add(getJPanelBgFvImage(), null); + } + return jPanelW; + } + + /** + * @param args + */ + public static void main(String[] args) { + // TODO Auto-generated method stub + new FpdFlash().setVisible(true); + } + + /** + * This method initializes this + * + * @return void + */ + private void initialize() { + this.setSize(660, 650); + this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + this.setContentPane(getJContentPane()); + this.setTitle("FPD Flash Definitions"); + this.addInternalFrameListener(new InternalFrameAdapter(){ + public void internalFrameDeactivated(InternalFrameEvent e){ + if (jTableFvProp.isEditing()) { + jTableFvProp.getCellEditor().stopCellEditing(); + } + if (jTableFvImageNames.isEditing()) { + jTableFvImageNames.getCellEditor().stopCellEditing(); + } + if (jTableFvInfo.isEditing()) { + jTableFvInfo.getCellEditor().stopCellEditing(); + } + if (jTableFvAdditional.isEditing()) { + jTableFvAdditional.getCellEditor().stopCellEditing(); + } + } + }); + } + + private void init(FpdFileContents ffc) { + initFvAttributes(); + + jTextFieldFdf.setText(""); + String fdfFile = ffc.getFlashDefinitionFile(); + if (fdfFile != null && fdfFile.length() > 0) { + jTextFieldFdf.setText(fdfFile); + String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile; + initFvInFdfTable(fdfPath); + } + + initFvAdditionalTable(); + } + + private void getOptionNameValue(Map m){ + for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) { + m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+""); + } + } + /** + * This method initializes jContentPane + * + * @return javax.swing.JPanel + */ + private JPanel getJContentPane() { + if (jContentPane == null) { + jContentPane = new JPanel(); + jContentPane.setLayout(new BorderLayout()); + jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST); + jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH); + jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST); + jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH); + jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER); + } + return jContentPane; + } + + private void getFlashInfoFromFdf (String fdfPath) { + File fdf = new File(fdfPath); + if (!fdf.exists()) { + return; + } + int lines = 0; + + try { + FileReader reader = new FileReader(fdf); + BufferedReader in = new BufferedReader(reader); + String str; + + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + // + // ErasePolarity + // + if (str.startsWith("ErasePolarity")) { + erasePolarity = str.substring(str.indexOf("=") + 1, str.lastIndexOf(",")).trim(); + } + // + // dig into Block section. + // + if (str.startsWith("Block") && str.endsWith("}")) { + String[] blockSec = str.split(","); + String nv = blockSec[1].trim(); + String[] sizeSec = nv.split("="); + vBlockSize.add(sizeSec[1].trim()); + } + + } + + reader.close(); + in.close(); + } + catch (Exception e) { + + } + } + + private void getFvInfoFromFdf(String fdfPath, Vector vFvInfo) { + File fdf = new File(fdfPath); + if (!fdf.exists()) { + return; + } + int lines = 0; + + try { + FileReader reader = new FileReader(fdf); + BufferedReader in = new BufferedReader(reader); + String str; + + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + // + // dig into Region {} section, create FvInfoFromFdf object for it. + // + if (str.startsWith("Region") && str.endsWith("{")) { + FvInfoFromFdf fvInfo = new FvInfoFromFdf(); + boolean nameFound = false; + boolean sizeFound = false; + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + + if (str.startsWith("Name")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote)); + nameFound = true; + } + + if (str.startsWith("Size")) { + int equalIndex = str.indexOf("="); + int commaIndex = str.indexOf(","); + fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim()); + sizeFound = true; + } + + if (nameFound && sizeFound) { + break; + } + } + + vFvInfo.add(fvInfo); + } + // + // dig into File {} section, supply file name information to existing FvInfoFromFdf object. + // + if (str.startsWith("File")) { + boolean fileNameFound = false; + boolean fvFound = false; + String fileName = ""; + String fvName = ""; + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + + if (str.startsWith("Name")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fileName = str.substring(firstQuote + 1, lastQuote); + fileNameFound = true; + } + + if (str.startsWith("Region")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fvName = str.substring(firstQuote + 1, lastQuote); + fvFound = true; + } + + if (fileNameFound && fvFound) { + break; + } + } + + for (int i = 0; i listTableModInFvModuleSAInfo = null; +// private ArrayList listTableFpdModulesModuleSAInfo = null; + private String title = null; + private String outputFileName = null; + + public ModuleOrderPane(String tabTitle, String file) { + super(new BorderLayout()); + title = tabTitle; + outputFileName = file; +// listTableModInFvModuleSAInfo = new ArrayList(); +// listTableFpdModulesModuleSAInfo = new ArrayList(); + add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH); + add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH); + add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER); + showModulesInFv(title); + showAllModulesInPlatform(); + } + + private void showModulesInFv(String fvName) { + int size = ffc.getUserExtsIncModCount(fvName); + + if (size != -1) { + String[][] saa = new String[size][5]; + ffc.getUserExtsIncMods(fvName, saa); + + for (int i = 0; i < size; ++i) { + String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3]; + ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey); + String name = "N/A"; + if (mi != null) { + name = mi.getName(); + } + String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] }; + modInFvTableModel.addRow(row); + } + } + // + // From ModuleSAs, get module guids with FvBinding = fvName. + // + Vector vModuleSA = new Vector(); + ffc.getFrameworkModuleSAByFvBinding(fvName, vModuleSA); + // + // If BuildOptions->UserExtensions already contain these module info, + // no need to add them into table again. + // + Iterator iter = vModuleSA.iterator(); + while (iter.hasNext()){ + String[] sa = iter.next(); + if (!moduleInfoInTable (sa, modInFvTableModel)) { + String moduleKey = sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3]; + ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey); + String name = "N/A"; + if (mi != null) { + name = mi.getName(); + } + String[] row = { name, sa[0] , sa[1], sa[2] , sa[3], sa[4] }; + modInFvTableModel.addRow(row); + } + } + + } + + private void showAllModulesInPlatform() { + int size = ffc.getFrameworkModulesCount(); + String[][] saa = new String[size][5]; + ffc.getFrameworkModulesInfo(saa); + + for (int i = 0; i < size; ++i) { + if (moduleInfoInTable(saa[i], modInFvTableModel) || moduleInfoInTable(saa[i], fpdModTableModel)) { + continue; + } + String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3]; + ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey); + String name = "N/A"; + if (mi != null) { + name = mi.getName(); + } + String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] }; + fpdModTableModel.addRow(row); + } + + TableSorter sorter = (TableSorter)jTableFpdModules.getModel(); + sorter.setSortState(0, TableSorter.ASCENDING); + } + + + private boolean moduleInfoInTable (String[] moduleInfo, DefaultTableModel model) { + boolean matched = false; + int size = model.getDataVector().size(); + for (int i = 0; i < size; ++i) { + Vector rowData = (Vector)model.getDataVector().elementAt(i); + for (int j = 1; j < rowData.size(); ++j) { + if (rowData.elementAt(j) == null && moduleInfo[j-1] == null) { + matched = true; + } + else if (rowData.elementAt(j).equals("null") && moduleInfo[j-1] == null) { + matched = true; + } + else if (rowData.elementAt(j) == null && moduleInfo[j-1].equals("null")) { + matched = true; + } + else if (rowData.elementAt(j) != null && rowData.elementAt(j).toString().equalsIgnoreCase(moduleInfo[j-1])) { + matched = true; + } + else { + matched = false; + break; + } + } + + if (matched) { + return true; + } + + } + return false; + } + + + + /** + * This method initializes jPanelModOrderN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderN() { + if (jPanelModOrderN == null) { + jPanelModOrderN = new JPanel(); + } + return jPanelModOrderN; + } + + /** + * This method initializes jPanelModOrderS + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderS() { + if (jPanelModOrderS == null) { + FlowLayout flowLayout6 = new FlowLayout(); + flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelModOrderS = new JPanel(); + jPanelModOrderS.setLayout(flowLayout6); + jPanelModOrderS.add(getJButtonOk(), null); + jPanelModOrderS.add(getJButtonCancel(), null); + } + return jPanelModOrderS; + } + + /** + * This method initializes jPanelModOrderC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderC() { + if (jPanelModOrderC == null) { + jPanelModOrderC = new JPanel(); + jPanelModOrderC.add(getJScrollPaneModInFv(), null); + jPanelModOrderC.add(getJPanelController(), null); + jPanelModOrderC.add(getJScrollPaneFpdModules(), null); + } + return jPanelModOrderC; + } + + /** + * This method initializes jScrollPaneModInFv + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneModInFv() { + if (jScrollPaneModInFv == null) { + jScrollPaneModInFv = new JScrollPane(); + jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(200,500)); + jScrollPaneModInFv.setViewportView(getJTableModInFv()); + } + return jScrollPaneModInFv; + } + + /** + * This method initializes jTableModInFv + * + * @return javax.swing.JTable + */ + private JTable getJTableModInFv() { + if (jTableModInFv == null) { + modInFvTableModel = new IDefaultTableModel(); + + jTableModInFv = new JTable(modInFvTableModel){ + /** + * + */ + private static final long serialVersionUID = 4903583933542581721L; + + public String getToolTipText(MouseEvent e) { + String tip = null; + java.awt.Point p = e.getPoint(); + int rowIndex = rowAtPoint(p); +// int colIndex = columnAtPoint(p); +// int realColumnIndex = convertColumnIndexToModel(colIndex); + + TableModel model = getModel(); + String mg = (String) model.getValueAt(rowIndex, 1); + String mv = (String) model.getValueAt(rowIndex, 2); + String pg = (String) model.getValueAt(rowIndex, 3); + String pv = (String) model.getValueAt(rowIndex, 4); + String arch = (String) model.getValueAt(rowIndex, 5); + ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv); + if (mi != null) { + tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";"; + } + else { + tip = "No Module Path Information."; + } + + return tip; + } + + }; + modInFvTableModel.addColumn("Module Orders in FV"); + modInFvTableModel.addColumn("mg"); + modInFvTableModel.addColumn("mv"); + modInFvTableModel.addColumn("pg"); + modInFvTableModel.addColumn("pv"); + modInFvTableModel.addColumn("arch"); + + for (int i = 1; i < 6; ++i) { + jTableModInFv.removeColumn(jTableModInFv.getColumnModel().getColumn(jTableModInFv.getColumnCount()-1)); + } + + jTableModInFv.setRowHeight(20); + jTableModInFv.setShowGrid(false); + jTableModInFv.setAutoCreateColumnsFromModel(false); + jTableModInFv.addMouseListener(new MouseAdapter() { + + /* (non-Javadoc) + * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent) + */ + @Override + public void mouseClicked(MouseEvent arg0) { + if (arg0.getButton() == MouseEvent.BUTTON3) { + java.awt.Point p = arg0.getPoint(); + int rowIndex = jTableModInFv.rowAtPoint(p); + TableModel model = jTableModInFv.getModel(); + String mg = (String) model.getValueAt(rowIndex, 1); + String mv = (String) model.getValueAt(rowIndex, 2); + String pg = (String) model.getValueAt(rowIndex, 3); + String pv = (String) model.getValueAt(rowIndex, 4); + ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv); + String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv; + if (mi != null) { + details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv; + } + JOptionPane.showMessageDialog(frame, details); + } + } + + }); + } + return jTableModInFv; + } + + /** + * This method initializes jPanelController + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelController() { + if (jPanelController == null) { + FlowLayout flowLayout5 = new FlowLayout(); + flowLayout5.setVgap(50); + flowLayout5.setHgap(50); + jPanelController = new JPanel(); + jPanelController.setLayout(flowLayout5); + jPanelController.setPreferredSize(new java.awt.Dimension(150,500)); + jPanelController.add(getJButtonUp(), null); + jPanelController.add(getJButtonInsert(), null); + jPanelController.add(getJButtonRemove(), null); + jPanelController.add(getJButtonDown(), null); + } + return jPanelController; + } + + /** + * This method initializes jScrollPaneFpdModules + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFpdModules() { + if (jScrollPaneFpdModules == null) { + jScrollPaneFpdModules = new JScrollPane(); + jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(200,500)); + jScrollPaneFpdModules.setViewportView(getJTableFpdModules()); + } + return jScrollPaneFpdModules; + } + + /** + * This method initializes jTableFpdModules + * + * @return javax.swing.JTable + */ + private JTable getJTableFpdModules() { + if (jTableFpdModules == null) { + fpdModTableModel = new IDefaultTableModel(); + TableSorter sorter = new TableSorter(fpdModTableModel); + jTableFpdModules = new JTable(sorter){ + /** + * + */ + private static final long serialVersionUID = -4666296888377637808L; + + public String getToolTipText(MouseEvent e) { + String tip = null; + java.awt.Point p = e.getPoint(); + int rowIndex = rowAtPoint(p); +// int colIndex = columnAtPoint(p); +// int realColumnIndex = convertColumnIndexToModel(colIndex); + + TableModel model = getModel(); + String mg = (String) model.getValueAt(rowIndex, 1); + String mv = (String) model.getValueAt(rowIndex, 2); + String pg = (String) model.getValueAt(rowIndex, 3); + String pv = (String) model.getValueAt(rowIndex, 4); + String arch = (String) model.getValueAt(rowIndex, 5); + ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv); + if (mi != null) { + tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";"; + } + else { + tip = "No Module Path Information."; + } + + return tip; + } + + }; + + fpdModTableModel.addColumn("Modules in Platform"); + fpdModTableModel.addColumn("mg"); + fpdModTableModel.addColumn("mv"); + fpdModTableModel.addColumn("pg"); + fpdModTableModel.addColumn("pv"); + fpdModTableModel.addColumn("arch"); + + for (int i = 1; i < 6; ++i) { + jTableFpdModules.removeColumn(jTableFpdModules.getColumnModel().getColumn(jTableFpdModules.getColumnCount()-1)); + } + jTableFpdModules.setRowHeight(20); + jTableFpdModules.setShowGrid(false); + jTableFpdModules.setAutoCreateColumnsFromModel(false); + jTableFpdModules.addMouseListener(new MouseAdapter() { + + /* (non-Javadoc) + * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent) + */ + @Override + public void mouseClicked(MouseEvent arg0) { + if (arg0.getButton() == MouseEvent.BUTTON3) { + java.awt.Point p = arg0.getPoint(); + int rowIndex = jTableFpdModules.rowAtPoint(p); + TableModel model = jTableFpdModules.getModel(); + String mg = (String) model.getValueAt(rowIndex, 1); + String mv = (String) model.getValueAt(rowIndex, 2); + String pg = (String) model.getValueAt(rowIndex, 3); + String pv = (String) model.getValueAt(rowIndex, 4); + ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv); + String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv; + if (mi != null) { + details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv; + } + JOptionPane.showMessageDialog(frame, details); + } + } + + }); + + } + return jTableFpdModules; + } + + /** + * This method initializes jButtonUp + * + * @return javax.swing.JButton + */ + private JButton getJButtonUp() { + if (jButtonUp == null) { + jButtonUp = new JButton(); + jButtonUp.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14)); + jButtonUp.setText("^"); + jButtonUp.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRow = jTableModInFv.getSelectedRow(); + if (selectedRow <= 0) { + return; + } + modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1); + jTableModInFv.changeSelection(selectedRow - 1, 0, false, false); + } + }); + } + return jButtonUp; + } + + /** + * This method initializes jButtonInsert + * + * @return javax.swing.JButton + */ + private JButton getJButtonInsert() { + if (jButtonInsert == null) { + jButtonInsert = new JButton(); + jButtonInsert.setText("<"); + jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonInsert.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRowRight = jTableFpdModules.getSelectedRow(); + if (selectedRowRight < 0) { + return; + } + + int rowInModel = ((TableSorter)jTableFpdModules.getModel()).getModelRowIndex(selectedRowRight); + String name = fpdModTableModel.getValueAt(rowInModel, 0)+""; + String mg = fpdModTableModel.getValueAt(rowInModel, 1)+""; + String mv = fpdModTableModel.getValueAt(rowInModel, 2)+""; + String pg = fpdModTableModel.getValueAt(rowInModel, 3)+""; + String pv = fpdModTableModel.getValueAt(rowInModel, 4)+""; + String arch = fpdModTableModel.getValueAt(rowInModel, 5)+""; + String[] row = {name, mg, mv, pg, pv, arch}; + if (name.length() == 0 || name.equals("N/A")) { + return; + } + + int selectedRowLeft = jTableModInFv.getSelectedRow(); + if (selectedRowLeft < 0) { + modInFvTableModel.addRow(row); + jTableModInFv.changeSelection(jTableModInFv.getRowCount() - 1, 0, false, false); + } + else { + modInFvTableModel.insertRow(selectedRowLeft, row); + jTableModInFv.changeSelection(selectedRowLeft, 0, false, false); + } + fpdModTableModel.removeRow(rowInModel); + } + }); + } + return jButtonInsert; + } + + /** + * This method initializes jButtonRemove + * + * @return javax.swing.JButton + */ + private JButton getJButtonRemove() { + if (jButtonRemove == null) { + jButtonRemove = new JButton(); + jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonRemove.setText(">"); + jButtonRemove.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRowLeft = jTableModInFv.getSelectedRow(); + if (selectedRowLeft < 0) { + return; + } + + String name = modInFvTableModel.getValueAt(selectedRowLeft, 0)+""; + String mg = modInFvTableModel.getValueAt(selectedRowLeft, 1)+""; + String mv = modInFvTableModel.getValueAt(selectedRowLeft, 2)+""; + String pg = modInFvTableModel.getValueAt(selectedRowLeft, 3)+""; + String pv = modInFvTableModel.getValueAt(selectedRowLeft, 4)+""; + String arch = modInFvTableModel.getValueAt(selectedRowLeft, 5)+""; + String[] row = {name, mg, mv, pg, pv, arch}; + if (name.length() == 0 || name.equals("N/A")) { + return; + } + + fpdModTableModel.addRow(row); + int viewIndex = ((TableSorter) jTableFpdModules.getModel()).getViewIndexArray()[jTableFpdModules + .getRowCount() - 1]; + jTableFpdModules.changeSelection(viewIndex, 0, false, false); + modInFvTableModel.removeRow(selectedRowLeft); + } + }); + } + return jButtonRemove; + } + + /** + * This method initializes jButtonDown + * + * @return javax.swing.JButton + */ + private JButton getJButtonDown() { + if (jButtonDown == null) { + jButtonDown = new JButton(); + jButtonDown.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); + jButtonDown.setText("v"); + jButtonDown.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRow = jTableModInFv.getSelectedRow(); + if (selectedRow >= jTableModInFv.getRowCount() - 1) { + return; + } + modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow + 1); + jTableModInFv.changeSelection(selectedRow + 1, 0, false, false); + } + }); + } + return jButtonDown; + } + + /** + * This method initializes jButtonOk + * + * @return javax.swing.JButton + */ + private JButton getJButtonOk() { + if (jButtonOk == null) { + jButtonOk = new JButton(); + jButtonOk.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonOk.setText("Ok"); + jButtonOk.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + // need reset FvBindings in ModuleSA. + ffc.removeFvBindingAll(title); + // + // collect module order information to store them into -> . + // also update the FvBinding info in . + // + Vector vModInFv = new Vector(); + for (int i = 0; i < jTableModInFv.getRowCount(); ++i) { + String moduleName = modInFvTableModel.getValueAt(i, 0)+""; + if (moduleName.length() == 0 || moduleName.equals("N/A")) { + continue; + } + + String mg = modInFvTableModel.getValueAt(i, 1)+""; + String mv = modInFvTableModel.getValueAt(i, 2)+""; + String pg = modInFvTableModel.getValueAt(i, 3)+""; + String pv = modInFvTableModel.getValueAt(i, 4)+""; + String arch = modInFvTableModel.getValueAt(i, 5)+""; + + String moduleInfo = mg + " " + mv + " " + pg + " " + pv + " " + arch; + + String[] sa = { mg, mv, pg, pv, arch}; + vModInFv.add(sa); + ffc.updateFvBindingInModuleSA(moduleInfo, title); + + } + ffc.removeBuildOptionsUserExtensions(title); + ffc.genBuildOptionsUserExtensions(title, outputFileName, vModInFv); + + docConsole.setSaved(false); + jTabbedPane.setSelectedIndex(0); + } + }); + } + return jButtonOk; + } + + /** + * This method initializes jButtonCancel + * + * @return javax.swing.JButton + */ + private JButton getJButtonCancel() { + if (jButtonCancel == null) { + jButtonCancel = new JButton(); + jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonCancel.setText("Cancel"); + jButtonCancel.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + jTabbedPane.setSelectedIndex(0); + } + }); + } + return jButtonCancel; + } + } + +} // @jve:decl-index=0:visual-constraint="10,10" + +class FvOptsTableModel extends DefaultTableModel { + + private static final long serialVersionUID = 1L; + + private Vector vNonEditableName = new Vector(); + private Vector vKeyWords = new Vector(); + + public boolean isCellEditable(int row, int col) { + if (vNonEditableName.size() > 0 || vKeyWords.size() > 0) { + if (vKeyWords.contains(getValueAt(row, 0))) { + return false; + } + if (vNonEditableName.contains(getValueAt(row, 0)) && col == 0) { + return false; + } + } + + return true; + } + + /** + * @return Returns the vKeyWords. + */ + protected Vector getVKeyWords() { + return vKeyWords; + } + + /** + * @param keyWords The vKeyWords to set. + */ + protected void setVKeyWords(Vector keyWords) { + vKeyWords.removeAllElements(); + vKeyWords.addAll(keyWords); + } + + /** + * @return Returns the vNonEditableName. + */ + protected Vector getVNonEditableName() { + return vNonEditableName; + } + + /** + * @param nonEditableName The vNonEditableName to set. + */ + protected void setVNonEditableName(Vector nonEditableName) { + vNonEditableName.removeAllElements(); + vNonEditableName.addAll(nonEditableName); + } + +} +class ImageParaTableModel extends DefaultTableModel { + + private static final long serialVersionUID = 1L; + + public boolean isCellEditable(int row, int col) { +// if (getValueAt(row, 1).equals("ImageName") && col >=1) { +// return false; +// } +// return true; + return false; + } +} + +class FvInfoFromFdf { + private String fvName; + private String size; + private String efiFileName; + + public FvInfoFromFdf () { + fvName = ""; + size = ""; + efiFileName = ""; + } + public FvInfoFromFdf (String f, String s, String e) { + this(); + fvName = f; + size = s; + efiFileName = e; + } + public String getEfiFileName() { + return efiFileName; + } + public void setEfiFileName(String efiFileName) { + this.efiFileName = efiFileName; + } + public String getFvName() { + return fvName; + } + public void setFvName(String fvName) { + this.fvName = fvName; + } + public String getSize() { + return size; + } + public void setSize(String size) { + this.size = size; + } + +}