+// class ModuleSAInfo {\r
+// private int rowNumber = -1;\r
+// private String moduleGuid = null;\r
+// private String moduleVersion = null;\r
+// private String packageGuid = null;\r
+// private String packageVersion = null;\r
+// private String arch = null;\r
+// \r
+// public ModuleSAInfo (String mg, String mv, String pg, String pv, String a) {\r
+// moduleGuid = mg;\r
+// moduleVersion = mv;\r
+// packageGuid = pg;\r
+// packageVersion = pv;\r
+// arch = a;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the arch.\r
+// */\r
+// public String getArch() {\r
+// return arch;\r
+// }\r
+//\r
+// /**\r
+// * @param arch The arch to set.\r
+// */\r
+// public void setArch(String arch) {\r
+// this.arch = arch;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the moduleGuid.\r
+// */\r
+// public String getModuleGuid() {\r
+// return moduleGuid;\r
+// }\r
+//\r
+// /**\r
+// * @param moduleGuid The moduleGuid to set.\r
+// */\r
+// public void setModuleGuid(String moduleGuid) {\r
+// this.moduleGuid = moduleGuid;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the moduleVersion.\r
+// */\r
+// public String getModuleVersion() {\r
+// return moduleVersion;\r
+// }\r
+//\r
+// /**\r
+// * @param moduleVersion The moduleVersion to set.\r
+// */\r
+// public void setModuleVersion(String moduleVersion) {\r
+// this.moduleVersion = moduleVersion;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the packageGuid.\r
+// */\r
+// public String getPackageGuid() {\r
+// return packageGuid;\r
+// }\r
+//\r
+// /**\r
+// * @param packageGuid The packageGuid to set.\r
+// */\r
+// public void setPackageGuid(String packageGuid) {\r
+// this.packageGuid = packageGuid;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the packageVersion.\r
+// */\r
+// public String getPackageVersion() {\r
+// return packageVersion;\r
+// }\r
+//\r
+// /**\r
+// * @param packageVersion The packageVersion to set.\r
+// */\r
+// public void setPackageVersion(String packageVersion) {\r
+// this.packageVersion = packageVersion;\r
+// }\r
+//\r
+// /**\r
+// * @return Returns the rowNumber.\r
+// */\r
+// public int getRowNumber() {\r
+// return rowNumber;\r
+// }\r
+//\r
+// /**\r
+// * @param rowNumber The rowNumber to set.\r
+// */\r
+// public void setRowNumber(int rowNumber) {\r
+// this.rowNumber = rowNumber;\r
+// }\r
+// }\r
+ \r
+ private class ModuleOrderPane extends JPanel {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ private JPanel jPanelModOrderN = null;\r
+ private JPanel jPanelModOrderS = null;\r
+ private JPanel jPanelModOrderC = null;\r
+ private JScrollPane jScrollPaneModInFv = null;\r
+ private JTable jTableModInFv = null;\r
+ private JPanel jPanelController = null;\r
+ private JScrollPane jScrollPaneFpdModules = null;\r
+ private JTable jTableFpdModules = null;\r
+ private JButton jButtonUp = null;\r
+ private JButton jButtonInsert = null;\r
+ private JButton jButtonRemove = null;\r
+ private JButton jButtonDown = null;\r
+ private JButton jButtonOk = null;\r
+ private JButton jButtonCancel = null;\r
+ private IDefaultTableModel modInFvTableModel = null;\r
+ private IDefaultTableModel fpdModTableModel = null;\r
+// private ArrayList<ModuleSAInfo> listTableModInFvModuleSAInfo = null;\r
+// private ArrayList<ModuleSAInfo> listTableFpdModulesModuleSAInfo = null;\r
+ private String title = null;\r
+ private String outputFileName = null;\r
+ \r
+ public ModuleOrderPane(String tabTitle, String file) {\r
+ super(new BorderLayout());\r
+ title = tabTitle;\r
+ outputFileName = file;\r
+// listTableModInFvModuleSAInfo = new ArrayList<ModuleSAInfo>();\r
+// listTableFpdModulesModuleSAInfo = new ArrayList<ModuleSAInfo>();\r
+ add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
+ add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
+ add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
+ showModulesInFv(title);\r
+ showAllModulesInPlatform();\r
+ }\r
+ \r
+ private void showModulesInFv(String fvName) {\r
+ int size = ffc.getUserExtsIncModCount(fvName);\r
+ \r
+ if (size != -1) {\r
+ String[][] saa = new String[size][5];\r
+ ffc.getUserExtsIncMods(fvName, saa);\r
+\r
+ for (int i = 0; i < size; ++i) {\r
+ String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
+ String name = "N/A";\r
+ if (mi != null) {\r
+ name = mi.getName();\r
+ }\r
+ \r
+ String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
+ modInFvTableModel.addRow(row);\r
+ }\r
+ }\r
+ //\r
+ // From ModuleSAs, get module guids with FvBinding = fvName.\r
+ //\r
+ Vector<String[]> vModuleSA = new Vector<String[]>();\r
+ ffc.getFrameworkModuleSAByFvBinding(fvName, vModuleSA);\r
+ //\r
+ // If BuildOptions->UserExtensions already contain these module info,\r
+ // no need to add them into table again.\r
+ //\r
+ Iterator<String[]> iter = vModuleSA.iterator();\r
+ while (iter.hasNext()){\r
+ String[] sa = iter.next();\r
+ if (!moduleInfoInTable (sa, modInFvTableModel)) {\r
+ String moduleKey = sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3];\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
+ String name = "N/A";\r
+ if (mi != null) {\r
+ name = mi.getName();\r
+ }\r
+ String[] row = { name, sa[0] , sa[1], sa[2] , sa[3], sa[4] };\r
+ modInFvTableModel.addRow(row);\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+ private void showAllModulesInPlatform() {\r
+ int size = ffc.getFrameworkModulesCount();\r
+ String[][] saa = new String[size][5];\r
+ ffc.getFrameworkModulesInfo(saa);\r
+ \r
+ for (int i = 0; i < size; ++i) {\r
+ if (moduleInfoInTable(saa[i], modInFvTableModel) || moduleInfoInTable(saa[i], fpdModTableModel)) {\r
+ continue;\r
+ }\r
+ String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
+ String name = "N/A";\r
+ if (mi != null) {\r
+ name = mi.getName();\r
+ }\r
+ String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
+ fpdModTableModel.addRow(row);\r
+ }\r
+ \r
+ TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
+ sorter.setSortState(0, TableSorter.ASCENDING);\r
+ }\r
+ \r
+ \r
+ private boolean moduleInfoInTable (String[] moduleInfo, DefaultTableModel model) {\r
+ boolean matched = false;\r
+ int size = model.getDataVector().size();\r
+ for (int i = 0; i < size; ++i) {\r
+ Vector rowData = (Vector)model.getDataVector().elementAt(i);\r
+ for (int j = 1; j < rowData.size(); ++j) {\r
+ if (rowData.elementAt(j) == null && moduleInfo[j-1] == null) {\r
+ matched = true;\r
+ }\r
+ else if (rowData.elementAt(j).equals("null") && moduleInfo[j-1] == null) {\r
+ matched = true;\r
+ }\r
+ else if (rowData.elementAt(j) == null && moduleInfo[j-1].equals("null")) {\r
+ matched = true;\r
+ }\r
+ else if (rowData.elementAt(j) != null && rowData.elementAt(j).toString().equalsIgnoreCase(moduleInfo[j-1])) {\r
+ matched = true;\r
+ }\r
+ else {\r
+ matched = false;\r
+ break;\r
+ }\r
+ }\r
+ \r
+ if (matched) {\r
+ return true;\r
+ }\r
+ \r
+ }\r
+ return false;\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * This method initializes jPanelModOrderN \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderN() {\r
+ if (jPanelModOrderN == null) {\r
+ jPanelModOrderN = new JPanel();\r
+ }\r
+ return jPanelModOrderN;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderS \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderS() {\r
+ if (jPanelModOrderS == null) {\r
+ FlowLayout flowLayout6 = new FlowLayout();\r
+ flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT);\r
+ jPanelModOrderS = new JPanel();\r
+ jPanelModOrderS.setLayout(flowLayout6);\r
+ jPanelModOrderS.add(getJButtonOk(), null);\r
+ jPanelModOrderS.add(getJButtonCancel(), null);\r
+ }\r
+ return jPanelModOrderS;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelModOrderC \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelModOrderC() {\r
+ if (jPanelModOrderC == null) {\r
+ jPanelModOrderC = new JPanel();\r
+ jPanelModOrderC.add(getJScrollPaneModInFv(), null);\r
+ jPanelModOrderC.add(getJPanelController(), null);\r
+ jPanelModOrderC.add(getJScrollPaneFpdModules(), null);\r
+ }\r
+ return jPanelModOrderC;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneModInFv \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneModInFv() {\r
+ if (jScrollPaneModInFv == null) {\r
+ jScrollPaneModInFv = new JScrollPane();\r
+ jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(200,500));\r
+ jScrollPaneModInFv.setViewportView(getJTableModInFv());\r
+ }\r
+ return jScrollPaneModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableModInFv \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableModInFv() {\r
+ if (jTableModInFv == null) {\r
+ modInFvTableModel = new IDefaultTableModel();\r
+ \r
+ jTableModInFv = new JTable(modInFvTableModel){\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 4903583933542581721L;\r
+\r
+ public String getToolTipText(MouseEvent e) {\r
+ String tip = null;\r
+ java.awt.Point p = e.getPoint();\r
+ int rowIndex = rowAtPoint(p);\r
+// int colIndex = columnAtPoint(p);\r
+// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
+\r
+ TableModel model = getModel();\r
+ String mg = (String) model.getValueAt(rowIndex, 1);\r
+ String mv = (String) model.getValueAt(rowIndex, 2);\r
+ String pg = (String) model.getValueAt(rowIndex, 3);\r
+ String pv = (String) model.getValueAt(rowIndex, 4);\r
+ String arch = (String) model.getValueAt(rowIndex, 5);\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
+ if (mi != null) {\r
+ tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
+ }\r
+ else {\r
+ tip = "No Module Path Information."; \r
+ }\r
+ \r
+ return tip;\r
+ }\r
+\r
+ };\r
+ modInFvTableModel.addColumn("Module Orders in FV");\r
+ modInFvTableModel.addColumn("mg");\r
+ modInFvTableModel.addColumn("mv");\r
+ modInFvTableModel.addColumn("pg");\r
+ modInFvTableModel.addColumn("pv");\r
+ modInFvTableModel.addColumn("arch");\r
+ \r
+ for (int i = 1; i < 6; ++i) {\r
+ jTableModInFv.removeColumn(jTableModInFv.getColumnModel().getColumn(jTableModInFv.getColumnCount()-1));\r
+ }\r
+ \r
+ jTableModInFv.setRowHeight(20);\r
+ jTableModInFv.setShowGrid(false);\r
+ jTableModInFv.setAutoCreateColumnsFromModel(false);\r
+ jTableModInFv.addMouseListener(new MouseAdapter() {\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
+ */\r
+ @Override\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getButton() == MouseEvent.BUTTON3) {\r
+ java.awt.Point p = arg0.getPoint();\r
+ int rowIndex = jTableModInFv.rowAtPoint(p);\r
+ TableModel model = jTableModInFv.getModel();\r
+ String mg = (String) model.getValueAt(rowIndex, 1);\r
+ String mv = (String) model.getValueAt(rowIndex, 2);\r
+ String pg = (String) model.getValueAt(rowIndex, 3);\r
+ String pv = (String) model.getValueAt(rowIndex, 4);\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
+ String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
+ if (mi != null) {\r
+ details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
+ }\r
+ JOptionPane.showMessageDialog(frame, details);\r
+ }\r
+ }\r
+ \r
+ });\r
+ }\r
+ return jTableModInFv;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jPanelController \r
+ * \r
+ * @return javax.swing.JPanel \r
+ */\r
+ private JPanel getJPanelController() {\r
+ if (jPanelController == null) {\r
+ FlowLayout flowLayout5 = new FlowLayout();\r
+ flowLayout5.setVgap(50);\r
+ flowLayout5.setHgap(50);\r
+ jPanelController = new JPanel();\r
+ jPanelController.setLayout(flowLayout5);\r
+ jPanelController.setPreferredSize(new java.awt.Dimension(150,500));\r
+ jPanelController.add(getJButtonUp(), null);\r
+ jPanelController.add(getJButtonInsert(), null);\r
+ jPanelController.add(getJButtonRemove(), null);\r
+ jPanelController.add(getJButtonDown(), null);\r
+ }\r
+ return jPanelController;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jScrollPaneFpdModules \r
+ * \r
+ * @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPaneFpdModules() {\r
+ if (jScrollPaneFpdModules == null) {\r
+ jScrollPaneFpdModules = new JScrollPane();\r
+ jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(200,500));\r
+ jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
+ }\r
+ return jScrollPaneFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTableFpdModules \r
+ * \r
+ * @return javax.swing.JTable \r
+ */\r
+ private JTable getJTableFpdModules() {\r
+ if (jTableFpdModules == null) {\r
+ fpdModTableModel = new IDefaultTableModel();\r
+ TableSorter sorter = new TableSorter(fpdModTableModel);\r
+ jTableFpdModules = new JTable(sorter){\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = -4666296888377637808L;\r
+\r
+ public String getToolTipText(MouseEvent e) {\r
+ String tip = null;\r
+ java.awt.Point p = e.getPoint();\r
+ int rowIndex = rowAtPoint(p);\r
+// int colIndex = columnAtPoint(p);\r
+// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
+\r
+ TableModel model = getModel();\r
+ String mg = (String) model.getValueAt(rowIndex, 1);\r
+ String mv = (String) model.getValueAt(rowIndex, 2);\r
+ String pg = (String) model.getValueAt(rowIndex, 3);\r
+ String pv = (String) model.getValueAt(rowIndex, 4);\r
+ String arch = (String) model.getValueAt(rowIndex, 5);\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
+ if (mi != null) {\r
+ tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
+ }\r
+ else {\r
+ tip = "No Module Path Information."; \r
+ }\r
+ \r
+ return tip;\r
+ }\r
+\r
+ };\r
+ \r
+ fpdModTableModel.addColumn("Modules in Platform");\r
+ fpdModTableModel.addColumn("mg");\r
+ fpdModTableModel.addColumn("mv");\r
+ fpdModTableModel.addColumn("pg");\r
+ fpdModTableModel.addColumn("pv");\r
+ fpdModTableModel.addColumn("arch");\r
+ \r
+ for (int i = 1; i < 6; ++i) {\r
+ jTableFpdModules.removeColumn(jTableFpdModules.getColumnModel().getColumn(jTableFpdModules.getColumnCount()-1));\r
+ }\r
+ jTableFpdModules.setRowHeight(20);\r
+ jTableFpdModules.setShowGrid(false);\r
+ jTableFpdModules.setAutoCreateColumnsFromModel(false);\r
+ jTableFpdModules.addMouseListener(new MouseAdapter() {\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
+ */\r
+ @Override\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getButton() == MouseEvent.BUTTON3) {\r
+ java.awt.Point p = arg0.getPoint();\r
+ int rowIndex = jTableFpdModules.rowAtPoint(p);\r
+ TableModel model = jTableFpdModules.getModel();\r
+ String mg = (String) model.getValueAt(rowIndex, 1);\r
+ String mv = (String) model.getValueAt(rowIndex, 2);\r
+ String pg = (String) model.getValueAt(rowIndex, 3);\r
+ String pv = (String) model.getValueAt(rowIndex, 4);\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
+ String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
+ if (mi != null) {\r
+ details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
+ }\r
+ JOptionPane.showMessageDialog(frame, details);\r
+ }\r
+ }\r
+ \r
+ });\r
+\r
+ }\r
+ return jTableFpdModules;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonUp \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonUp() {\r
+ if (jButtonUp == null) {\r
+ jButtonUp = new JButton();\r
+ jButtonUp.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));\r
+ jButtonUp.setText("^");\r
+ jButtonUp.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableModInFv.getSelectedRow();\r
+ if (selectedRow <= 0) {\r
+ return;\r
+ }\r
+ modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1);\r
+ jTableModInFv.changeSelection(selectedRow - 1, 0, false, false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonUp;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonInsert \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonInsert() {\r
+ if (jButtonInsert == null) {\r
+ jButtonInsert = new JButton();\r
+ jButtonInsert.setText("<");\r
+ jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonInsert.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRowRight = jTableFpdModules.getSelectedRow();\r
+ if (selectedRowRight < 0) {\r
+ return;\r
+ }\r
+ \r
+ int rowInModel = ((TableSorter)jTableFpdModules.getModel()).getModelRowIndex(selectedRowRight);\r
+ String name = fpdModTableModel.getValueAt(rowInModel, 0)+"";\r
+ String mg = fpdModTableModel.getValueAt(rowInModel, 1)+"";\r
+ String mv = fpdModTableModel.getValueAt(rowInModel, 2)+"";\r
+ String pg = fpdModTableModel.getValueAt(rowInModel, 3)+"";\r
+ String pv = fpdModTableModel.getValueAt(rowInModel, 4)+"";\r
+ String arch = fpdModTableModel.getValueAt(rowInModel, 5)+"";\r
+ String[] row = {name, mg, mv, pg, pv, arch};\r
+ if (name.length() == 0 || name.equals("N/A")) {\r
+ return;\r
+ }\r
+ \r
+ int selectedRowLeft = jTableModInFv.getSelectedRow();\r
+ if (selectedRowLeft < 0) {\r
+ modInFvTableModel.addRow(row);\r
+ jTableModInFv.changeSelection(jTableModInFv.getRowCount() - 1, 0, false, false);\r
+ }\r
+ else {\r
+ modInFvTableModel.insertRow(selectedRowLeft, row);\r
+ jTableModInFv.changeSelection(selectedRowLeft, 0, false, false);\r
+ }\r
+ fpdModTableModel.removeRow(rowInModel);\r
+ }\r
+ });\r
+ }\r
+ return jButtonInsert;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonRemove \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonRemove() {\r
+ if (jButtonRemove == null) {\r
+ jButtonRemove = new JButton();\r
+ jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonRemove.setText(">");\r
+ jButtonRemove.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRowLeft = jTableModInFv.getSelectedRow();\r
+ if (selectedRowLeft < 0) {\r
+ return;\r
+ }\r
+ \r
+ String name = modInFvTableModel.getValueAt(selectedRowLeft, 0)+"";\r
+ String mg = modInFvTableModel.getValueAt(selectedRowLeft, 1)+"";\r
+ String mv = modInFvTableModel.getValueAt(selectedRowLeft, 2)+"";\r
+ String pg = modInFvTableModel.getValueAt(selectedRowLeft, 3)+"";\r
+ String pv = modInFvTableModel.getValueAt(selectedRowLeft, 4)+"";\r
+ String arch = modInFvTableModel.getValueAt(selectedRowLeft, 5)+"";\r
+ String[] row = {name, mg, mv, pg, pv, arch};\r
+ String moduleKey = mg + " " + mv + " " + pg + " " + pv + " " + arch; \r
+ if (name.length() == 0 || name.equals("N/A") || ffc.getModuleSA(moduleKey) == null) {\r
+ JOptionPane.showMessageDialog(frame, "Module " + name + " not exists in platform. If you want to add back this module, please first add it into current platform. " + moduleKey );\r
+ modInFvTableModel.removeRow(selectedRowLeft);\r
+ return;\r
+ }\r
+ \r
+ fpdModTableModel.addRow(row);\r
+ int viewIndex = ((TableSorter) jTableFpdModules.getModel()).getViewIndexArray()[jTableFpdModules\r
+ .getRowCount() - 1];\r
+ jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
+ modInFvTableModel.removeRow(selectedRowLeft);\r
+ }\r
+ });\r
+ }\r
+ return jButtonRemove;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonDown \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonDown() {\r
+ if (jButtonDown == null) {\r
+ jButtonDown = new JButton();\r
+ jButtonDown.setPreferredSize(new java.awt.Dimension(60,20));\r
+ jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));\r
+ jButtonDown.setText("v");\r
+ jButtonDown.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ int selectedRow = jTableModInFv.getSelectedRow();\r
+ if (selectedRow >= jTableModInFv.getRowCount() - 1) {\r
+ return;\r
+ }\r
+ modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow + 1);\r
+ jTableModInFv.changeSelection(selectedRow + 1, 0, false, false);\r
+ }\r
+ });\r
+ }\r
+ return jButtonDown;\r
+ }\r
+ \r
+ /**\r
+ * This method initializes jButtonOk \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ 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
+ jButtonOk.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent e) {\r
+ // need reset FvBindings in ModuleSA.\r
+ ffc.removeFvBindingAll(title);\r
+ //\r
+ // collect module order information to store them into <BuildOptions> -> <UserExtensions>.\r
+ // also update the FvBinding info in <ModuleSA>.\r
+ //\r
+ Vector<String[]> vModInFv = new Vector<String[]>();\r
+ for (int i = 0; i < jTableModInFv.getRowCount(); ++i) {\r
+ String moduleName = modInFvTableModel.getValueAt(i, 0)+"";\r
+ if (moduleName.length() == 0 || moduleName.equals("N/A")) {\r
+ continue;\r
+ }\r
+ \r
+ String mg = modInFvTableModel.getValueAt(i, 1)+"";\r
+ String mv = modInFvTableModel.getValueAt(i, 2)+"";\r
+ String pg = modInFvTableModel.getValueAt(i, 3)+"";\r
+ String pv = modInFvTableModel.getValueAt(i, 4)+"";\r
+ String arch = modInFvTableModel.getValueAt(i, 5)+"";\r
+ \r
+ String moduleInfo = mg + " " + mv + " " + pg + " " + pv + " " + arch;\r
+ \r
+ String[] sa = { mg, mv, pg, pv, arch};\r
+ vModInFv.add(sa);\r
+ ffc.updateFvBindingInModuleSA(moduleInfo, title);\r
+ \r
+ }\r
+ ffc.removeBuildOptionsUserExtensions(title);\r
+ ffc.genBuildOptionsUserExtensions(title, outputFileName, vModInFv);\r
+ \r
+ docConsole.setSaved(false);\r
+ jTabbedPane.setSelectedIndex(0);\r
+ }\r
+ });\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
+ jTabbedPane.setSelectedIndex(0);\r
+ }\r
+ });\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+ }\r