]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java
Fixed grammar and column widths (set min, preferred and max widths for version and...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFrameworkModules.java
... / ...
CommitLineData
1package org.tianocore.frameworkwizard.platform.ui;\r
2\r
3import java.awt.BorderLayout;\r
4\r
5import javax.swing.JFrame;\r
6import javax.swing.JOptionPane;\r
7import javax.swing.JPanel;\r
8import javax.swing.JSplitPane;\r
9import javax.swing.JLabel;\r
10import javax.swing.JScrollPane;\r
11import javax.swing.JTable;\r
12import javax.swing.JButton;\r
13import javax.swing.ListSelectionModel;\r
14import javax.swing.table.DefaultTableModel;\r
15\r
16import org.tianocore.PlatformSurfaceAreaDocument;\r
17import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
18import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
19import org.tianocore.frameworkwizard.platform.ui.global.GlobalData;\r
20import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification;\r
21import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification;\r
22\r
23import java.awt.FlowLayout;\r
24import java.io.File;\r
25import java.util.ArrayList;\r
26import java.util.HashMap;\r
27import java.util.Iterator;\r
28import java.util.Map;\r
29import java.util.Set;\r
30import java.util.Vector;\r
31\r
32public class FpdFrameworkModules extends IInternalFrame {\r
33\r
34 /**\r
35 * \r
36 */\r
37 private static final long serialVersionUID = 1L;\r
38\r
39 static JFrame frame;\r
40\r
41 private JSplitPane jSplitPane = null;\r
42\r
43 private JPanel jPanelTop = null;\r
44\r
45 private JPanel jPanelBottom = null;\r
46\r
47 private JLabel jLabel = null;\r
48\r
49 private JScrollPane jScrollPaneAllModules = null;\r
50\r
51 private JTable jTableAllModules = null;\r
52\r
53 private JPanel jPanelTopSouth = null;\r
54\r
55 private JButton jButtonAddModule = null;\r
56\r
57 private JLabel jLabelModulesAdded = null;\r
58\r
59 private JPanel jPanelBottomSouth = null;\r
60\r
61 private JScrollPane jScrollPaneFpdModules = null;\r
62\r
63 private JTable jTableFpdModules = null;\r
64\r
65 private JButton jButtonSettings = null;\r
66\r
67 private JButton jButtonRemoveModule = null;\r
68\r
69 private NonEditableTableModel modelAllModules = null;\r
70\r
71 private NonEditableTableModel modelFpdModules = null;\r
72\r
73 private FpdModuleSA settingDlg = null;\r
74\r
75 private FpdFileContents ffc = null;\r
76\r
77 private OpeningPlatformType docConsole = null;\r
78\r
79 private Map<String, ArrayList<String>> fpdMsa = null;\r
80\r
81 private ArrayList<ModuleIdentification> miList = null;\r
82\r
83 private final int ModNameCol = 0;\r
84\r
85 private final int ModVerCol = 1;\r
86\r
87 private final int PkgNameCol = 2;\r
88\r
89 private final int PkgVerCol = 3;\r
90\r
91 private final int ArchCol = 4;\r
92\r
93 private final int Path4Col = 4;\r
94\r
95 private final int Path5Col = 5;\r
96 \r
97 private final int ModNameMinWidth = 168;\r
98 \r
99 private final int ModNamePrefWidth = 200;\r
100\r
101 private final int PkgNameMinWidth = 100;\r
102 \r
103 private final int PkgNamePrefWidth = 110;\r
104 \r
105 private final int PkgNameMaxWidth = 150;\r
106 \r
107 private final int VerMinWidth = 50;\r
108 \r
109 private final int VerMaxWidth = 80;\r
110 \r
111 private final int VerPrefWidth = 60;\r
112 \r
113 private final int PathPrefWidth = 320;\r
114 \r
115 private final int PathMinWidth = 280;\r
116 \r
117 private final int ArchPrefWidth = 80;\r
118 \r
119 private final int ArchMinWidth = 60;\r
120 \r
121 private final int ArchMaxWidth = 100;\r
122 \r
123 /**\r
124 * This method initializes jSplitPane \r
125 * \r
126 * @return javax.swing.JSplitPane \r
127 */\r
128 private JSplitPane getJSplitPane() {\r
129 if (jSplitPane == null) {\r
130 jSplitPane = new JSplitPane();\r
131 jSplitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
132 jSplitPane.setDividerLocation(250);\r
133 jSplitPane.setBottomComponent(getJPanelBottom());\r
134 jSplitPane.setTopComponent(getJPanelTop());\r
135 }\r
136 return jSplitPane;\r
137 }\r
138\r
139 /**\r
140 * This method initializes jPanel \r
141 * \r
142 * @return javax.swing.JPanel \r
143 */\r
144 private JPanel getJPanelTop() {\r
145 if (jPanelTop == null) {\r
146 jLabel = new JLabel();\r
147 jLabel.setText("Modules in Workspace");\r
148 jPanelTop = new JPanel();\r
149 jPanelTop.setLayout(new BorderLayout());\r
150 jPanelTop.add(jLabel, java.awt.BorderLayout.NORTH);\r
151 jPanelTop.add(getJScrollPaneAllModules(), java.awt.BorderLayout.CENTER);\r
152 jPanelTop.add(getJPanelTopSouth(), java.awt.BorderLayout.SOUTH);\r
153 }\r
154 return jPanelTop;\r
155 }\r
156\r
157 /**\r
158 * This method initializes jPanel1 \r
159 * \r
160 * @return javax.swing.JPanel \r
161 */\r
162 private JPanel getJPanelBottom() {\r
163 if (jPanelBottom == null) {\r
164 jLabelModulesAdded = new JLabel();\r
165 jLabelModulesAdded.setText("Modules Added");\r
166 jPanelBottom = new JPanel();\r
167 jPanelBottom.setLayout(new BorderLayout());\r
168 jPanelBottom.add(jLabelModulesAdded, java.awt.BorderLayout.NORTH);\r
169 jPanelBottom.add(getJPanelBottomSouth(), java.awt.BorderLayout.SOUTH);\r
170 jPanelBottom.add(getJScrollPaneFpdModules(), java.awt.BorderLayout.CENTER);\r
171 }\r
172 return jPanelBottom;\r
173 }\r
174\r
175 /**\r
176 * This method initializes jScrollPane \r
177 * \r
178 * @return javax.swing.JScrollPane \r
179 */\r
180 private JScrollPane getJScrollPaneAllModules() {\r
181 if (jScrollPaneAllModules == null) {\r
182 jScrollPaneAllModules = new JScrollPane();\r
183 jScrollPaneAllModules.setPreferredSize(new java.awt.Dimension(600, 200));\r
184 jScrollPaneAllModules.setViewportView(getJTableAllModules());\r
185 }\r
186 return jScrollPaneAllModules;\r
187 }\r
188\r
189 /**\r
190 * This method initializes jTable \r
191 * \r
192 * @return javax.swing.JTable \r
193 */\r
194 private JTable getJTableAllModules() {\r
195 if (jTableAllModules == null) {\r
196 modelAllModules = new NonEditableTableModel();\r
197 TableSorter sorter = new TableSorter(modelAllModules);\r
198 jTableAllModules = new JTable(sorter);\r
199 sorter.setTableHeader(jTableAllModules.getTableHeader());\r
200 jTableAllModules.setRowHeight(20);\r
201 modelAllModules.addColumn("<html>Module<br>Name</html>");\r
202 modelAllModules.addColumn("<html>Module<br>Version</html>");\r
203 modelAllModules.addColumn("<html>Package<br>Name</html>");\r
204 modelAllModules.addColumn("<html>Package<br>Version</html>");\r
205 modelAllModules.addColumn("Path");\r
206 javax.swing.table.TableColumn column = null;\r
207 column = jTableAllModules.getColumnModel().getColumn(ModNameCol);\r
208 column.setPreferredWidth(ModNamePrefWidth);\r
209 column.setMinWidth(ModNameMinWidth);\r
210 column = jTableAllModules.getColumnModel().getColumn(ModVerCol);\r
211 column.setPreferredWidth(VerPrefWidth);\r
212 column.setMaxWidth(VerMaxWidth);\r
213 column.setMinWidth(VerMinWidth);\r
214 column = jTableAllModules.getColumnModel().getColumn(PkgNameCol);\r
215 column.setPreferredWidth(PkgNamePrefWidth);\r
216 column.setMinWidth(PkgNameMinWidth);\r
217 column.setMaxWidth(PkgNameMaxWidth);\r
218 column = jTableAllModules.getColumnModel().getColumn(PkgVerCol);\r
219 column.setPreferredWidth(VerPrefWidth);\r
220 column.setMaxWidth(VerMaxWidth);\r
221 column.setMinWidth(VerMinWidth);\r
222 column = jTableAllModules.getColumnModel().getColumn(Path4Col);\r
223 column.setPreferredWidth(PathPrefWidth);\r
224 column.setMinWidth(PathMinWidth);\r
225\r
226 jTableAllModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
227 }\r
228 return jTableAllModules;\r
229 }\r
230\r
231 /**\r
232 * This method initializes jPanel2 \r
233 * \r
234 * @return javax.swing.JPanel \r
235 */\r
236 private JPanel getJPanelTopSouth() {\r
237 if (jPanelTopSouth == null) {\r
238 FlowLayout flowLayout = new FlowLayout();\r
239 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
240 jPanelTopSouth = new JPanel();\r
241 jPanelTopSouth.setLayout(flowLayout);\r
242 jPanelTopSouth.add(getJButtonAddModule(), null);\r
243 }\r
244 return jPanelTopSouth;\r
245 }\r
246\r
247 /**\r
248 * This method initializes jButton \r
249 * \r
250 * @return javax.swing.JButton \r
251 */\r
252 private JButton getJButtonAddModule() {\r
253 if (jButtonAddModule == null) {\r
254 jButtonAddModule = new JButton();\r
255 jButtonAddModule.setPreferredSize(new java.awt.Dimension(130, 20));\r
256 jButtonAddModule.setText("Add a Module");\r
257 jButtonAddModule.addActionListener(new java.awt.event.ActionListener() {\r
258 public void actionPerformed(java.awt.event.ActionEvent e) {\r
259 int selectedRow = jTableAllModules.getSelectedRow();\r
260 if (selectedRow < 0) {\r
261 return;\r
262 }\r
263\r
264 TableSorter sorter = (TableSorter) jTableAllModules.getModel();\r
265 selectedRow = sorter.modelIndex(selectedRow);\r
266 String path = modelAllModules.getValueAt(selectedRow, Path4Col) + "";\r
267 ModuleIdentification mi = miList.get(selectedRow);\r
268 Vector<String> vArchs = null;\r
269 try {\r
270 vArchs = GlobalData.getModuleSupArchs(mi);\r
271 }\r
272 catch (Exception exp) {\r
273 JOptionPane.showMessageDialog(frame, exp.getMessage());\r
274 }\r
275\r
276 if (vArchs == null) {\r
277 JOptionPane.showMessageDialog(frame, "No Supported Architectures specified in MSA file.");\r
278 return;\r
279 }\r
280\r
281 String archsAdded = "";\r
282 String mg = mi.getGuid();\r
283 String mv = mi.getVersion();\r
284 String pg = mi.getPackage().getGuid();\r
285 String pv = mi.getPackage().getVersion();\r
286\r
287 ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
288 if (al == null) {\r
289 al = new ArrayList<String>();\r
290 fpdMsa.put(mg + mv + pg + pv, al);\r
291 }\r
292 for (int i = 0; i < al.size(); ++i) {\r
293 vArchs.remove(al.get(i));\r
294 }\r
295 //\r
296 // Archs this Module supported have already been added.\r
297 //\r
298 if (vArchs.size() == 0) {\r
299 JOptionPane.showMessageDialog(frame, "This Module has already been added.");\r
300 return;\r
301 }\r
302 //ToDo put Arch instead of null\r
303 boolean errorOccurred = false;\r
304 for (int i = 0; i < vArchs.size(); ++i) {\r
305 String arch = vArchs.get(i);\r
306 al.add(arch);\r
307 archsAdded += arch + " ";\r
308 String[] row = { "", mv, "", pv, arch, path };\r
309\r
310 if (mi != null) {\r
311 row[ModNameCol] = mi.getName();\r
312 row[PkgNameCol] = mi.getPackage().getName();\r
313\r
314 }\r
315 modelFpdModules.addRow(row);\r
316\r
317 docConsole.setSaved(false);\r
318 try {\r
319 //ToDo : specify archs need to add.\r
320 ffc.addFrameworkModulesPcdBuildDefs(mi, arch, null);\r
321 } catch (Exception exception) {\r
322 JOptionPane.showMessageDialog(frame, "Adding " + row[ModNameCol] + " with SupArch " + arch\r
323 + ": " + exception.getMessage());\r
324 errorOccurred = true;\r
325 }\r
326 }\r
327\r
328 String s = "This Module with Architecture " + archsAdded;\r
329 if (errorOccurred) {\r
330 s += " was added with Error. Platform may NOT Build.";\r
331 } else {\r
332 s += " was added Successfully.";\r
333 }\r
334 JOptionPane.showMessageDialog(frame, s);\r
335 jTableFpdModules.changeSelection(modelFpdModules.getRowCount() - 1, 0, false, false);\r
336 }\r
337 });\r
338 }\r
339 return jButtonAddModule;\r
340 }\r
341\r
342 /**\r
343 * This method initializes jPanel3 \r
344 * \r
345 * @return javax.swing.JPanel \r
346 */\r
347 private JPanel getJPanelBottomSouth() {\r
348 if (jPanelBottomSouth == null) {\r
349 FlowLayout flowLayout1 = new FlowLayout();\r
350 flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
351 jPanelBottomSouth = new JPanel();\r
352 jPanelBottomSouth.setLayout(flowLayout1);\r
353 jPanelBottomSouth.add(getJButtonSettings(), null);\r
354 jPanelBottomSouth.add(getJButtonRemoveModule(), null);\r
355 }\r
356 return jPanelBottomSouth;\r
357 }\r
358\r
359 /**\r
360 * This method initializes jScrollPane1 \r
361 * \r
362 * @return javax.swing.JScrollPane \r
363 */\r
364 private JScrollPane getJScrollPaneFpdModules() {\r
365 if (jScrollPaneFpdModules == null) {\r
366 jScrollPaneFpdModules = new JScrollPane();\r
367 jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(453, 200));\r
368 jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
369 }\r
370 return jScrollPaneFpdModules;\r
371 }\r
372\r
373 /**\r
374 * This method initializes jTable1 \r
375 * \r
376 * @return javax.swing.JTable \r
377 */\r
378 private JTable getJTableFpdModules() {\r
379 if (jTableFpdModules == null) {\r
380 modelFpdModules = new NonEditableTableModel();\r
381 TableSorter sorter = new TableSorter(modelFpdModules);\r
382 jTableFpdModules = new JTable(sorter);\r
383 sorter.setTableHeader(jTableFpdModules.getTableHeader());\r
384 jTableFpdModules.setRowHeight(20);\r
385 modelFpdModules.addColumn("<html>Module<br>Name</html>");\r
386 modelFpdModules.addColumn("<html>Module<br>Version</html>");\r
387 modelFpdModules.addColumn("<html>Package<br>Name</html>");\r
388 modelFpdModules.addColumn("<html>Package<br>Version</html>");\r
389 modelFpdModules.addColumn("<html>Supported<br>Architectures</html>");\r
390 modelFpdModules.addColumn("Path");\r
391 javax.swing.table.TableColumn column = null;\r
392 column = jTableFpdModules.getColumnModel().getColumn(ModNameCol);\r
393 column.setPreferredWidth(ModNamePrefWidth);\r
394 column.setMinWidth(ModNameMinWidth);\r
395 column = jTableFpdModules.getColumnModel().getColumn(ModVerCol);\r
396 column.setPreferredWidth(VerPrefWidth);\r
397 column.setMaxWidth(VerMaxWidth);\r
398 column.setMinWidth(VerMinWidth);\r
399 column = jTableFpdModules.getColumnModel().getColumn(PkgNameCol);\r
400 column.setPreferredWidth(PkgNamePrefWidth);\r
401 column.setMinWidth(PkgNameMinWidth);\r
402 column.setMaxWidth(PkgNameMaxWidth);\r
403 column = jTableFpdModules.getColumnModel().getColumn(PkgVerCol);\r
404 column.setPreferredWidth(VerPrefWidth);\r
405 column.setMaxWidth(VerMaxWidth);\r
406 column.setMinWidth(VerMinWidth);\r
407 column = jTableFpdModules.getColumnModel().getColumn(ArchCol);\r
408 column.setPreferredWidth(ArchPrefWidth);\r
409 column.setMaxWidth(ArchMaxWidth);\r
410 column.setMinWidth(ArchMinWidth);\r
411 column = jTableFpdModules.getColumnModel().getColumn(Path5Col);\r
412 column.setPreferredWidth(PathPrefWidth);\r
413 column.setMinWidth(PathMinWidth);\r
414\r
415 jTableFpdModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
416 }\r
417 return jTableFpdModules;\r
418 }\r
419\r
420 /**\r
421 * This method initializes jButton1 \r
422 * \r
423 * @return javax.swing.JButton \r
424 */\r
425 private JButton getJButtonSettings() {\r
426 if (jButtonSettings == null) {\r
427 jButtonSettings = new JButton();\r
428 jButtonSettings.setPreferredSize(new java.awt.Dimension(130,20));\r
429 jButtonSettings.setText("Settings");\r
430 jButtonSettings.addActionListener(new java.awt.event.ActionListener() {\r
431 public void actionPerformed(java.awt.event.ActionEvent e) {\r
432 int selectedRow = jTableFpdModules.getSelectedRow();\r
433 if (selectedRow < 0) {\r
434 return;\r
435 }\r
436\r
437 TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
438 selectedRow = sorter.modelIndex(selectedRow);\r
439 try {\r
440 if (ffc.adjustPcd(selectedRow)) {\r
441 docConsole.setSaved(false);\r
442 }\r
443 }\r
444 catch (Exception exp) {\r
445 JOptionPane.showMessageDialog(frame, exp.getMessage());\r
446 return;\r
447 }\r
448 \r
449 if (settingDlg == null) {\r
450 settingDlg = new FpdModuleSA(ffc);\r
451 }\r
452\r
453 String[] sa = new String[5];\r
454 ffc.getFrameworkModuleInfo(selectedRow, sa);\r
455 String mg = sa[ModNameCol];\r
456 String mv = sa[ModVerCol];\r
457 String pg = sa[PkgNameCol];\r
458 String pv = sa[PkgVerCol];\r
459 String arch = sa[ArchCol];\r
460 settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv + " " + arch, selectedRow, docConsole);\r
461 settingDlg.setVisible(true);\r
462 }\r
463 });\r
464 }\r
465 return jButtonSettings;\r
466 }\r
467\r
468 /**\r
469 * This method initializes jButton2 \r
470 * \r
471 * @return javax.swing.JButton \r
472 */\r
473 private JButton getJButtonRemoveModule() {\r
474 if (jButtonRemoveModule == null) {\r
475 jButtonRemoveModule = new JButton();\r
476 jButtonRemoveModule.setPreferredSize(new java.awt.Dimension(130, 20));\r
477 jButtonRemoveModule.setText("Remove Module");\r
478 jButtonRemoveModule.addActionListener(new java.awt.event.ActionListener() {\r
479 public void actionPerformed(java.awt.event.ActionEvent e) {\r
480 int selectedRow = jTableFpdModules.getSelectedRow();\r
481 if (selectedRow < 0) {\r
482 return;\r
483 }\r
484\r
485 TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
486 selectedRow = sorter.modelIndex(selectedRow);\r
487\r
488 String[] sa = new String[5];\r
489 ffc.getFrameworkModuleInfo(selectedRow, sa);\r
490 String mg = sa[ModNameCol];\r
491 String mv = sa[ModVerCol];\r
492 String pg = sa[PkgNameCol];\r
493 String pv = sa[PkgVerCol];\r
494 String arch = sa[ArchCol];\r
495 ModuleIdentification mi = GlobalData.getModuleId(sa[ModNameCol] + " " + sa[ModVerCol] + " "\r
496 + sa[PkgNameCol] + " " + sa[PkgVerCol] + " "\r
497 + sa[ArchCol]);\r
498 mv = mi.getVersion();\r
499 pv = mi.getPackage().getVersion();\r
500 modelFpdModules.removeRow(selectedRow);\r
501 if (arch == null) {\r
502 // if no arch specified in ModuleSA\r
503 fpdMsa.remove(mg + mv + pg + pv);\r
504 } else {\r
505 ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
506 al.remove(arch);\r
507 if (al.size() == 0) {\r
508 fpdMsa.remove(mg + mv + pg + pv);\r
509 }\r
510 }\r
511\r
512 docConsole.setSaved(false);\r
513 ffc.removeModuleSA(selectedRow);\r
514 }\r
515 });\r
516 }\r
517 return jButtonRemoveModule;\r
518 }\r
519\r
520 /**\r
521 * @param args\r
522 */\r
523 public static void main(String[] args) {\r
524 // TODO Auto-generated method stub\r
525 new FpdFrameworkModules().setVisible(true);\r
526 }\r
527\r
528 /**\r
529 * This is the default constructor\r
530 */\r
531 public FpdFrameworkModules() {\r
532 super();\r
533 initialize();\r
534 }\r
535\r
536 public FpdFrameworkModules(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
537 this();\r
538 init(fpd);\r
539\r
540 }\r
541\r
542 public FpdFrameworkModules(OpeningPlatformType opt) {\r
543 this(opt.getXmlFpd());\r
544 docConsole = opt;\r
545 }\r
546\r
547 private void init(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
548 try {\r
549 GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", System.getenv("WORKSPACE"));\r
550 }\r
551 catch(Exception e){\r
552 JOptionPane.showMessageDialog(frame, "Error occurred when getting module data.");\r
553 }\r
554\r
555 if (ffc == null) {\r
556 ffc = new FpdFileContents(fpd);\r
557 ffc.initDynPcdMap();\r
558 }\r
559\r
560 if (fpdMsa == null) {\r
561 fpdMsa = new HashMap<String, ArrayList<String>>();\r
562 }\r
563\r
564 if (ffc.getFrameworkModulesCount() > 0) {\r
565 String[][] saa = new String[ffc.getFrameworkModulesCount()][5];\r
566 ffc.getFrameworkModulesInfo(saa);\r
567 for (int i = 0; i < saa.length; ++i) {\r
568 ModuleIdentification mi = GlobalData.getModuleId(saa[i][ModNameCol] + " " + saa[i][ModVerCol] + " "\r
569 + saa[i][PkgNameCol] + " " + saa[i][PkgVerCol]);\r
570 String[] row = { "", "", "", "", "", "" };\r
571 if (mi != null) {\r
572 row[ModNameCol] = mi.getName();\r
573 row[ModVerCol] = mi.getVersion();\r
574 row[PkgNameCol] = mi.getPackage().getName();\r
575 row[PkgVerCol] = mi.getPackage().getVersion();\r
576 row[ArchCol] = saa[i][ArchCol];\r
577 try {\r
578 row[Path5Col] = GlobalData.getMsaFile(mi).getPath().substring(\r
579 System.getenv("WORKSPACE")\r
580 .length() + 1);\r
581 } catch (Exception e) {\r
582 JOptionPane.showMessageDialog(frame, "Show FPD Modules:" + e.getMessage());\r
583 }\r
584 }\r
585 modelFpdModules.addRow(row);\r
586 ArrayList<String> al = fpdMsa.get(saa[i][ModNameCol] + row[ModVerCol] + saa[i][PkgNameCol]\r
587 + row[PkgVerCol]);\r
588 if (al == null) {\r
589 al = new ArrayList<String>();\r
590 fpdMsa.put(saa[i][ModNameCol] + row[ModVerCol] + saa[i][PkgNameCol] + row[PkgVerCol], al);\r
591 }\r
592 al.add(saa[i][Path4Col]);\r
593\r
594 }\r
595 }\r
596\r
597 showAllModules();\r
598\r
599 }\r
600\r
601 private void showAllModules() {\r
602\r
603 if (miList == null) {\r
604 miList = new ArrayList<ModuleIdentification>();\r
605 }\r
606 Set<PackageIdentification> spi = GlobalData.getPackageList();\r
607 Iterator ispi = spi.iterator();\r
608\r
609 while (ispi.hasNext()) {\r
610 PackageIdentification pi = (PackageIdentification) ispi.next();\r
611 String[] s = { "", "", "", "", "" };\r
612\r
613 Set<ModuleIdentification> smi = GlobalData.getModules(pi);\r
614 Iterator ismi = smi.iterator();\r
615 while (ismi.hasNext()) {\r
616 ModuleIdentification mi = (ModuleIdentification) ismi.next();\r
617 s[ModNameCol] = mi.getName();\r
618 s[ModVerCol] = mi.getVersion();\r
619 s[PkgNameCol] = pi.getName();\r
620 s[PkgVerCol] = pi.getVersion();\r
621 try {\r
622 s[Path4Col] = GlobalData.getMsaFile(mi).getPath()\r
623 .substring(System.getenv("WORKSPACE").length() + 1);\r
624 } catch (Exception e) {\r
625 JOptionPane.showMessageDialog(frame, "Show All Modules:" + e.getMessage());\r
626 }\r
627 modelAllModules.addRow(s);\r
628 miList.add(mi);\r
629 }\r
630 }\r
631 }\r
632\r
633 /**\r
634 * This method initializes this\r
635 * \r
636 * @return void\r
637 */\r
638 private void initialize() {\r
639 this.setSize(633, 533);\r
640 this.setTitle("Framework Modules");\r
641 this.setContentPane(getJSplitPane());\r
642 this.setVisible(true);\r
643\r
644 }\r
645\r
646} // @jve:decl-index=0:visual-constraint="10,10"\r
647\r
648class NonEditableTableModel extends DefaultTableModel {\r
649 /**\r
650 * \r
651 */\r
652 private static final long serialVersionUID = 1L;\r
653\r
654 public boolean isCellEditable(int row, int col) {\r
655 return false;\r
656 }\r
657}\r