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