+ 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 NonEditableTableModel modInFvTableModel = null;\r
+ private NonEditableTableModel fpdModTableModel = null;\r
+ \r
+ public ModuleOrderPane() {\r
+ super(new BorderLayout());\r
+ add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
+ add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
+ add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
+ addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentShown(java.awt.event.ComponentEvent e) {\r
+ String title = jTabbedPane.getTitleAt(jTabbedPane.getSelectedIndex()); // TODO Auto-generated Event stub componentShown()\r
+ showModulesInFv(title);\r
+ showAllModulesInPlatform();\r
+ }\r
+ });\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][2];\r
+ ffc.getUserExtsIncMods(fvName, saa);\r
+\r
+ for (int i = 0; i < size; ++i) {\r
+ String name = getModuleName(saa[i][0]);\r
+ String[] row = { name };\r
+ modInFvTableModel.addRow(row);\r
+ }\r
+ }\r
+ //\r
+ // From ModuleSAs, get module guids with FvBinding = fvName.\r
+ //\r
+ Vector<String> vGuid = new Vector<String>();\r
+ ffc.getFrameworkModuleGuid(fvName, vGuid);\r
+ //\r
+ // If BuildOptions->UserExtensions already contain these module info,\r
+ // no need to add them into table again.\r
+ //\r
+ Iterator<String> iter = vGuid.iterator();\r
+ while (iter.hasNext()){\r
+ String guid = iter.next();\r
+ String moduleName = getModuleName(guid);\r
+ if (existedInTable(moduleName, modInFvTableModel)) {\r
+ vGuid.remove(guid);\r
+ }\r
+ }\r
+ \r
+ for (int j = 0; j < vGuid.size(); ++j) {\r
+ String[] row = {getModuleName(vGuid.get(j))};\r
+ modInFvTableModel.addRow(row);\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
+ String name = getModuleName(saa[i][0]);\r
+ if (existedInTable(name, modInFvTableModel) || existedInTable(name, fpdModTableModel)) {\r
+ continue;\r
+ }\r
+ String[] row = {name};\r
+ fpdModTableModel.addRow(row);\r
+ }\r
+ \r
+ TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
+ sorter.setSortState(0, TableSorter.ASCENDING);\r
+ }\r
+ \r
+ private String getModuleName (String guid) {\r
+ \r
+ for (int i = 0; i < GlobalData.vModuleList.size(); ++i) {\r
+ String mg = GlobalData.vModuleList.get(i).getGuid();\r
+ if (mg == null) {\r
+ continue;\r
+ }\r
+ if (mg.equalsIgnoreCase(guid)) {\r
+ return GlobalData.vModuleList.get(i).getName();\r
+ }\r
+ }\r
+ \r
+ return "";\r
+ }\r
+ \r
+ private boolean existedInTable (String name, DefaultTableModel model) {\r
+ int size = model.getDataVector().size();\r
+ for (int i = 0; i < size; ++i) {\r
+ if (((Vector)model.getDataVector().elementAt(i)).contains(name)) {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\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 NonEditableTableModel();\r
+ modInFvTableModel.addColumn("Module Orders in FV");\r
+ jTableModInFv = new JTable(modInFvTableModel);\r
+ jTableModInFv.setRowHeight(20);\r
+ jTableModInFv.setShowGrid(false);\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 NonEditableTableModel();\r
+ TableSorter sorter = new TableSorter(fpdModTableModel);\r
+ jTableFpdModules = new JTable(sorter);\r
+ jTableFpdModules.setRowHeight(20);\r
+ jTableFpdModules.setShowGrid(false);\r
+ fpdModTableModel.addColumn("Modules in Platform");\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
+ \r
+ String[] row = {jTableFpdModules.getValueAt(selectedRowRight, 0)+""};\r
+ int selectedRowLeft = jTableModInFv.getSelectedRow();\r
+ if (selectedRowLeft < 0) {\r
+ modInFvTableModel.addRow(row);\r
+ jTableModInFv.changeSelection(jTableModInFv.getRowCount() - 1, 0, false, false);\r
+ fpdModTableModel.removeRow(rowInModel);\r
+ }\r
+ else {\r
+ modInFvTableModel.insertRow(selectedRowLeft, row);\r
+ jTableModInFv.changeSelection(selectedRowLeft, 0, false, false);\r
+ }\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[] row = {jTableModInFv.getValueAt(selectedRowLeft, 0)+""};\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
+ }\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