\r
import javax.swing.AbstractAction;\r
import javax.swing.DefaultCellEditor;\r
+import javax.swing.JComponent;\r
import javax.swing.JFileChooser;\r
import javax.swing.JFrame;\r
import javax.swing.JOptionPane;\r
import java.awt.event.ComponentEvent;\r
import java.awt.event.ItemEvent;\r
import java.awt.event.ItemListener;\r
+import java.io.BufferedReader;\r
import java.io.File;\r
+import java.io.FileReader;\r
import java.util.Iterator;\r
import java.util.LinkedHashMap;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.Vector;\r
\r
import javax.swing.JCheckBox;\r
import javax.swing.JTextField;\r
import javax.swing.table.TableModel;\r
import javax.swing.JComboBox;\r
import java.awt.Dimension;\r
+import javax.swing.JSplitPane;\r
\r
public class FpdFlash extends IInternalFrame {\r
\r
private JScrollPane jScrollPane = null;\r
private JTable jTableFvImageOpts = null;\r
private JButton jButtonUpdateFvImage = null;\r
+ private JButton jButtonTest = null;\r
+ private JPanel jPanelFdfN = null;\r
+ private JPanel jPanelFdfS = null;\r
+ private JSplitPane jSplitPaneFdfC = null;\r
+ private JPanel jPanelFdfCTop = null;\r
+ private JPanel jPanelFdfCBottom = null;\r
+ private JPanel jPanelFdfCTopN = null;\r
+ private JPanel jPanelFdfCTopS = null;\r
+ private JPanel jPanelFdfCTopC = null;\r
+ private JPanel jPanelFdfCBottomN = null;\r
+ private JPanel jPanelFdfCBottomC = null;\r
+ private JLabel jLabelFvInFdf = null;\r
+ private JLabel jLabelFvAdditional = null;\r
+ private JScrollPane jScrollPaneFvInFdf = null;\r
+ private JTable jTableFvInFdf = null;\r
+ private NonEditableTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
+ private JButton jButtonFvInFdfOptions = null;\r
+ private JScrollPane jScrollPaneFvAdditional = null;\r
+ private JTable jTableFvAdditional = null;\r
+ private DefaultTableModel fvAddtionalTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
+ private JButton jButtonAddFv = null;\r
+ private JButton jButtonDelFv = null;\r
+ private JButton jButtonAddFvOptions = null;\r
+ \r
+ private NonEditableTableModel nonEditableTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
+ \r
+ private JPanel jPanelModOrder = null;\r
+ private JPanel jPanelModOrderN = null;\r
+ private JPanel jPanelModOrderS = null;\r
+ private JPanel jPanelModOrderC = null;\r
+ private JScrollPane jScrollPaneModInFv = null;\r
+ private JTable jTableModInFv = null;\r
+ private JPanel jPanelController = null;\r
+ private JScrollPane jScrollPaneFpdModules = null;\r
+ private JTable jTableFpdModules = null;\r
+ private JButton jButtonUp = null;\r
+ private JButton jButtonInsert = null;\r
+ private JButton jButtonRemove = null;\r
+ private JButton jButtonDown = null;\r
+ private JButton jButtonOk = null;\r
+ private JButton jButtonCancel = null;\r
+ \r
+ /**\r
+ * This method initializes jPanelModOrder \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrder() {\r
+// if (jPanelModOrder == null) {\r
+ jPanelModOrder = new JPanel();\r
+ jPanelModOrder.setLayout(new BorderLayout());\r
+ jPanelModOrder.add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
+ jPanelModOrder.add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
+ jPanelModOrder.add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
+ jPanelModOrder.addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentShown(java.awt.event.ComponentEvent e) {\r
+ System.out.println("componentShown()" + jTabbedPane.getTitleAt(jTabbedPane.getSelectedIndex())); // TODO Auto-generated Event stub componentShown()\r
+ }\r
+ });\r
+// }\r
+ return jPanelModOrder;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderN() {\r
+// if (jPanelModOrderN == null) {\r
+ jPanelModOrderN = new JPanel();\r
+// }\r
+ return jPanelModOrderN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderS() {\r
+// if (jPanelModOrderS == null) {\r
+ FlowLayout flowLayout6 = new FlowLayout();\r
+ flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelModOrderS = new JPanel();\r
+ jPanelModOrderS.setLayout(flowLayout6);\r
+ jPanelModOrderS.add(getJButtonOk(), null);\r
+ jPanelModOrderS.add(getJButtonCancel(), null);\r
+// }\r
+ return jPanelModOrderS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderC() {\r
+// if (jPanelModOrderC == null) {\r
+ jPanelModOrderC = new JPanel();\r
+ jPanelModOrderC.add(getJScrollPaneModInFv(), null);\r
+ jPanelModOrderC.add(getJPanelController(), null);\r
+ jPanelModOrderC.add(getJScrollPaneFpdModules(), null);\r
+// }\r
+ return jPanelModOrderC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneModInFv \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneModInFv() {\r
+// if (jScrollPaneModInFv == null) {\r
+ jScrollPaneModInFv = new JScrollPane();\r
+ jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(150,500));\r
+ jScrollPaneModInFv.setViewportView(getJTableModInFv());\r
+// }\r
+ return jScrollPaneModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableModInFv \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableModInFv() {\r
+// if (jTableModInFv == null) {\r
+ NonEditableTableModel modInFvTableModel = new NonEditableTableModel();\r
+ modInFvTableModel.addColumn("Module Orders in FV");\r
+ jTableModInFv = new JTable(modInFvTableModel);\r
+ jTableModInFv.setRowHeight(20);\r
+// }\r
+ return jTableModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelController \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelController() {\r
+// if (jPanelController == null) {\r
+ FlowLayout flowLayout5 = new FlowLayout();\r
+ flowLayout5.setVgap(50);\r
+ flowLayout5.setHgap(50);\r
+ jPanelController = new JPanel();\r
+ jPanelController.setLayout(flowLayout5);\r
+ jPanelController.setPreferredSize(new java.awt.Dimension(150,500));\r
+ jPanelController.add(getJButtonUp(), null);\r
+ jPanelController.add(getJButtonInsert(), null);\r
+ jPanelController.add(getJButtonRemove(), null);\r
+ jPanelController.add(getJButtonDown(), null);\r
+// }\r
+ return jPanelController;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFpdModules \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFpdModules() {\r
+// if (jScrollPaneFpdModules == null) {\r
+ jScrollPaneFpdModules = new JScrollPane();\r
+ jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(150,500));\r
+ jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
+// }\r
+ return jScrollPaneFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFpdModules \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFpdModules() {\r
+// if (jTableFpdModules == null) {\r
+ NonEditableTableModel fpdModTableModel = new NonEditableTableModel();\r
+ fpdModTableModel.addColumn("Modules in Platform");\r
+ jTableFpdModules = new JTable(fpdModTableModel);\r
+ jTableFpdModules.setRowHeight(20);\r
+// }\r
+ return jTableFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonUp \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonUp() {\r
+// if (jButtonUp == null) {\r
+ jButtonUp = new JButton();\r
+ jButtonUp.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));\r
+ jButtonUp.setText("^");\r
+// }\r
+ return jButtonUp;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonInsert \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonInsert() {\r
+// if (jButtonInsert == null) {\r
+ jButtonInsert = new JButton();\r
+ jButtonInsert.setText("<<");\r
+ jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20));\r
+// }\r
+ return jButtonInsert;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonRemove \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonRemove() {\r
+// if (jButtonRemove == null) {\r
+ jButtonRemove = new JButton();\r
+ jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonRemove.setText(">>");\r
+// }\r
+ return jButtonRemove;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonDown \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDown() {\r
+// if (jButtonDown == null) {\r
+ jButtonDown = new JButton();\r
+ jButtonDown.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));\r
+ jButtonDown.setText("v");\r
+// }\r
+ return jButtonDown;\r
+ }\r
+ \r
+ /**\r
+ * This method initializes jButtonOk \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonOk() {\r
+// if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonOk.setText("Ok");\r
+// }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonCancel \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonCancel() {\r
+// if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ getJTabbedPane().setSelectedIndex(0);\r
+ }\r
+ });\r
+// }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ \r
public FpdFlash() {\r
super();\r
// TODO Auto-generated constructor stub\r
private JTabbedPane getJTabbedPane() {\r
if (jTabbedPane == null) {\r
jTabbedPane = new JTabbedPane();\r
- jTabbedPane.addTab("FV Images", null, getJPanelFvImages(), null);\r
- jTabbedPane.addTab("Flash Definition File", null, getJPanelFdf(), null);\r
+ jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
+ jTabbedPane.addTab("FV Parameters", null, getJPanelFvImages(), null);\r
\r
}\r
return jTabbedPane;\r
jLabelFvPropName.setEnabled(false);\r
jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20));\r
FlowLayout flowLayout2 = new FlowLayout();\r
- flowLayout2.setAlignment(java.awt.FlowLayout.CENTER);\r
+ flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
flowLayout2.setHgap(15);\r
jPanelFvImageN = new JPanel();\r
jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100));\r
private JCheckBox getJCheckBoxFvProperty() {\r
if (jCheckBoxFvProperty == null) {\r
jCheckBoxFvProperty = new JCheckBox();\r
- jCheckBoxFvProperty.setText("FV Properties");\r
+ jCheckBoxFvProperty.setText("Global FV Variables");\r
jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
\r
public void itemStateChanged(ItemEvent arg0) {\r
*/\r
private JPanel getJPanelFdf() {\r
if (jPanelFdf == null) {\r
- FlowLayout flowLayout1 = new FlowLayout();\r
- flowLayout1.setAlignment(FlowLayout.LEFT);\r
jPanelFdf = new JPanel();\r
- jPanelFdf.setLayout(flowLayout1);\r
- jPanelFdf.add(getJCheckBoxFdf(), null);\r
- jPanelFdf.add(getJTextFieldFdf(), null);\r
- jPanelFdf.add(getJButtonFdfBrowse(), null);\r
- jPanelFdf.addComponentListener(new ComponentAdapter(){\r
- public void componentShown(ComponentEvent e) {\r
- if (ffc.getFlashDefinitionFile() != null) {\r
- jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
- }\r
- }\r
- public void componentHidden(ComponentEvent e) {\r
- if (jCheckBoxFdf.isSelected()) {\r
- ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
- }\r
- }\r
- });\r
+ jPanelFdf.setLayout(new BorderLayout());\r
+\r
+ jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH);\r
+ jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER);\r
+// jPanelFdf.addComponentListener(new ComponentAdapter(){\r
+// public void componentShown(ComponentEvent e) {\r
+// if (ffc.getFlashDefinitionFile() != null) {\r
+// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
+// }\r
+// }\r
+// public void componentHidden(ComponentEvent e) {\r
+// if (jCheckBoxFdf.isSelected()) {\r
+// ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
+// }\r
+// }\r
+// });\r
}\r
return jPanelFdf;\r
}\r
return;\r
}\r
jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
+ ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
+ docConsole.setSaved(false);\r
+ Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
+ getFvInfoFromFdf(filePath, vFvInfo);\r
+ getFvInFdfTableModel().setRowCount(0);\r
+ for (int j = 0; j < vFvInfo.size(); ++j) {\r
+ FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
+ String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
+ getFvInFdfTableModel().addRow(row);\r
+ }\r
}\r
}\r
\r
return jButtonUpdateFvImage;\r
}\r
\r
+ /**\r
+ * This method initializes jButtonTest \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+// private JButton getJButtonTest() {\r
+// if (jButtonTest == null) {\r
+// jButtonTest = new JButton();\r
+// jButtonTest.addActionListener(new java.awt.event.ActionListener() {\r
+// public void actionPerformed(java.awt.event.ActionEvent e) {\r
+// docConsole.setSaved(false);\r
+// String[][] includeModules = {{"1", "a"}, {"2", "b"}};\r
+// ffc.genBuildOptionsUserExtensions("FV_RECOVERY", "FvRecovery.inf", null, includeModules);\r
+// int i = ffc.getUserExtsIncModCount("FV_RECOVERY");\r
+// String[][] saa = new String[i][2];\r
+// ffc.getUserExtsIncMods("FV_RECOVERY", saa);\r
+// jTextFieldFdf.setText(saa[0][0] + saa[0][1] + saa[1][0] + saa[1][1]);\r
+// \r
+// }\r
+// });\r
+// }\r
+// return jButtonTest;\r
+// }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfN() {\r
+ if (jPanelFdfN == null) {\r
+ jPanelFdfN = new JPanel();\r
+ jPanelFdfN.add(getJCheckBoxFdf(), null);\r
+ jPanelFdfN.add(getJTextFieldFdf(), null);\r
+ jPanelFdfN.add(getJButtonFdfBrowse(), null);\r
+ }\r
+ return jPanelFdfN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfS() {\r
+ if (jPanelFdfS == null) {\r
+ FlowLayout flowLayout4 = new FlowLayout();\r
+ flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelFdfS = new JPanel();\r
+ jPanelFdfS.setLayout(flowLayout4);\r
+ jPanelFdfS.add(getJButtonAddFv(), null);\r
+ jPanelFdfS.add(getJButtonDelFv(), null);\r
+ jPanelFdfS.add(getJButtonAddFvOptions(), null);\r
+ }\r
+ return jPanelFdfS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jSplitPaneFdfC \r
+ * \r
+ * @return javax.swing.JSplitPane \r
+ */\r
+ private JSplitPane getJSplitPaneFdfC() {\r
+ if (jSplitPaneFdfC == null) {\r
+ jSplitPaneFdfC = new JSplitPane();\r
+ jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
+ jSplitPaneFdfC.setDividerSize(5);\r
+ jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop());\r
+ jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom());\r
+ jSplitPaneFdfC.setDividerLocation(280);\r
+ }\r
+ return jSplitPaneFdfC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTop \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTop() {\r
+ if (jPanelFdfCTop == null) {\r
+ jPanelFdfCTop = new JPanel();\r
+ jPanelFdfCTop.setLayout(new BorderLayout());\r
+ jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH);\r
+ jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER);\r
+ }\r
+ return jPanelFdfCTop;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottom \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottom() {\r
+ if (jPanelFdfCBottom == null) {\r
+ jPanelFdfCBottom = new JPanel();\r
+ jPanelFdfCBottom.setLayout(new BorderLayout());\r
+ jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH);\r
+ jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER);\r
+ }\r
+ return jPanelFdfCBottom;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopN() {\r
+ if (jPanelFdfCTopN == null) {\r
+ jLabelFvInFdf = new JLabel();\r
+ jLabelFvInFdf.setText("FVs in Flash Definition File");\r
+ jPanelFdfCTopN = new JPanel();\r
+ jPanelFdfCTopN.add(jLabelFvInFdf, null);\r
+ }\r
+ return jPanelFdfCTopN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopS() {\r
+ if (jPanelFdfCTopS == null) {\r
+ FlowLayout flowLayout1 = new FlowLayout();\r
+ flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelFdfCTopS = new JPanel();\r
+ jPanelFdfCTopS.setLayout(flowLayout1);\r
+ jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null);\r
+ }\r
+ return jPanelFdfCTopS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCTopC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCTopC() {\r
+ if (jPanelFdfCTopC == null) {\r
+ jPanelFdfCTopC = new JPanel();\r
+ jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null);\r
+ }\r
+ return jPanelFdfCTopC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottomN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottomN() {\r
+ if (jPanelFdfCBottomN == null) {\r
+ jLabelFvAdditional = new JLabel();\r
+ jLabelFvAdditional.setText("Additional FVs");\r
+ jPanelFdfCBottomN = new JPanel();\r
+ jPanelFdfCBottomN.add(jLabelFvAdditional, null);\r
+ }\r
+ return jPanelFdfCBottomN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottomC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottomC() {\r
+ if (jPanelFdfCBottomC == null) {\r
+ jPanelFdfCBottomC = new JPanel();\r
+ jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null);\r
+ }\r
+ return jPanelFdfCBottomC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFvInFdf \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFvInFdf() {\r
+ if (jScrollPaneFvInFdf == null) {\r
+ jScrollPaneFvInFdf = new JScrollPane();\r
+ jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200));\r
+ jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf());\r
+ }\r
+ return jScrollPaneFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFvInFdf \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFvInFdf() {\r
+ if (jTableFvInFdf == null) {\r
+ jTableFvInFdf = new JTable();\r
+ jTableFvInFdf.setRowHeight(20);\r
+ jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvInFdf.setModel(getFvInFdfTableModel());\r
+ }\r
+ return jTableFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvInFdfTableModel \r
+ * \r
+ * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
+ */\r
+ private NonEditableTableModel getFvInFdfTableModel() {\r
+ if (fvInFdfTableModel == null) {\r
+ fvInFdfTableModel = new NonEditableTableModel();\r
+ fvInFdfTableModel.addColumn("FV Name");\r
+ fvInFdfTableModel.addColumn("Size");\r
+ fvInFdfTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvInFdfTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonFvInFdfOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonFvInFdfOptions() {\r
+ if (jButtonFvInFdfOptions == null) {\r
+ jButtonFvInFdfOptions = new JButton();\r
+ jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonFvInFdfOptions.setText("Options");\r
+ jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableFvInFdf.getSelectedRow();\r
+ if (selectedRow <= 0) {\r
+ return;\r
+ }\r
+ fvInFdfTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1);\r
+ jTableFvInFdf.changeSelection(selectedRow - 1, 0, false, false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonFvInFdfOptions;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFvAdditional \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFvAdditional() {\r
+ if (jScrollPaneFvAdditional == null) {\r
+ jScrollPaneFvAdditional = new JScrollPane();\r
+ jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200));\r
+ jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional());\r
+ }\r
+ return jScrollPaneFvAdditional;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFvAdditional \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFvAdditional() {\r
+ if (jTableFvAdditional == null) {\r
+ jTableFvAdditional = new JTable();\r
+ jTableFvAdditional.setRowHeight(20);\r
+ jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvAdditional.setModel(getFvAddtionalTableModel());\r
+ }\r
+ return jTableFvAdditional;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvAddtionalTableModel \r
+ * \r
+ * @return javax.swing.table.DefaultTableModel \r
+ */\r
+ private DefaultTableModel getFvAddtionalTableModel() {\r
+ if (fvAddtionalTableModel == null) {\r
+ fvAddtionalTableModel = new DefaultTableModel();\r
+ fvAddtionalTableModel.addColumn("FV Name");\r
+ fvAddtionalTableModel.addColumn("Size");\r
+ fvAddtionalTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvAddtionalTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFv() {\r
+ if (jButtonAddFv == null) {\r
+ jButtonAddFv = new JButton();\r
+ jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFv.setText("New");\r
+ }\r
+ return jButtonAddFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonDelFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDelFv() {\r
+ if (jButtonDelFv == null) {\r
+ jButtonDelFv = new JButton();\r
+ jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonDelFv.setText("Delete");\r
+ }\r
+ return jButtonDelFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFvOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFvOptions() {\r
+ if (jButtonAddFvOptions == null) {\r
+ jButtonAddFvOptions = new JButton();\r
+ jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFvOptions.setText("Options");\r
+ }\r
+ return jButtonAddFvOptions;\r
+ }\r
+\r
+ \r
+\r
+ /**\r
+ * This method initializes nonEditableTableModel \r
+ * \r
+ * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
+ */\r
+ private NonEditableTableModel getNonEditableTableModel() {\r
+ if (nonEditableTableModel == null) {\r
+ nonEditableTableModel = new NonEditableTableModel();\r
+ }\r
+ return nonEditableTableModel;\r
+ }\r
+\r
+ \r
/**\r
* @param args\r
*/\r
return;\r
}\r
String[][] saa = new String[ffc.getFvImagesFvImageCount()][2];\r
-// ArrayList<LinkedHashMap<String, String>> options = new ArrayList<LinkedHashMap<String, String>>(ffc.getFvImagesFvImageCount());\r
-//\r
-// for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){\r
-// options.add(new LinkedHashMap<String, String>());\r
-// }\r
ffc.getFvImagesFvImages(saa);\r
- \r
\r
int i = 0;\r
while (i < saa.length) {\r
++i;\r
}\r
\r
-// String fdfFile = ffc.getFlashDefinitionFile();\r
-// if (fdfFile != null) {\r
-// jTextField3.setText(fdfFile);\r
-// }\r
+ saa = new String[ffc.getFvImagesNameValueCount()][2];\r
+ ffc.getFvImagesNameValues(saa);\r
+ for (int m = 0; m < saa.length; ++m) {\r
+ fvPropertyTableModel.addRow(saa[m]);\r
+ }\r
+ \r
+ jTextFieldFdf.setText("");\r
+ String fdfFile = ffc.getFlashDefinitionFile();\r
+ if (fdfFile != null) {\r
+ jTextFieldFdf.setText(fdfFile);\r
+ }\r
+ \r
+ String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile;\r
+ Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
+ getFvInfoFromFdf(fdfPath, vFvInfo);\r
+ getFvInFdfTableModel().setRowCount(0);\r
+ for (int j = 0; j < vFvInfo.size(); ++j) {\r
+ FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
+ String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
+ getFvInFdfTableModel().addRow(row);\r
+ }\r
+ \r
+\r
+ for (int k = 0; k < vFvInfo.size(); ++k) {\r
+ FvInfoFromFdf fvInfo = vFvInfo.get(k);\r
+ getJTabbedPane().addTab(fvInfo.getFvName(), null, getJPanelModOrder(), null);\r
+\r
+ }\r
}\r
\r
private void getOptionNameValue(Map<String, String> m){\r
}\r
return jContentPane;\r
}\r
+ \r
+ private void getFvInfoFromFdf(String fdfPath, Vector<FvInfoFromFdf> vFvInfo) {\r
+ File fdf = new File(fdfPath);\r
+ if (!fdf.exists()) {\r
+ return;\r
+ }\r
+ int lines = 0;\r
+\r
+ try {\r
+ FileReader reader = new FileReader(fdf);\r
+ BufferedReader in = new BufferedReader(reader);\r
+ String str;\r
+\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ //\r
+ // dig into Region {} section, create FvInfoFromFdf object for it.\r
+ //\r
+ if (str.startsWith("Region") && str.endsWith("{")) {\r
+ FvInfoFromFdf fvInfo = new FvInfoFromFdf();\r
+ boolean nameFound = false;\r
+ boolean sizeFound = false;\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ \r
+ if (str.startsWith("Name")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote));\r
+ nameFound = true;\r
+ }\r
+ \r
+ if (str.startsWith("Size")) {\r
+ int equalIndex = str.indexOf("=");\r
+ int commaIndex = str.indexOf(",");\r
+ fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim());\r
+ sizeFound = true;\r
+ }\r
+ \r
+ if (nameFound && sizeFound) {\r
+ break;\r
+ }\r
+ }\r
+ \r
+ vFvInfo.add(fvInfo);\r
+ }\r
+ //\r
+ // dig into File {} section, supply file name information to existing FvInfoFromFdf object.\r
+ //\r
+ if (str.startsWith("File")) {\r
+ boolean fileNameFound = false;\r
+ boolean fvFound = false;\r
+ String fileName = "";\r
+ String fvName = "";\r
+ while ((str = in.readLine()) != null) {\r
+ ++lines;\r
+ str = str.trim();\r
+ //\r
+ // skip empty line, comment (start with //) \r
+ //\r
+ if (str.length() == 0 || str.startsWith("//")) {\r
+ continue;\r
+ }\r
+ \r
+ if (str.startsWith("Name")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fileName = str.substring(firstQuote + 1, lastQuote);\r
+ fileNameFound = true;\r
+ }\r
+ \r
+ if (str.startsWith("Region")) {\r
+ int firstQuote = str.indexOf("\"");\r
+ int lastQuote = str.lastIndexOf("\"");\r
+ fvName = str.substring(firstQuote + 1, lastQuote);\r
+ fvFound = true;\r
+ }\r
+ \r
+ if (fileNameFound && fvFound) {\r
+ break;\r
+ }\r
+ }\r
+ \r
+ for (int i = 0; i <vFvInfo.size(); ++i) {\r
+ if (vFvInfo.get(i).getFvName().equals(fvName)) {\r
+ vFvInfo.get(i).setEfiFileName(fileName);\r
+ }\r
+ }\r
+ }\r
+ \r
+ }\r
+ } catch (Exception e) {\r
+ \r
+ }\r
+\r
+ }\r
+ \r
+ \r
\r
} // @jve:decl-index=0:visual-constraint="10,10"\r
\r
}\r
}\r
\r
+class FvInfoFromFdf {\r
+ private String fvName;\r
+ private String size;\r
+ private String efiFileName;\r
+ \r
+ public FvInfoFromFdf () {\r
+ fvName = "";\r
+ size = "";\r
+ efiFileName = "";\r
+ }\r
+ public FvInfoFromFdf (String f, String s, String e) {\r
+ this();\r
+ fvName = f;\r
+ size = s;\r
+ efiFileName = e;\r
+ }\r
+ public String getEfiFileName() {\r
+ return efiFileName;\r
+ }\r
+ public void setEfiFileName(String efiFileName) {\r
+ this.efiFileName = efiFileName;\r
+ }\r
+ public String getFvName() {\r
+ return fvName;\r
+ }\r
+ public void setFvName(String fvName) {\r
+ this.fvName = fvName;\r
+ }\r
+ public String getSize() {\r
+ return size;\r
+ }\r
+ public void setSize(String size) {\r
+ this.size = size;\r
+ }\r
+ \r
+}\r