+ \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