+ private JPanel getJPanelFdfCBottomN() {\r
+ if (jPanelFdfCBottomN == null) {\r
+ jLabelFvAdditional = new JLabel();\r
+ jLabelFvAdditional.setText("Additional FVs");\r
+ jPanelFdfCBottomN = new JPanel();\r
+ jPanelFdfCBottomN.add(jLabelFvAdditional, null);\r
+ }\r
+ return jPanelFdfCBottomN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelFdfCBottomC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelFdfCBottomC() {\r
+ if (jPanelFdfCBottomC == null) {\r
+ jPanelFdfCBottomC = new JPanel();\r
+ jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null);\r
+ }\r
+ return jPanelFdfCBottomC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFvInFdf \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFvInFdf() {\r
+ if (jScrollPaneFvInFdf == null) {\r
+ jScrollPaneFvInFdf = new JScrollPane();\r
+ jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200));\r
+ jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf());\r
+ }\r
+ return jScrollPaneFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFvInFdf \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFvInFdf() {\r
+ if (jTableFvInFdf == null) {\r
+ jTableFvInFdf = new JTable();\r
+ jTableFvInFdf.setRowHeight(20);\r
+ jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFvInFdf.setModel(getFvInFdfTableModel());\r
+ }\r
+ return jTableFvInFdf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvInFdfTableModel \r
+ * \r
+ * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
+ */\r
+ private NonEditableTableModel getFvInFdfTableModel() {\r
+ if (fvInFdfTableModel == null) {\r
+ fvInFdfTableModel = new NonEditableTableModel();\r
+ fvInFdfTableModel.addColumn("FV Name");\r
+ fvInFdfTableModel.addColumn("Size");\r
+ fvInFdfTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvInFdfTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonFvInFdfOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonFvInFdfOptions() {\r
+ if (jButtonFvInFdfOptions == null) {\r
+ jButtonFvInFdfOptions = new JButton();\r
+ jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonFvInFdfOptions.setEnabled(false);\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
+ }\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(getFvAdditionalTableModel());\r
+ \r
+ jTableFvAdditional.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
+ public void valueChanged(ListSelectionEvent e) {\r
+ if (e.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRowInFvAdditionalTable = lsm.getMinSelectionIndex();\r
+ oldFvName = jTableFvAdditional.getValueAt(selectedRowInFvAdditionalTable, 0)+"";\r
+ }\r
+ }\r
+ });\r
+ \r
+ jTableFvAdditional.getModel().addTableModelListener(new TableModelListener() {\r
+ public void tableChanged(TableModelEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+ int row = arg0.getFirstRow();\r
+ int col = arg0.getColumn();\r
+ TableModel m = (TableModel) arg0.getSource();\r
+ if (arg0.getType() == TableModelEvent.UPDATE) {\r
+ if (col == 0) {\r
+ String newFvName = m.getValueAt(row, 0) + "";\r
+ if (newFvName.equals(oldFvName)) {\r
+ return;\r
+ }\r
+ if (fvNameExists(newFvName)) {\r
+ JOptionPane.showMessageDialog(frame, "This FV already exists. Please choose another FV name.");\r
+ m.setValueAt(oldFvName, row, 0);\r
+ return;\r
+ }\r
+ \r
+ tabIndexForFv = jTabbedPane.indexOfTab(oldFvName);\r
+ if (tabIndexForFv >= startIndexOfDynamicTab) {\r
+ jTabbedPane.setTitleAt(tabIndexForFv, newFvName);\r
+ // change FvName in UserExtensions\r
+ ffc.updateBuildOptionsUserExtensions(oldFvName, newFvName);\r
+ // change FvBinding in ModuleSA\r
+ ffc.appendFvBindingFor(oldFvName, newFvName);\r
+ ffc.removeFvBindingAll(oldFvName);\r
+ // change FvImageNames in Flash\r
+ ffc.updateFvImageNameAll(oldFvName, newFvName);\r
+ \r
+ } else {\r
+ jTabbedPane.addTab(newFvName, new ModuleOrderPane(newFvName, ""));\r
+ // Add FvImageNames in Flash\r
+ String[] fvNames = {newFvName};\r
+ ffc.AddFvImageFvImageNames(fvNames);\r
+ }\r
+ \r
+ oldFvName = newFvName;\r
+ }\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+ });\r
+ }\r
+ return jTableFvAdditional;\r
+ }\r
+ \r
+ private boolean fvNameExistsInFvInFdfTable (String fvName) {\r
+ for (int i = 0; i < jTableFvInFdf.getRowCount(); ++i) {\r
+ if (fvInFdfTableModel.getValueAt(i, 0).equals(fvName)) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+ \r
+ private boolean fvNameExists (String fvName) {\r
+ if (fvNameExistsInFvInFdfTable(fvName)) {\r
+ return true;\r
+ }\r
+ \r
+ for (int j = 0; j < jTableFvAdditional.getRowCount(); ++j) {\r
+ if (fvAdditionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+ /**\r
+ * This method initializes fvAdditionalTableModel \r
+ * \r
+ * @return javax.swing.table.DefaultTableModel \r
+ */\r
+ private DefaultTableModel getFvAdditionalTableModel() {\r
+ if (fvAdditionalTableModel == null) {\r
+ fvAdditionalTableModel = new DefaultTableModel();\r
+ fvAdditionalTableModel.addColumn("FV Name");\r
+ fvAdditionalTableModel.addColumn("Size");\r
+ fvAdditionalTableModel.addColumn("Corresponding File Name");\r
+ }\r
+ return fvAdditionalTableModel;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFv() {\r
+ if (jButtonAddFv == null) {\r
+ jButtonAddFv = new JButton();\r
+ jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFv.setEnabled(true);\r
+ jButtonAddFv.setText("New");\r
+ jButtonAddFv.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ if (jTableFvAdditional.isEditing()) {\r
+ jTableFvAdditional.getCellEditor().stopCellEditing();\r
+ }\r
+ String[] row = {"", "", ""};\r
+ fvAdditionalTableModel.addRow(row);\r
+ }\r
+ });\r
+ }\r
+ return jButtonAddFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonDelFv \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDelFv() {\r
+ if (jButtonDelFv == null) {\r
+ jButtonDelFv = new JButton();\r
+ jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonDelFv.setEnabled(true);\r
+ jButtonDelFv.setText("Delete");\r
+ jButtonDelFv.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ //delete row in FvAdditional table.\r
+ int selectedRow = jTableFvAdditional.getSelectedRow();\r
+ if (selectedRow < 0) {\r
+ return;\r
+ }\r
+ String fvName = fvAdditionalTableModel.getValueAt(selectedRow, 0) + "";\r
+ fvAdditionalTableModel.removeRow(selectedRow);\r
+ //\r
+ //delete tab with selected FV name.\r
+ //\r
+ jTabbedPane.removeTabAt(jTabbedPane.indexOfTab(fvName));\r
+ //delete FV Name from FvImages element.\r
+ ffc.updateFvImageNameAll(fvName, null);\r
+ //delete FvBinding from ModuleSA.\r
+ ffc.removeFvBindingAll(fvName);\r
+ docConsole.setSaved(false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonDelFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonAddFvOptions \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonAddFvOptions() {\r
+ if (jButtonAddFvOptions == null) {\r
+ jButtonAddFvOptions = new JButton();\r
+ jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
+ jButtonAddFvOptions.setEnabled(false);\r
+ jButtonAddFvOptions.setText("Options");\r
+ jButtonAddFvOptions.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()\r
+ }\r
+ });\r
+ }\r
+ return jButtonAddFvOptions;\r
+ }\r
+ \r
+ /**\r
+ * @param args\r
+ */\r
+ public static void main(String[] args) {\r
+ // TODO Auto-generated method stub\r
+ new FpdFlash().setVisible(true);\r
+ }\r
+\r
+ /**\r
+ * This method initializes this\r
+ * \r
+ * @return void\r
+ */\r
+ private void initialize() {\r