]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
rearrange target of procedures of library instance selection.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdModuleSA.java
CommitLineData
a13899c5 1package org.tianocore.frameworkwizard.platform.ui;\r
2\r
3import java.awt.BorderLayout;\r
f3b0ed9a 4import java.awt.Dimension;\r
5import java.awt.Toolkit;\r
a13899c5 6\r
a13899c5 7import javax.swing.JFrame;\r
8import javax.swing.JOptionPane;\r
9import javax.swing.JPanel;\r
10import javax.swing.JDialog;\r
11import javax.swing.JTabbedPane;\r
12import javax.swing.JLabel;\r
13import javax.swing.JScrollPane;\r
14import javax.swing.JTable;\r
a13899c5 15import javax.swing.JTextArea;\r
16import javax.swing.JSplitPane;\r
17import javax.swing.JButton;\r
18import javax.swing.ListSelectionModel;\r
19import javax.swing.event.ListSelectionEvent;\r
20import javax.swing.event.ListSelectionListener;\r
21import javax.swing.event.TableModelEvent;\r
22import javax.swing.event.TableModelListener;\r
23import javax.swing.table.DefaultTableModel;\r
a13899c5 24import javax.swing.table.TableModel;\r
25\r
8f55ea73 26import org.tianocore.frameworkwizard.common.DataValidation;\r
3658f95e 27import org.tianocore.frameworkwizard.common.GlobalData;\r
8f55ea73 28import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
1bf9fa5a 29import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
a13899c5 30import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery;\r
3658f95e 31import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
32import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
a13899c5 33\r
34import java.awt.FlowLayout;\r
35import java.awt.event.ActionEvent;\r
36import java.awt.event.ActionListener;\r
37import java.util.ArrayList;\r
38import java.util.HashMap;\r
39import java.util.Iterator;\r
40import java.util.ListIterator;\r
1800d80f 41import java.util.Vector;\r
42\r
6a09eb19 43import javax.swing.JTextField;\r
908b1c05 44import java.awt.GridLayout;\r
45import javax.swing.JComboBox;\r
a13899c5 46\r
47public class FpdModuleSA extends JDialog implements ActionListener {\r
48\r
44053733 49 /**\r
50 * \r
51 */\r
52 private static final long serialVersionUID = 1L;\r
a13899c5 53 static JFrame frame;\r
54 private JPanel jContentPane = null;\r
55 private JTabbedPane jTabbedPane = null;\r
57d0e52a 56 private JPanel jPanelPcd = null;\r
57 private JPanel jPanelLibrary = null;\r
58 private JLabel jLabelPcdData = null;\r
59 private JScrollPane jScrollPaneTablePcd = null;\r
60 private JTable jTablePcd = null;\r
61 private JPanel jPanelPcdSouth = null;\r
62 private JScrollPane jScrollPanePcdHelp = null;\r
63 private JTextArea jTextAreaPcdHelp = null;\r
64 private JPanel jPanelContentPaneSouth = null;\r
a13899c5 65 private JSplitPane jSplitPane = null;\r
57d0e52a 66 private JPanel jPanelLibraryLeft = null;\r
67 private JPanel jPanelLibraryRight = null;\r
68 private JLabel jLabelLibClass = null;\r
69 private JLabel jLabelQualifiedInstance = null;\r
70 private JScrollPane jScrollPaneSelectedInstances = null;\r
71 private JTable jTableSelectedInstances = null;\r
72 private JScrollPane jScrollPaneLibClass = null;\r
73 private JTable jTableLibClass = null;\r
74 private JScrollPane jScrollPaneQualifiedInstance = null;\r
75 private JTable jTableLibInstances = null;\r
76 private JPanel jPanelLibrarySouth = null;\r
77 private JPanel jPanelLibraryCenter = null;\r
78 private JScrollPane jScrollPaneInstanceHelp = null;\r
79 private JTextArea jTextAreaInstanceHelp = null;\r
80 private JLabel jLabelSelectedInstances = null;\r
81 private JLabel jLabelInstanceHelp = null;\r
82 private JButton jButtonAdd = null;\r
83 private JButton jButtonDeleteInstance = null;\r
84 private JLabel jLabelPcdHelp = null;\r
85 private JButton jButtonOk = null;\r
86 private JButton jButtonCancel = null;\r
a13899c5 87 private PartialEditableTableModel model = null;\r
57d0e52a 88 private LibraryTableModel selectedInstancesTableModel = null;\r
89 private LibraryTableModel libClassTableModel = null;\r
90 private LibraryTableModel libInstanceTableModel = null;\r
1800d80f 91 private DefaultTableModel optionsTableModel = null;\r
a13899c5 92 private FpdFileContents ffc = null;\r
93 private String moduleKey = null;\r
802e0055 94 private int moduleSaNum = -1;\r
a13899c5 95 private HashMap<String, ArrayList<String>> classInstanceMap = null;\r
96 private ArrayList<String> classProduced = null;\r
a13899c5 97 private HashMap<String, ArrayList<String>> classConsumed = null;\r
57d0e52a 98 private JPanel jPanelModuleSaOpts = null;\r
99 private JLabel jLabelFvBinding = null;\r
8f55ea73 100 private JTextField jTextFieldFvBinding = null;\r
57d0e52a 101 private JLabel jLabelFfsFileGuid = null;\r
8f55ea73 102 private JTextField jTextFieldFileGuid = null;\r
57d0e52a 103 private JLabel jLabelFfsFormatKey = null;\r
8f55ea73 104 private JTextField jTextFieldFfsKey = null;\r
57d0e52a 105 private JScrollPane jScrollPaneModuleSaOptions = null;\r
106 private JTable jTableModuleSaOptions = null;\r
107 private JButton jButtonNew = null;\r
108 private JButton jButtonDeleteOption = null;\r
109 private JPanel jPanelPcdFields = null;\r
110 private JPanel jPanelPcdFieldsSecondRow = null;\r
111 private JPanel jPanelPcdFieldsThirdRow = null;\r
112 private JPanel jPanelPcdFieldsFirstRow = null;\r
113 private JLabel jLabelItemType = null;\r
114 private JComboBox jComboBoxItemType = null;\r
115 private JLabel jLabelMaxDatumSize = null;\r
116 private JTextField jTextFieldMaxDatumSize = null;\r
117 private JLabel jLabelPcdDefaultValue = null;\r
118 private JTextField jTextFieldPcdDefault = null;\r
119 private JButton jButtonUpdatePcd = null;\r
120 private JComboBox jComboBoxFeatureFlagValue = null;\r
8f55ea73 121 private OpeningPlatformType docConsole = null;\r
c1dbe93d 122 private JPanel jPanelCustomToolChain = null;\r
123 private JPanel jPanelToolchainS = null;\r
124 private JPanel jPanelToolchainC = null;\r
a13899c5 125 /**\r
126 * This is the default constructor\r
127 */\r
128 public FpdModuleSA() {\r
129 super();\r
130 initialize();\r
131 }\r
132 public FpdModuleSA(FpdFileContents ffc) {\r
133 this();\r
134 this.ffc = ffc;\r
135 }\r
136 \r
8f55ea73 137 public void setKey(String k, int i, OpeningPlatformType dc){\r
a13899c5 138 this.moduleKey = k;\r
802e0055 139 moduleSaNum = i;\r
8f55ea73 140 this.docConsole = dc;\r
57d0e52a 141 classProduced = null;\r
142 classConsumed = null;\r
908b1c05 143 jTabbedPane.setSelectedIndex(0);\r
055e7ae6 144 initPcdBuildDefinition(i);\r
a13899c5 145 }\r
146\r
147 /**\r
148 init will be called each time FpdModuleSA object is to be shown.\r
149 @param key Module information.\r
150 **/\r
055e7ae6 151 public void initPcdBuildDefinition(int i) {\r
a13899c5 152 //\r
153 // display pcd for key.\r
154 //\r
155 model.setRowCount(0);\r
1bf9fa5a 156 jTextAreaPcdHelp.setText("");\r
157 jComboBoxItemType.setSelectedIndex(-1);\r
158 jTextFieldMaxDatumSize.setText("");\r
159 jTextFieldPcdDefault.setText("");\r
055e7ae6 160 int pcdCount = ffc.getPcdDataCount(i);\r
a13899c5 161 if (pcdCount != 0) {\r
82961247 162 String[][] saa = new String[pcdCount][7];\r
055e7ae6 163 ffc.getPcdData(i, saa);\r
164 for (int j = 0; j < saa.length; ++j) {\r
165 model.addRow(saa[j]);\r
a13899c5 166 }\r
167 }\r
908b1c05 168 }\r
169 \r
170 public void initLibraries(String key) {\r
71baa24b 171 //\r
172 // display library classes that need to be resolved. also potential instances for them.\r
173 //\r
bf5abaff 174 resolveLibraryInstances(moduleKey);\r
a13899c5 175 //\r
176 // display lib instances already selected for key\r
177 //\r
57d0e52a 178 selectedInstancesTableModel.setRowCount(0);\r
a13899c5 179 int instanceCount = ffc.getLibraryInstancesCount(key);\r
180 if (instanceCount != 0) {\r
181 String[][] saa = new String[instanceCount][5];\r
182 ffc.getLibraryInstances(key, saa);\r
183 for (int i = 0; i < saa.length; ++i) {\r
1bf9fa5a 184 ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
71baa24b 185 if (mi != null) {\r
186 saa[i][0] = mi.getName();\r
187 saa[i][2] = mi.getVersion();\r
3658f95e 188 saa[i][4] = mi.getPackageId().getVersion();\r
71baa24b 189 //\r
190 // re-evaluate lib instance usage when adding a already-selected lib instance.\r
191 //\r
192 resolveLibraryInstances(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
57d0e52a 193 selectedInstancesTableModel.addRow(saa[i]);\r
a13899c5 194 }\r
a13899c5 195 }\r
196 }\r
a094728f 197 showClassToResolved();\r
908b1c05 198 }\r
199 \r
c1dbe93d 200 public void initFvInfo (String key) {\r
1800d80f 201 //\r
202 // display module SA options\r
203 //\r
802e0055 204 jTextFieldFvBinding.setText("");\r
1800d80f 205 String fvBinding = ffc.getFvBinding(key);\r
206 if (fvBinding != null) {\r
8f55ea73 207 jTextFieldFvBinding.setText(fvBinding);\r
1800d80f 208 }\r
802e0055 209 jTextFieldFileGuid.setText("");\r
1800d80f 210 String fileGuid = ffc.getFfsFileNameGuid(key);\r
211 if (fileGuid != null) {\r
8f55ea73 212 jTextFieldFileGuid.setText(fileGuid);\r
1800d80f 213 }\r
802e0055 214 jTextFieldFfsKey.setText("");\r
1800d80f 215 String ffsKey = ffc.getFfsFormatKey(key);\r
216 if (ffsKey != null) {\r
8f55ea73 217 jTextFieldFfsKey.setText(ffsKey);\r
1800d80f 218 }\r
c1dbe93d 219 }\r
220 \r
221 public void initToolChainOptions(String key) {\r
bf5abaff 222 \r
223 optionsTableModel.setRowCount(0);\r
224 String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6];\r
225 ffc.getModuleSAOptions(key, saa);\r
226 for (int i = 0; i < saa.length; ++i) {\r
227 optionsTableModel.addRow(saa[i]);\r
228 }\r
a13899c5 229 }\r
230 \r
231 private void resolveLibraryInstances(String key) {\r
1bf9fa5a 232 ModuleIdentification mi = WorkspaceProfile.getModuleId(key);\r
a13899c5 233 PackageIdentification[] depPkgList = null;\r
234 try{\r
a13899c5 235 //\r
236 // Get dependency pkg list into which we will search lib instances.\r
237 //\r
daa4663b 238 depPkgList = SurfaceAreaQuery.getDependencePkg(null, mi);\r
a13899c5 239 //\r
240 // Get the lib class consumed, produced by this module itself.\r
241 //\r
daa4663b 242 Vector<String> vClassConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
a13899c5 243 \r
244 if (this.classConsumed == null) {\r
245 this.classConsumed = new HashMap<String, ArrayList<String>>();\r
246 }\r
247 \r
daa4663b 248 for(int i = 0; i < vClassConsumed.size(); ++i){\r
249 ArrayList<String> consumedBy = this.classConsumed.get(vClassConsumed.get(i));\r
a13899c5 250 if (consumedBy == null) {\r
251 consumedBy = new ArrayList<String>();\r
252 }\r
253 consumedBy.add(key);\r
daa4663b 254 this.classConsumed.put(vClassConsumed.get(i), consumedBy);\r
a13899c5 255 }\r
256 \r
daa4663b 257 Vector<String> vClassProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
a13899c5 258 if (this.classProduced == null) {\r
259 this.classProduced = new ArrayList<String>();\r
260 }\r
daa4663b 261 for(int i = 0; i < vClassProduced.size(); ++i){\r
262 if (!this.classProduced.contains(vClassProduced.get(i))){\r
263 this.classProduced.add(vClassProduced.get(i));\r
a13899c5 264 }\r
265 }\r
f4c4325b 266 \r
a13899c5 267 //\r
268 // find potential instances in all dependency pkgs for classes still in classConsumed.\r
269 //\r
270 if (classInstanceMap == null){\r
271 classInstanceMap = new HashMap<String, ArrayList<String>>();\r
272 }\r
273 Iterator<String> lic = this.classConsumed.keySet().iterator();\r
274 while(lic.hasNext()){\r
275 String cls = lic.next();\r
276 if (this.classProduced.contains(cls) || classInstanceMap.containsKey(cls)) {\r
277 continue;\r
278 }\r
279 ArrayList<String> instances = getInstancesForClass(cls, depPkgList);\r
280 if (instances.size() == 0){\r
281 JOptionPane.showMessageDialog(frame, "No Applicable Instance for Library Class " + \r
282 cls + ", Platform Build will Fail.");\r
283 }\r
284 classInstanceMap.put(cls, instances);\r
285 \r
286 }\r
287 \r
a094728f 288// showClassToResolved();\r
a13899c5 289 }\r
290 catch(Exception e) {\r
291 e.printStackTrace();\r
292 }\r
293 }\r
294 \r
295 private ArrayList<String> getInstancesForClass(String cls, PackageIdentification[] depPkgList) throws Exception{\r
296 ArrayList<String> al = new ArrayList<String>();\r
297 \r
298 for (int i = 0; i < depPkgList.length; ++i) {\r
3658f95e 299 Iterator ismi = GlobalData.vModuleList.iterator();\r
a13899c5 300 while(ismi.hasNext()) {\r
301 ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
3658f95e 302 if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {\r
303 continue;\r
304 }\r
a13899c5 305 String[] clsProduced = getClassProduced(mi);\r
306 \r
307 boolean isPotential = false;\r
308 for (int j = 0; j < clsProduced.length; ++j) {\r
309 if (clsProduced[j] == null) {\r
310 continue;\r
311 }\r
312 if (clsProduced[j].equals(cls)){\r
313 isPotential = true;\r
314 }\r
315 if (classProduced.contains(clsProduced[j])) {\r
316 isPotential = false;\r
317 break;\r
318 }\r
319 }\r
320 if (isPotential) {\r
321 al.add(mi.getGuid() + " " + mi.getVersion() + " " + \r
322 depPkgList[i].getGuid() + " " + depPkgList[i].getVersion());\r
323 }\r
324 }\r
325 }\r
326 \r
327 return al;\r
328 }\r
329 \r
330 private void removeInstance(String key) {\r
1bf9fa5a 331 ModuleIdentification mi = WorkspaceProfile.getModuleId(key); \r
a13899c5 332 //\r
333 // remove pcd information of instance from current ModuleSA\r
334 //\r
82dcbb45 335 ffc.removePcdData(moduleKey, mi);\r
a13899c5 336 //\r
337 // remove class produced by this instance and add back these produced class to be bound.\r
338 //\r
339 String[] clsProduced = getClassProduced(mi);\r
340 for (int i = 0; i < clsProduced.length; ++i) {\r
341 \r
342 classProduced.remove(clsProduced[i]);\r
343 }\r
344 //\r
345 // remove class consumed by this instance. we do not need to bound it now.\r
346 //\r
347 String[] clsConsumed = getClassConsumed(mi);\r
348 for (int i = 0; i < clsConsumed.length; ++i) {\r
349 ArrayList<String> al = classConsumed.get(clsConsumed[i]);\r
350 \r
351 if (al == null ) {\r
352 classConsumed.remove(clsConsumed[i]);\r
353 continue;\r
354 }\r
355 al.remove(key);\r
356 if (al.size() == 0) {\r
357 classConsumed.remove(clsConsumed[i]);\r
358 }\r
359 \r
360 }\r
361\r
362 showClassToResolved();\r
363 \r
364 }\r
365 \r
a13899c5 366 \r
367 private String[] getClassProduced(ModuleIdentification mi){\r
368 \r
369 try{\r
daa4663b 370 Vector<String> clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
371 String[] sClassProduced = new String[clsProduced.size()];\r
372 for (int i = 0; i < clsProduced.size(); ++i) {\r
373 sClassProduced[i] = clsProduced.get(i);\r
374 }\r
375 return sClassProduced;\r
a13899c5 376 \r
377 }catch (Exception e) {\r
378 e.printStackTrace();\r
379 }\r
380 return new String[0];\r
381 \r
382 }\r
383 \r
384 private String[] getClassConsumed(ModuleIdentification mi){\r
385 \r
a13899c5 386 try{\r
daa4663b 387 Vector<String> clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
388 String[] sClassConsumed = new String[clsConsumed.size()];\r
389 for (int i = 0; i < clsConsumed.size(); ++i) {\r
390 sClassConsumed[i] = clsConsumed.get(i);\r
391 }\r
392 return sClassConsumed;\r
a13899c5 393 }catch (Exception e) {\r
394 e.printStackTrace();\r
395 }\r
daa4663b 396 return new String[0];\r
a13899c5 397 }\r
398 \r
399 private void showClassToResolved(){\r
57d0e52a 400 libClassTableModel.setRowCount(0);\r
a13899c5 401 if (classConsumed.size() == 0) {\r
402 return;\r
403 }\r
404 Iterator<String> li = classConsumed.keySet().iterator();\r
405 while(li.hasNext()){\r
406 \r
407 String[] s = {li.next()};\r
daa4663b 408// if (classConsumed.get(s[0]) == null) {\r
409// continue;\r
410// }\r
411// if (classConsumed.get(s[0]).size() == 0) {\r
412// continue;\r
413// }\r
a13899c5 414 if (!classProduced.contains(s[0])){\r
57d0e52a 415 libClassTableModel.addRow(s);\r
a13899c5 416 }\r
417 }\r
57d0e52a 418 libInstanceTableModel.setRowCount(0);\r
a13899c5 419 }\r
a094728f 420 \r
421 private void addLibInstance (ModuleIdentification libMi) {\r
422 \r
423 ffc.genLibraryInstance(libMi, moduleKey);\r
424 //\r
425 // Add pcd information of selected instance to current moduleSA\r
426 //\r
427 try{\r
428 ffc.addFrameworkModulesPcdBuildDefs(libMi, null, ffc.getModuleSA(moduleKey));\r
429 }\r
430 catch (Exception exception) {\r
431 JOptionPane.showMessageDialog(frame, "Adding Instance" + libMi.getName() + ": "+ exception.getMessage());\r
432 }\r
433 \r
434 }\r
a13899c5 435 /**\r
436 * This method initializes this\r
437 * \r
438 * @return void\r
439 */\r
440 private void initialize() {\r
441 this.setSize(664, 515);\r
f3b0ed9a 442 this.centerWindow();\r
a13899c5 443 this.setModal(true);\r
444 this.setTitle("Module Settings");\r
445 this.setContentPane(getJContentPane());\r
446 }\r
447\r
448 /**\r
449 * This method initializes jContentPane\r
450 * \r
451 * @return javax.swing.JPanel\r
452 */\r
453 private JPanel getJContentPane() {\r
454 if (jContentPane == null) {\r
455 jContentPane = new JPanel();\r
456 jContentPane.setLayout(new BorderLayout());\r
457 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
57d0e52a 458 jContentPane.add(getJPanelContentPaneSouth(), java.awt.BorderLayout.SOUTH);\r
a13899c5 459 }\r
460 return jContentPane;\r
461 }\r
462\r
463 /**\r
464 * This method initializes jTabbedPane \r
465 * \r
466 * @return javax.swing.JTabbedPane \r
467 */\r
468 private JTabbedPane getJTabbedPane() {\r
469 if (jTabbedPane == null) {\r
470 jTabbedPane = new JTabbedPane();\r
57d0e52a 471 jTabbedPane.addTab("PCD Build Definition", null, getJPanelPcd(), null);\r
57d0e52a 472 jTabbedPane.addTab("Libraries", null, getJPanelLibrary(), null);\r
c1dbe93d 473 jTabbedPane.addTab("FV Info", null, getJPanelModuleSaOpts(), null);\r
474 jTabbedPane.addTab("Custom Toolchain", null, getJPanelCustomToolChain(), null);\r
475 \r
a13899c5 476 }\r
477 return jTabbedPane;\r
478 }\r
479\r
480 /**\r
57d0e52a 481 * This method initializes jPanelPcd\r
a13899c5 482 * \r
483 * @return javax.swing.JPanel \r
484 */\r
57d0e52a 485 private JPanel getJPanelPcd() {\r
486 if (jPanelPcd == null) {\r
487 jLabelPcdData = new JLabel();\r
488 jLabelPcdData.setText("PcdData");\r
489 jPanelPcd = new JPanel();\r
490 jPanelPcd.setLayout(new BorderLayout());\r
491 jPanelPcd.add(jLabelPcdData, java.awt.BorderLayout.NORTH);\r
492 jPanelPcd.add(getJScrollPaneTablePcd(), java.awt.BorderLayout.CENTER);\r
493 jPanelPcd.add(getJPanelPcdSouth(), java.awt.BorderLayout.SOUTH);\r
494 jPanelPcd.addComponentListener(new java.awt.event.ComponentAdapter() {\r
a13899c5 495 public void componentShown(java.awt.event.ComponentEvent e) {\r
802e0055 496 initPcdBuildDefinition(moduleSaNum);\r
a13899c5 497 }\r
498 });\r
499 \r
500 }\r
57d0e52a 501 return jPanelPcd;\r
a13899c5 502 }\r
503\r
504 /**\r
57d0e52a 505 * This method initializes jPanelLibrary\r
a13899c5 506 * \r
507 * @return javax.swing.JPanel \r
508 */\r
57d0e52a 509 private JPanel getJPanelLibrary() {\r
510 if (jPanelLibrary == null) {\r
511 jPanelLibrary = new JPanel();\r
512 jPanelLibrary.setLayout(new BorderLayout());\r
513 jPanelLibrary.add(getJSplitPane(), java.awt.BorderLayout.NORTH);\r
514 jPanelLibrary.add(getJPanelLibrarySouth(), java.awt.BorderLayout.SOUTH);\r
515 jPanelLibrary.add(getJPanelLibraryCenter(), java.awt.BorderLayout.CENTER);\r
516 jPanelLibrary.addComponentListener(new java.awt.event.ComponentAdapter() {\r
a13899c5 517 public void componentShown(java.awt.event.ComponentEvent e) {\r
908b1c05 518 initLibraries(moduleKey);\r
a13899c5 519 }\r
520 });\r
521 }\r
57d0e52a 522 return jPanelLibrary;\r
a13899c5 523 }\r
524\r
525 /**\r
57d0e52a 526 * This method initializes jScrollPaneTablePcd\r
a13899c5 527 * \r
528 * @return javax.swing.JScrollPane \r
529 */\r
57d0e52a 530 private JScrollPane getJScrollPaneTablePcd() {\r
531 if (jScrollPaneTablePcd == null) {\r
532 jScrollPaneTablePcd = new JScrollPane();\r
533 jScrollPaneTablePcd.setViewportView(getJTablePcd());\r
a13899c5 534 }\r
57d0e52a 535 return jScrollPaneTablePcd;\r
a13899c5 536 }\r
537\r
538 /**\r
539 * This method initializes jTable \r
540 * \r
541 * @return javax.swing.JTable \r
542 */\r
57d0e52a 543 private JTable getJTablePcd() {\r
544 if (jTablePcd == null) {\r
a13899c5 545 model = new PartialEditableTableModel();\r
57d0e52a 546 jTablePcd = new JTable(model);\r
547 jTablePcd.setRowHeight(20);\r
548 jTablePcd.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
a13899c5 549 model.addColumn("CName");\r
550 model.addColumn("TokenSpaceGUID");\r
551 model.addColumn("ItemType");\r
552 model.addColumn("Token");\r
82961247 553 model.addColumn("MaxDatumSize");\r
a13899c5 554 model.addColumn("DataType");\r
555 model.addColumn("DefaultValue");\r
556 \r
57d0e52a 557 jTablePcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
558 jTablePcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 559 public void valueChanged(ListSelectionEvent e) {\r
44053733 560 \r
a13899c5 561 if (e.getValueIsAdjusting()){\r
562 return;\r
563 }\r
564 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
565 if (lsm.isSelectionEmpty()) {\r
566 return;\r
567 }\r
568 else{\r
908b1c05 569 int selectedRow = lsm.getMinSelectionIndex();\r
57d0e52a 570 String cName = jTablePcd.getValueAt(selectedRow, 0)+"";\r
1dac04ab 571 String tsGuid = jTablePcd.getValueAt(selectedRow, 1)+"";\r
908b1c05 572 String[] pcdInfo = {"", ""};\r
1dac04ab 573 getPcdInfo(cName, tsGuid, pcdInfo);\r
57d0e52a 574 jTextAreaPcdHelp.setText(pcdInfo[0]);\r
908b1c05 575 initComboBox(pcdInfo[1]);\r
57d0e52a 576 jComboBoxItemType.setSelectedItem(pcdInfo[1]);\r
577 jTextFieldMaxDatumSize.setEnabled(true);\r
578 jTextFieldMaxDatumSize.setVisible(true);\r
579 jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
580 jTextFieldPcdDefault.setEnabled(true);\r
581 jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");\r
582 if (jTablePcd.getValueAt(selectedRow, 5).equals("VOID*")) {\r
908b1c05 583 if (pcdInfo[1].equals("FEATURE_FLAG")) {\r
57d0e52a 584 jTextFieldMaxDatumSize.setVisible(false);\r
908b1c05 585 }\r
586 else if (pcdInfo[1].equals("FIXED_AT_BUILD")) {\r
587 try{\r
57d0e52a 588 jTextFieldMaxDatumSize.setEnabled(false);\r
589 jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(jTablePcd.getValueAt(selectedRow, 6)+"")+"");\r
908b1c05 590 }\r
591 catch(Exception except){\r
592 JOptionPane.showMessageDialog(frame, "Unacceptable PCD Value: " + except.getMessage());\r
593 }\r
594 }\r
595 else{\r
57d0e52a 596 jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
908b1c05 597 }\r
598 }\r
599 else {\r
57d0e52a 600 jTextFieldMaxDatumSize.setEnabled(false);\r
908b1c05 601 }\r
a13899c5 602 \r
57d0e52a 603 if (!jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC") && !jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {\r
604 jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");\r
605 if (jTablePcd.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){\r
606 jTextFieldPcdDefault.setVisible(false);\r
607 jComboBoxFeatureFlagValue.setVisible(true);\r
608 jComboBoxFeatureFlagValue.setSelectedItem(jTablePcd.getValueAt(selectedRow, 6)+"");\r
908b1c05 609 }\r
610 else{\r
57d0e52a 611 jTextFieldPcdDefault.setVisible(true);\r
612 jTextFieldPcdDefault.setEnabled(true);\r
613 jComboBoxFeatureFlagValue.setVisible(false);\r
908b1c05 614 }\r
615 }\r
616 else{\r
57d0e52a 617 jTextFieldPcdDefault.setEnabled(false);\r
908b1c05 618 }\r
a13899c5 619 }\r
908b1c05 620 \r
621 \r
a13899c5 622 }\r
623 });\r
624 \r
57d0e52a 625 jTablePcd.getModel().addTableModelListener(new TableModelListener() {\r
a13899c5 626 public void tableChanged(TableModelEvent arg0) {\r
627 // TODO Auto-generated method stub\r
908b1c05 628// int row = arg0.getFirstRow();\r
629// TableModel m = (TableModel)arg0.getSource();\r
630 \r
a13899c5 631 if (arg0.getType() == TableModelEvent.UPDATE){\r
908b1c05 632 //update xml doc here.\r
a13899c5 633 \r
634 }\r
635 }\r
636 });\r
637 }\r
57d0e52a 638 return jTablePcd;\r
a13899c5 639 }\r
908b1c05 640 \r
641 private void initComboBox(String originalType) {\r
57d0e52a 642 jComboBoxItemType.removeAllItems();\r
643 jComboBoxItemType.addItem(originalType);\r
908b1c05 644 if (originalType.equals("PATCHABLE_IN_MODULE")) {\r
57d0e52a 645 jComboBoxItemType.addItem("FIXED_AT_BUILD");\r
908b1c05 646 }\r
647 if (originalType.equals("DYNAMIC")) {\r
57d0e52a 648 jComboBoxItemType.addItem("FIXED_AT_BUILD");\r
649 jComboBoxItemType.addItem("PATCHABLE_IN_MODULE");\r
908b1c05 650 }\r
651 }\r
652 \r
1dac04ab 653 private void getPcdInfo(String cName, String tsGuid, String[] sa) {\r
908b1c05 654 String[][] saa = new String[ffc.getLibraryInstancesCount(moduleKey)][5];\r
655 ffc.getLibraryInstances(moduleKey, saa);\r
656 \r
657 try{\r
1bf9fa5a 658 if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(moduleKey), cName, tsGuid, sa)) {\r
908b1c05 659 return;\r
660 }\r
661 for (int j = 0; j < saa.length; ++j) {\r
1bf9fa5a 662 if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]),\r
1dac04ab 663 cName, tsGuid, sa)) {\r
908b1c05 664 return;\r
665 }\r
666 }\r
667 }\r
668 catch(Exception e) {\r
669 JOptionPane.showMessageDialog(this, "Get PCD details fail: " + e.getMessage());\r
670 }\r
671 }\r
a13899c5 672\r
673 /**\r
57d0e52a 674 * This method initializes jPanelPcdSouth\r
a13899c5 675 * \r
676 * @return javax.swing.JPanel \r
677 */\r
57d0e52a 678 private JPanel getJPanelPcdSouth() {\r
679 if (jPanelPcdSouth == null) {\r
680 jLabelPcdHelp = new JLabel();\r
681 jLabelPcdHelp.setText("PCD Description");\r
682 jPanelPcdSouth = new JPanel();\r
683 jPanelPcdSouth.setPreferredSize(new java.awt.Dimension(607,200));\r
684 jPanelPcdSouth.add(jLabelPcdHelp, null);\r
685 jPanelPcdSouth.add(getJScrollPanePcdHelp(), null);\r
686 jPanelPcdSouth.add(getJPanelPcdFields(), null);\r
a13899c5 687 }\r
57d0e52a 688 return jPanelPcdSouth;\r
a13899c5 689 }\r
690\r
691 /**\r
57d0e52a 692 * This method initializes jScrollPanePcdHelp\r
a13899c5 693 * \r
694 * @return javax.swing.JScrollPane \r
695 */\r
57d0e52a 696 private JScrollPane getJScrollPanePcdHelp() {\r
697 if (jScrollPanePcdHelp == null) {\r
698 jScrollPanePcdHelp = new JScrollPane();\r
699 jScrollPanePcdHelp.setPreferredSize(new java.awt.Dimension(500,100));\r
700 jScrollPanePcdHelp.setViewportView(getJTextAreaPcdHelp());\r
a13899c5 701 }\r
57d0e52a 702 return jScrollPanePcdHelp;\r
a13899c5 703 }\r
704\r
705 /**\r
57d0e52a 706 * This method initializes jTextAreaPcdHelp\r
a13899c5 707 * \r
708 * @return javax.swing.JTextArea \r
709 */\r
57d0e52a 710 private JTextArea getJTextAreaPcdHelp() {\r
711 if (jTextAreaPcdHelp == null) {\r
712 jTextAreaPcdHelp = new JTextArea();\r
713 jTextAreaPcdHelp.setEditable(false);\r
a13899c5 714 }\r
57d0e52a 715 return jTextAreaPcdHelp;\r
a13899c5 716 }\r
717\r
718 /**\r
57d0e52a 719 * This method initializes jPanelContentPaneSouth\r
a13899c5 720 * \r
721 * @return javax.swing.JPanel \r
722 */\r
57d0e52a 723 private JPanel getJPanelContentPaneSouth() {\r
724 if (jPanelContentPaneSouth == null) {\r
a13899c5 725 FlowLayout flowLayout = new FlowLayout();\r
726 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
57d0e52a 727 jPanelContentPaneSouth = new JPanel();\r
728 jPanelContentPaneSouth.setLayout(flowLayout);\r
729 jPanelContentPaneSouth.add(getJButtonOk(), null);\r
730 jPanelContentPaneSouth.add(getJButtonCancel(), null);\r
a13899c5 731 }\r
57d0e52a 732 return jPanelContentPaneSouth;\r
a13899c5 733 }\r
734\r
735 /**\r
736 * This method initializes jSplitPane \r
737 * \r
738 * @return javax.swing.JSplitPane \r
739 */\r
740 private JSplitPane getJSplitPane() {\r
741 if (jSplitPane == null) {\r
742 jSplitPane = new JSplitPane();\r
743 jSplitPane.setDividerLocation(200);\r
57d0e52a 744 jSplitPane.setLeftComponent(getJPanelLibraryLeft());\r
745 jSplitPane.setRightComponent(getJPanelLibraryRight());\r
a13899c5 746 jSplitPane.setPreferredSize(new java.awt.Dimension(202,200));\r
747 }\r
748 return jSplitPane;\r
749 }\r
750\r
751 /**\r
57d0e52a 752 * This method initializes jPanelLibraryLeft\r
a13899c5 753 * \r
754 * @return javax.swing.JPanel \r
755 */\r
57d0e52a 756 private JPanel getJPanelLibraryLeft() {\r
757 if (jPanelLibraryLeft == null) {\r
758 jLabelLibClass = new JLabel();\r
759 jLabelLibClass.setText("Library Classes Uninstantiated");\r
760 jPanelLibraryLeft = new JPanel();\r
761 jPanelLibraryLeft.add(jLabelLibClass, null);\r
762 jPanelLibraryLeft.add(getJScrollPaneLibClass(), null);\r
a13899c5 763 }\r
57d0e52a 764 return jPanelLibraryLeft;\r
a13899c5 765 }\r
766\r
767 /**\r
57d0e52a 768 * This method initializes jPanelLibraryRight\r
a13899c5 769 * \r
770 * @return javax.swing.JPanel \r
771 */\r
57d0e52a 772 private JPanel getJPanelLibraryRight() {\r
773 if (jPanelLibraryRight == null) {\r
774 jLabelQualifiedInstance = new JLabel();\r
775 jLabelQualifiedInstance.setText("Instances Available");\r
776 jPanelLibraryRight = new JPanel();\r
777 jPanelLibraryRight.add(jLabelQualifiedInstance, null);\r
778 jPanelLibraryRight.add(getJScrollPaneQualifiedInstance(), null);\r
a13899c5 779 }\r
57d0e52a 780 return jPanelLibraryRight;\r
a13899c5 781 }\r
782\r
783 /**\r
57d0e52a 784 * This method initializes jScrollPaneSelectedInstances\r
a13899c5 785 * \r
786 * @return javax.swing.JScrollPane \r
787 */\r
57d0e52a 788 private JScrollPane getJScrollPaneSelectedInstances() {\r
789 if (jScrollPaneSelectedInstances == null) {\r
790 jScrollPaneSelectedInstances = new JScrollPane();\r
791 jScrollPaneSelectedInstances.setPreferredSize(new java.awt.Dimension(453,150));\r
792 jScrollPaneSelectedInstances.setViewportView(getJTableSelectedInstances());\r
a13899c5 793 }\r
57d0e52a 794 return jScrollPaneSelectedInstances;\r
a13899c5 795 }\r
796\r
797 /**\r
57d0e52a 798 * This method initializes jTableSelectedInstances\r
a13899c5 799 * \r
800 * @return javax.swing.JTable \r
801 */\r
57d0e52a 802 private JTable getJTableSelectedInstances() {\r
803 if (jTableSelectedInstances == null) {\r
804 selectedInstancesTableModel = new LibraryTableModel();\r
805 selectedInstancesTableModel.addColumn("Name");\r
806 selectedInstancesTableModel.addColumn("ModuleGUID");\r
807 selectedInstancesTableModel.addColumn("ModuleVersion");\r
808 selectedInstancesTableModel.addColumn("PackageGUID");\r
809 selectedInstancesTableModel.addColumn("PackageVersion");\r
810 jTableSelectedInstances = new JTable(selectedInstancesTableModel);\r
811 jTableSelectedInstances.setRowHeight(20);\r
2a23019d 812 jTableSelectedInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
57d0e52a 813 jTableSelectedInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
a13899c5 814 \r
815 }\r
57d0e52a 816 return jTableSelectedInstances;\r
a13899c5 817 }\r
818\r
819 /**\r
57d0e52a 820 * This method initializes jScrollPaneLibClass\r
a13899c5 821 * \r
822 * @return javax.swing.JScrollPane \r
823 */\r
57d0e52a 824 private JScrollPane getJScrollPaneLibClass() {\r
825 if (jScrollPaneLibClass == null) {\r
826 jScrollPaneLibClass = new JScrollPane();\r
827 jScrollPaneLibClass.setPreferredSize(new java.awt.Dimension(200,170));\r
828 jScrollPaneLibClass.setViewportView(getJTableLibClass());\r
a13899c5 829 }\r
57d0e52a 830 return jScrollPaneLibClass;\r
a13899c5 831 }\r
832\r
833 /**\r
57d0e52a 834 * This method initializes jTableLibClass\r
a13899c5 835 * \r
836 * @return javax.swing.JTable \r
837 */\r
57d0e52a 838 private JTable getJTableLibClass() {\r
839 if (jTableLibClass == null) {\r
840 libClassTableModel = new LibraryTableModel();\r
841 libClassTableModel.addColumn("LibraryClass");\r
842 jTableLibClass = new JTable(libClassTableModel);\r
843 jTableLibClass.setRowHeight(20);\r
844 jTableLibClass.setShowGrid(false);\r
845 jTableLibClass.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
846 jTableLibClass.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 847 public void valueChanged(ListSelectionEvent e) {\r
848 if (e.getValueIsAdjusting()){\r
849 return;\r
850 }\r
851 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
852 if (lsm.isSelectionEmpty()) {\r
853 return;\r
854 }\r
855 else{\r
856 int selectedRow2 = lsm.getMinSelectionIndex();\r
857 if (selectedRow2 < 0) {\r
858 return;\r
859 }\r
860 //\r
861 // display potential lib instances according to class selection\r
862 //\r
57d0e52a 863 libInstanceTableModel.setRowCount(0);\r
864 String cls = libClassTableModel.getValueAt(selectedRow2, 0).toString();\r
a13899c5 865 ArrayList<String> al = classInstanceMap.get(cls);\r
866 ListIterator<String> li = al.listIterator();\r
867 while(li.hasNext()) {\r
868 String instance = li.next();\r
869 String[] s = {"", "", "", "", ""};\r
1bf9fa5a 870 if (WorkspaceProfile.getModuleId(instance) != null) {\r
871 s[0] = WorkspaceProfile.getModuleId(instance).getName();\r
a13899c5 872 }\r
873 \r
874 String[] instancePart = instance.split(" ");\r
875 for (int i = 0; i < instancePart.length; ++i){\r
876 s[i+1] = instancePart[i];\r
877 }\r
57d0e52a 878 libInstanceTableModel.addRow(s);\r
a13899c5 879 }\r
880 \r
881 }\r
882 }\r
883 });\r
884 }\r
57d0e52a 885 return jTableLibClass;\r
a13899c5 886 }\r
887\r
888 /**\r
57d0e52a 889 * This method initializes jScrollPaneQualifiedInstance\r
a13899c5 890 * \r
891 * @return javax.swing.JScrollPane \r
892 */\r
57d0e52a 893 private JScrollPane getJScrollPaneQualifiedInstance() {\r
894 if (jScrollPaneQualifiedInstance == null) {\r
895 jScrollPaneQualifiedInstance = new JScrollPane();\r
896 jScrollPaneQualifiedInstance.setPreferredSize(new java.awt.Dimension(430,170));\r
897 jScrollPaneQualifiedInstance.setViewportView(getJTableLibInstances());\r
a13899c5 898 }\r
57d0e52a 899 return jScrollPaneQualifiedInstance;\r
a13899c5 900 }\r
901\r
902 /**\r
57d0e52a 903 * This method initializes jTableLibInstances\r
a13899c5 904 * \r
905 * @return javax.swing.JTable \r
906 */\r
57d0e52a 907 private JTable getJTableLibInstances() {\r
908 if (jTableLibInstances == null) {\r
909 libInstanceTableModel = new LibraryTableModel();\r
910 libInstanceTableModel.addColumn("Name");\r
911 libInstanceTableModel.addColumn("ModuleGUID");\r
912 libInstanceTableModel.addColumn("ModuleVersion");\r
913 libInstanceTableModel.addColumn("PackageGUID");\r
914 libInstanceTableModel.addColumn("PackageVersion");\r
915 jTableLibInstances = new JTable(libInstanceTableModel);\r
916 jTableLibInstances.setRowHeight(20);\r
2a23019d 917 jTableLibInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
57d0e52a 918 jTableLibInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
908b1c05 919 \r
a13899c5 920 }\r
57d0e52a 921 return jTableLibInstances;\r
a13899c5 922 }\r
923\r
924 /**\r
57d0e52a 925 * This method initializes jPanelLibrarySouth\r
a13899c5 926 * \r
927 * @return javax.swing.JPanel \r
928 */\r
57d0e52a 929 private JPanel getJPanelLibrarySouth() {\r
930 if (jPanelLibrarySouth == null) {\r
931 jPanelLibrarySouth = new JPanel();\r
a13899c5 932 }\r
57d0e52a 933 return jPanelLibrarySouth;\r
a13899c5 934 }\r
935\r
936 /**\r
57d0e52a 937 * This method initializes jPanelLibraryCenter\r
a13899c5 938 * \r
939 * @return javax.swing.JPanel \r
940 */\r
57d0e52a 941 private JPanel getJPanelLibraryCenter() {\r
942 if (jPanelLibraryCenter == null) {\r
943 jLabelInstanceHelp = new JLabel();\r
944 jLabelInstanceHelp.setText("Instance Description");\r
945 jLabelSelectedInstances = new JLabel();\r
946 jLabelSelectedInstances.setText("Selected Instances");\r
947 jPanelLibraryCenter = new JPanel();\r
948 jPanelLibraryCenter.add(jLabelInstanceHelp, null);\r
949 jPanelLibraryCenter.add(getJScrollPaneInstanceHelp(), null);\r
950 jPanelLibraryCenter.add(getJButtonAdd(), null);\r
951 jPanelLibraryCenter.add(getJButtonDeleteInstance(), null);\r
952 jPanelLibraryCenter.add(jLabelSelectedInstances, null);\r
953 jPanelLibraryCenter.add(getJScrollPaneSelectedInstances(), null);\r
a13899c5 954 }\r
57d0e52a 955 return jPanelLibraryCenter;\r
a13899c5 956 }\r
957\r
958 /**\r
57d0e52a 959 * This method initializes jScrollPaneInstanceHelp\r
a13899c5 960 * \r
961 * @return javax.swing.JScrollPane \r
962 */\r
57d0e52a 963 private JScrollPane getJScrollPaneInstanceHelp() {\r
964 if (jScrollPaneInstanceHelp == null) {\r
965 jScrollPaneInstanceHelp = new JScrollPane();\r
966 jScrollPaneInstanceHelp.setPreferredSize(new java.awt.Dimension(300,50));\r
967 jScrollPaneInstanceHelp.setViewportView(getJTextAreaInstanceHelp());\r
a13899c5 968 }\r
57d0e52a 969 return jScrollPaneInstanceHelp;\r
a13899c5 970 }\r
971\r
972 /**\r
57d0e52a 973 * This method initializes jTextAreaInstanceHelp\r
a13899c5 974 * \r
975 * @return javax.swing.JTextArea \r
976 */\r
57d0e52a 977 private JTextArea getJTextAreaInstanceHelp() {\r
978 if (jTextAreaInstanceHelp == null) {\r
979 jTextAreaInstanceHelp = new JTextArea();\r
980 jTextAreaInstanceHelp.setEditable(false);\r
a13899c5 981 }\r
57d0e52a 982 return jTextAreaInstanceHelp;\r
a13899c5 983 }\r
984\r
985 /**\r
57d0e52a 986 * This method initializes jButtonAdd\r
a13899c5 987 * \r
988 * @return javax.swing.JButton \r
989 */\r
57d0e52a 990 private JButton getJButtonAdd() {\r
991 if (jButtonAdd == null) {\r
992 jButtonAdd = new JButton();\r
993 jButtonAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
994 jButtonAdd.setText("Add");\r
995 jButtonAdd.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 996 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 997 int row = jTableLibInstances.getSelectedRow();\r
a13899c5 998 if (row < 0) {\r
999 return;\r
1000 }\r
8f55ea73 1001 docConsole.setSaved(false);\r
57d0e52a 1002 Object[] s = {libInstanceTableModel.getValueAt(row, 0), libInstanceTableModel.getValueAt(row, 1),\r
1003 libInstanceTableModel.getValueAt(row, 2), libInstanceTableModel.getValueAt(row, 3),\r
1004 libInstanceTableModel.getValueAt(row, 4)};\r
1005 selectedInstancesTableModel.addRow(s);\r
1006 String instanceValue = libInstanceTableModel.getValueAt(row, 1) + " " +\r
1007 libInstanceTableModel.getValueAt(row, 2) + " " +\r
1008 libInstanceTableModel.getValueAt(row, 3) + " " +\r
1009 libInstanceTableModel.getValueAt(row, 4);\r
1bf9fa5a 1010 ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceValue);\r
a094728f 1011 addLibInstance (libMi);\r
a13899c5 1012 resolveLibraryInstances(instanceValue);\r
a094728f 1013 showClassToResolved();\r
a13899c5 1014 }\r
1015 });\r
1016 }\r
57d0e52a 1017 return jButtonAdd;\r
a13899c5 1018 }\r
1019\r
1020 /**\r
57d0e52a 1021 * This method initializes jButton1\r
a13899c5 1022 * \r
1023 * @return javax.swing.JButton \r
1024 */\r
57d0e52a 1025 private JButton getJButtonDeleteInstance() {\r
1026 if (jButtonDeleteInstance == null) {\r
1027 jButtonDeleteInstance = new JButton();\r
1028 jButtonDeleteInstance.setPreferredSize(new java.awt.Dimension(80,20));\r
1029 jButtonDeleteInstance.setText("Delete");\r
1030 jButtonDeleteInstance.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 1031 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1032 int row = jTableSelectedInstances.getSelectedRow();\r
a13899c5 1033 if (row < 0) {\r
1034 return;\r
1035 }\r
8f55ea73 1036 docConsole.setSaved(false);\r
57d0e52a 1037 removeInstance(selectedInstancesTableModel.getValueAt(row, 1) + " " +\r
1038 selectedInstancesTableModel.getValueAt(row, 2) + " " +\r
1039 selectedInstancesTableModel.getValueAt(row, 3) + " " +\r
1040 selectedInstancesTableModel.getValueAt(row, 4));\r
908b1c05 1041 ffc.removeLibraryInstance(moduleKey, row);\r
57d0e52a 1042 selectedInstancesTableModel.removeRow(row);\r
a13899c5 1043 \r
1044 }\r
1045 });\r
1046 }\r
57d0e52a 1047 return jButtonDeleteInstance;\r
a13899c5 1048 }\r
1049\r
1050 /**\r
1051 * This method initializes jButton2 \r
1052 * \r
1053 * @return javax.swing.JButton \r
1054 */\r
57d0e52a 1055 private JButton getJButtonOk() {\r
1056 if (jButtonOk == null) {\r
1057 jButtonOk = new JButton();\r
1058 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
1059 jButtonOk.setText("Ok");\r
1060 jButtonOk.addActionListener(this);\r
a13899c5 1061 }\r
57d0e52a 1062 return jButtonOk;\r
a13899c5 1063 }\r
1064\r
1065 /**\r
1066 * This method initializes jButton3 \r
1067 * \r
1068 * @return javax.swing.JButton \r
1069 */\r
57d0e52a 1070 private JButton getJButtonCancel() {\r
1071 if (jButtonCancel == null) {\r
1072 jButtonCancel = new JButton();\r
1073 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
1074 jButtonCancel.setText("Cancel");\r
1075 jButtonCancel.setVisible(false);\r
a13899c5 1076 }\r
57d0e52a 1077 return jButtonCancel;\r
a13899c5 1078 }\r
1079 public void actionPerformed(ActionEvent arg0) {\r
1080\r
57d0e52a 1081 if (arg0.getSource() == jButtonOk) {\r
1082 if (jTableModuleSaOptions.isEditing()) {\r
1083 jTableModuleSaOptions.getCellEditor().stopCellEditing();\r
bf5abaff 1084 }\r
a13899c5 1085 this.setVisible(false);\r
1086 }\r
1087 }\r
6a09eb19 1088 /**\r
57d0e52a 1089 * This method initializes jPanelModuleSaOpts\r
6a09eb19 1090 * \r
1091 * @return javax.swing.JPanel \r
1092 */\r
57d0e52a 1093 private JPanel getJPanelModuleSaOpts() {\r
1094 if (jPanelModuleSaOpts == null) {\r
8f55ea73 1095 FlowLayout flowLayout4 = new FlowLayout();\r
1096 flowLayout4.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1097 jLabelFfsFormatKey = new JLabel();\r
1098 jLabelFfsFormatKey.setText("FFS Format Key");\r
1099 jLabelFfsFormatKey.setPreferredSize(new java.awt.Dimension(90,16));\r
1100 jLabelFfsFileGuid = new JLabel();\r
1101 jLabelFfsFileGuid.setText("FFS File GUID");\r
1102 jLabelFfsFileGuid.setPreferredSize(new java.awt.Dimension(90,16));\r
d96d701f 1103 jLabelFfsFileGuid.setVisible(false);\r
57d0e52a 1104 jLabelFvBinding = new JLabel();\r
1105 jLabelFvBinding.setText("FV Binding");\r
1106 jLabelFvBinding.setPreferredSize(new java.awt.Dimension(90,16));\r
1107 jPanelModuleSaOpts = new JPanel();\r
1108 jPanelModuleSaOpts.setLayout(flowLayout4);\r
1109 jPanelModuleSaOpts.add(jLabelFvBinding, null);\r
1110 jPanelModuleSaOpts.add(getJTextFieldFvBinding(), null);\r
1111 jPanelModuleSaOpts.add(jLabelFfsFileGuid, null);\r
1112 jPanelModuleSaOpts.add(getJTextFieldFileGuid(), null);\r
1113 jPanelModuleSaOpts.add(jLabelFfsFormatKey, null);\r
1114 jPanelModuleSaOpts.add(getJTextFieldFfsKey(), null);\r
57d0e52a 1115 jPanelModuleSaOpts.addComponentListener(new java.awt.event.ComponentAdapter() {\r
71baa24b 1116 public void componentShown(java.awt.event.ComponentEvent e) {\r
c1dbe93d 1117 initFvInfo(moduleKey);\r
71baa24b 1118 }\r
1119 });\r
6a09eb19 1120 }\r
57d0e52a 1121 return jPanelModuleSaOpts;\r
6a09eb19 1122 }\r
1123 /**\r
1124 * This method initializes jTextField \r
1125 * \r
1126 * @return javax.swing.JTextField \r
1127 */\r
8f55ea73 1128 private JTextField getJTextFieldFvBinding() {\r
1129 if (jTextFieldFvBinding == null) {\r
1130 jTextFieldFvBinding = new JTextField();\r
1131 jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(150,20));\r
1132 jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() {\r
1133 public void focusLost(java.awt.event.FocusEvent e) {\r
1134 String originalFvBinding = ffc.getFvBinding(moduleKey);\r
1135 String newFvBinding = jTextFieldFvBinding.getText();\r
1136 if (newFvBinding.equals(originalFvBinding)) {\r
1137 return;\r
1138 }\r
1139 if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
1140 return;\r
1141 }\r
1142 docConsole.setSaved(false);\r
1143 ffc.setFvBinding(moduleKey, newFvBinding);\r
1144 }\r
1145 });\r
bf5abaff 1146 \r
6a09eb19 1147 }\r
8f55ea73 1148 return jTextFieldFvBinding;\r
6a09eb19 1149 }\r
1150 /**\r
1151 * This method initializes jTextField1 \r
1152 * \r
1153 * @return javax.swing.JTextField \r
1154 */\r
8f55ea73 1155 private JTextField getJTextFieldFileGuid() {\r
1156 if (jTextFieldFileGuid == null) {\r
1157 jTextFieldFileGuid = new JTextField();\r
1158 jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20));\r
d96d701f 1159 jTextFieldFileGuid.setVisible(false);\r
8f55ea73 1160 jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() {\r
1161 public void focusLost(java.awt.event.FocusEvent e) {\r
1162 String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey);\r
1163 String newFileGuid = jTextFieldFileGuid.getText();\r
1164 if (newFileGuid.equals(originalFileGuid)) {\r
1165 return;\r
1166 }\r
1167 if (newFileGuid.length() == 0 && originalFileGuid == null) {\r
1168 return;\r
1169 }\r
1170 if (newFileGuid.length() > 0) {\r
1171 if (!DataValidation.isGuid(newFileGuid)) {\r
1172 JOptionPane.showMessageDialog(frame, "FFS File Guid is NOT GUID Type.");\r
1173 return;\r
1174 }\r
1175 }\r
1176 \r
1177 docConsole.setSaved(false);\r
1178 if (newFileGuid.length() == 0) {\r
1179 newFileGuid = null;\r
1180 }\r
1181 ffc.setFfsFileNameGuid(moduleKey, newFileGuid);\r
1182 }\r
1183 });\r
bf5abaff 1184 \r
6a09eb19 1185 }\r
8f55ea73 1186 return jTextFieldFileGuid;\r
6a09eb19 1187 }\r
1188 /**\r
8f55ea73 1189 * This method initializes jTextFieldFfsKey \r
6a09eb19 1190 * \r
1191 * @return javax.swing.JTextField \r
1192 */\r
8f55ea73 1193 private JTextField getJTextFieldFfsKey() {\r
1194 if (jTextFieldFfsKey == null) {\r
1195 jTextFieldFfsKey = new JTextField();\r
802e0055 1196 jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(250,20));\r
8f55ea73 1197 jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
1198 public void focusLost(java.awt.event.FocusEvent e) {\r
1199 String originalFfsKey = ffc.getFfsFormatKey(moduleKey);\r
1200 String newFfsKey = jTextFieldFfsKey.getText();\r
1201 if (newFfsKey.equals(originalFfsKey)) {\r
1202 return;\r
1203 }\r
1204 if (newFfsKey.length() == 0 && originalFfsKey == null) {\r
1205 return;\r
1206 }\r
1207 docConsole.setSaved(false);\r
1208 ffc.setFfsFormatKey(moduleKey, newFfsKey);\r
1209 }\r
1210 });\r
bf5abaff 1211 \r
6a09eb19 1212 }\r
8f55ea73 1213 return jTextFieldFfsKey;\r
6a09eb19 1214 }\r
1215 /**\r
57d0e52a 1216 * This method initializes jScrollPaneModuleSaOptions\r
6a09eb19 1217 * \r
1218 * @return javax.swing.JScrollPane \r
1219 */\r
57d0e52a 1220 private JScrollPane getJScrollPaneModuleSaOptions() {\r
1221 if (jScrollPaneModuleSaOptions == null) {\r
1222 jScrollPaneModuleSaOptions = new JScrollPane();\r
c1dbe93d 1223 jScrollPaneModuleSaOptions.setPreferredSize(new java.awt.Dimension(600,350));\r
57d0e52a 1224 jScrollPaneModuleSaOptions.setViewportView(getJTableModuleSaOptions());\r
6a09eb19 1225 }\r
57d0e52a 1226 return jScrollPaneModuleSaOptions;\r
6a09eb19 1227 }\r
1228 /**\r
57d0e52a 1229 * This method initializes jTableModuleSaOptions\r
6a09eb19 1230 * \r
1231 * @return javax.swing.JTable \r
1232 */\r
57d0e52a 1233 private JTable getJTableModuleSaOptions() {\r
1234 if (jTableModuleSaOptions == null) {\r
1800d80f 1235 optionsTableModel = new DefaultTableModel();\r
1236 optionsTableModel.addColumn("BuildTargets");\r
1237 optionsTableModel.addColumn("ToolChainFamily");\r
1238 optionsTableModel.addColumn("TagName");\r
1239 optionsTableModel.addColumn("ToolCode");\r
1240 optionsTableModel.addColumn("SupportedArchs");\r
1241 optionsTableModel.addColumn("Contents");\r
57d0e52a 1242 jTableModuleSaOptions = new JTable(optionsTableModel);\r
1243 jTableModuleSaOptions.setRowHeight(20);\r
f3b0ed9a 1244 Vector<String> vArch = new Vector<String>();\r
1245 vArch.add("IA32");\r
1246 vArch.add("X64");\r
1247 vArch.add("IPF");\r
1248 vArch.add("EBC");\r
1249 vArch.add("ARM");\r
1250 vArch.add("PPC");\r
57d0e52a 1251 jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));\r
1252 jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1253 jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
1254 jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() {\r
1800d80f 1255 public void tableChanged(TableModelEvent arg0) {\r
1256 // TODO Auto-generated method stub\r
1257 int row = arg0.getFirstRow();\r
1258 TableModel m = (TableModel)arg0.getSource();\r
1259 \r
1260 if (arg0.getType() == TableModelEvent.UPDATE){\r
1261 //ToDo Data Validition check.\r
1262 String targets = m.getValueAt(row, 0) + "";\r
f3b0ed9a 1263 Vector<Object> targetName = null;\r
1264 if (targets.length() > 0) {\r
1265 targetName = new Vector<Object>();\r
1266 String[] sArray = targets.split(" ");\r
1267 for (int i = 0; i < sArray.length; ++i) {\r
1268 targetName.add(sArray[i]);\r
1269 }\r
1800d80f 1270 }\r
f3b0ed9a 1271 \r
1800d80f 1272 String toolChain = m.getValueAt(row, 1) + "";\r
1273 String tagName = m.getValueAt(row, 2) + "";\r
1274 String toolCode = m.getValueAt(row, 3) + "";\r
1275 String archs = m.getValueAt(row, 4) + "";\r
f3b0ed9a 1276 Vector<Object> supArch = null;\r
1277 if (archs.length() > 0) {\r
1278 supArch = new Vector<Object>();\r
1279 String[] sArray1 = archs.split(" ");\r
1280 for (int i = 0; i < sArray1.length; ++i) {\r
1281 supArch.add(sArray1[i]);\r
1282 }\r
1800d80f 1283 }\r
f3b0ed9a 1284 \r
1800d80f 1285 String contents = m.getValueAt(row, 5) + "";\r
8f55ea73 1286 docConsole.setSaved(false);\r
1800d80f 1287 ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents);\r
1288 }\r
1289 }\r
1290 });\r
6a09eb19 1291 }\r
57d0e52a 1292 return jTableModuleSaOptions;\r
6a09eb19 1293 }\r
1800d80f 1294 /**\r
57d0e52a 1295 * This method initializes jButtonNew\r
1800d80f 1296 * \r
1297 * @return javax.swing.JButton \r
1298 */\r
57d0e52a 1299 private JButton getJButtonNew() {\r
1300 if (jButtonNew == null) {\r
1301 jButtonNew = new JButton();\r
1302 jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1303 jButtonNew.setText("New");\r
1304 jButtonNew.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1305 public void actionPerformed(java.awt.event.ActionEvent e) {\r
bf5abaff 1306 String[] row = {"", "", "", "", "", ""};\r
1800d80f 1307 optionsTableModel.addRow(row);\r
1308 Vector<Object> v = new Vector<Object>();\r
bf5abaff 1309 Vector<Object> v1 = null;\r
8f55ea73 1310 docConsole.setSaved(false);\r
1800d80f 1311 ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");\r
1312 }\r
1313 });\r
1314 }\r
57d0e52a 1315 return jButtonNew;\r
1800d80f 1316 }\r
1317 /**\r
57d0e52a 1318 * This method initializes jButtonDelete\r
1800d80f 1319 * \r
1320 * @return javax.swing.JButton \r
1321 */\r
57d0e52a 1322 private JButton getJButtonDeleteOption() {\r
1323 if (jButtonDeleteOption == null) {\r
1324 jButtonDeleteOption = new JButton();\r
1325 jButtonDeleteOption.setPreferredSize(new java.awt.Dimension(80,20));\r
1326 jButtonDeleteOption.setText("Delete");\r
1327 jButtonDeleteOption.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1328 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1329 if (jTableModuleSaOptions.getSelectedRow() < 0) {\r
1800d80f 1330 return;\r
1331 }\r
8f55ea73 1332 docConsole.setSaved(false);\r
57d0e52a 1333 ffc.removeModuleSAOptionsOpt(moduleKey, jTableModuleSaOptions.getSelectedRow());\r
1334 optionsTableModel.removeRow(jTableModuleSaOptions.getSelectedRow());\r
1800d80f 1335 }\r
1336 });\r
1337 }\r
57d0e52a 1338 return jButtonDeleteOption;\r
1800d80f 1339 }\r
f3b0ed9a 1340 \r
1341 /**\r
1342 Start the window at the center of screen\r
1343 \r
1344 **/\r
1345 protected void centerWindow(int intWidth, int intHeight) {\r
1346 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
1347 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
1348 }\r
1349\r
1350 /**\r
1351 Start the window at the center of screen\r
1352 \r
1353 **/\r
1354 protected void centerWindow() {\r
1355 centerWindow(this.getSize().width, this.getSize().height);\r
1356 }\r
908b1c05 1357/**\r
57d0e52a 1358 * This method initializes jPanelPcdFields\r
908b1c05 1359 * \r
1360 * @return javax.swing.JPanel \r
1361 */\r
57d0e52a 1362private JPanel getJPanelPcdFields() {\r
1363 if (jPanelPcdFields == null) {\r
908b1c05 1364 GridLayout gridLayout = new GridLayout();\r
1365 gridLayout.setRows(3);\r
1366 gridLayout.setColumns(2);\r
57d0e52a 1367 jPanelPcdFields = new JPanel();\r
1368 jPanelPcdFields.setLayout(gridLayout);\r
1369 jPanelPcdFields.setPreferredSize(new java.awt.Dimension(600,90));\r
1370 jPanelPcdFields.add(getJPanelPcdFieldsFirstRow(), null);\r
1371 jPanelPcdFields.add(getJPanelPcdFieldsSecondRow(), null);\r
1372 jPanelPcdFields.add(getJPanelPcdFieldsThirdRow(), null);\r
1373 }\r
1374 return jPanelPcdFields;\r
908b1c05 1375}\r
1376/**\r
57d0e52a 1377 * This method initializes jPanelPcdFieldsSecondRow\r
908b1c05 1378 * \r
1379 * @return javax.swing.JPanel \r
1380 */\r
57d0e52a 1381private JPanel getJPanelPcdFieldsSecondRow() {\r
1382 if (jPanelPcdFieldsSecondRow == null) {\r
908b1c05 1383 FlowLayout flowLayout2 = new FlowLayout();\r
1384 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1385 jLabelMaxDatumSize = new JLabel();\r
1386 jLabelMaxDatumSize.setText("Max Datum Size");\r
1387 jPanelPcdFieldsSecondRow = new JPanel();\r
1388 jPanelPcdFieldsSecondRow.setLayout(flowLayout2);\r
1389 jPanelPcdFieldsSecondRow.add(jLabelMaxDatumSize, null);\r
1390 jPanelPcdFieldsSecondRow.add(getJTextFieldMaxDatumSize(), null);\r
1391 }\r
1392 return jPanelPcdFieldsSecondRow;\r
908b1c05 1393}\r
1394/**\r
57d0e52a 1395 * This method initializes jPanelPcdFieldsThirdRow\r
908b1c05 1396 * \r
1397 * @return javax.swing.JPanel \r
1398 */\r
57d0e52a 1399private JPanel getJPanelPcdFieldsThirdRow() {\r
1400 if (jPanelPcdFieldsThirdRow == null) {\r
908b1c05 1401 FlowLayout flowLayout3 = new FlowLayout();\r
1402 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1403 jLabelPcdDefaultValue = new JLabel();\r
1404 jLabelPcdDefaultValue.setText("Default Value");\r
1405 jLabelPcdDefaultValue.setPreferredSize(new java.awt.Dimension(91,16));\r
1406 jPanelPcdFieldsThirdRow = new JPanel();\r
1407 jPanelPcdFieldsThirdRow.setLayout(flowLayout3);\r
1408 jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);\r
1409 jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);\r
1410 jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);\r
1411 }\r
1412 return jPanelPcdFieldsThirdRow;\r
908b1c05 1413}\r
1414/**\r
57d0e52a 1415 * This method initializes jPanelPcdFieldsFirstRow\r
908b1c05 1416 * \r
1417 * @return javax.swing.JPanel \r
1418 */\r
57d0e52a 1419private JPanel getJPanelPcdFieldsFirstRow() {\r
1420 if (jPanelPcdFieldsFirstRow == null) {\r
908b1c05 1421 FlowLayout flowLayout1 = new FlowLayout();\r
1422 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1423 jLabelItemType = new JLabel();\r
1424 jLabelItemType.setText("Item Type");\r
1425 jLabelItemType.setPreferredSize(new java.awt.Dimension(91,16));\r
1426 jPanelPcdFieldsFirstRow = new JPanel();\r
1427 jPanelPcdFieldsFirstRow.setLayout(flowLayout1);\r
1428 jPanelPcdFieldsFirstRow.add(jLabelItemType, null);\r
1429 jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);\r
1430 jPanelPcdFieldsFirstRow.add(getJButtonUpdatePcd(), null);\r
1431 }\r
1432 return jPanelPcdFieldsFirstRow;\r
908b1c05 1433}\r
1434/**\r
57d0e52a 1435 * This method initializes jComboBoxItemType\r
908b1c05 1436 * \r
1437 * @return javax.swing.JComboBox \r
1438 */\r
57d0e52a 1439private JComboBox getJComboBoxItemType() {\r
1440 if (jComboBoxItemType == null) {\r
1441 jComboBoxItemType = new JComboBox();\r
1442 jComboBoxItemType.setPreferredSize(new java.awt.Dimension(200,20));\r
1443 jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {\r
908b1c05 1444 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
57d0e52a 1445 int row = jTablePcd.getSelectedRow();\r
1446 if (row < 0 || jTablePcd.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
908b1c05 1447 return;\r
1448 }\r
57d0e52a 1449 if (jComboBoxItemType.getItemCount() == 3) {\r
1450 if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {\r
1451 pcdDynamicToNonDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");\r
1bf9fa5a 1452 if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {\r
1453 jTextFieldPcdDefault.setText("");\r
1454 jTextFieldPcdDefault.setEnabled(true);\r
1455 }\r
908b1c05 1456 }\r
1457 else{\r
57d0e52a 1458 pcdNonDynamicToDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");\r
908b1c05 1459 }\r
1460 }\r
1461 }\r
1462 });\r
1463 }\r
57d0e52a 1464 return jComboBoxItemType;\r
908b1c05 1465}\r
1466\r
1467private void pcdDynamicToNonDynamic(String cName, String tsGuid) {\r
1468 String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
1469 ffc.getDynamicPcdBuildData(saa);\r
1470 String maxSize = "";\r
1471 String value = "";\r
1472 for (int i = 0; i < saa.length; ++i) {\r
1473 if (saa[i][0].equals(cName) && saa[i][2].equals(tsGuid)) {\r
1474 maxSize = saa[i][3];\r
1475 value = ffc.getDynamicPcdBuildDataValue(i);\r
1476 break;\r
1477 }\r
1478 }\r
1479 \r
1480 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1481 for (int i = 0; i < al.size(); ++i) {\r
1482 String[] s = al.get(i).split(" ");\r
1483 String mKey = s[0] + s[1] + s[2] + s[3];\r
57d0e52a 1484 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);\r
1485 s[4] = jComboBoxItemType.getSelectedItem()+"";\r
908b1c05 1486 al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);\r
1487 }\r
1488 \r
1489 ffc.removeDynamicPcdBuildData(cName, tsGuid);\r
1490}\r
1491\r
1492private void pcdNonDynamicToDynamic(String cName, String tsGuid) {\r
1493 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1494 for (int i = 0; i < al.size(); ++i) {\r
1495 String[] s = al.get(i).split(" ");\r
bf5abaff 1496 String mKey = s[0] + " " + s[1]+ " " + s[2] + " " + s[3];\r
57d0e52a 1497 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
1498 s[4] = jComboBoxItemType.getSelectedItem()+"";\r
908b1c05 1499 al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);\r
1500 }\r
1501 try{\r
57d0e52a 1502 ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
908b1c05 1503 }\r
1504 catch(Exception e){\r
1505 JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());\r
1506 }\r
1507}\r
1508/**\r
57d0e52a 1509 * This method initializes jTextFieldMaxDatumSize\r
908b1c05 1510 * \r
1511 * @return javax.swing.JTextField \r
1512 */\r
57d0e52a 1513private JTextField getJTextFieldMaxDatumSize() {\r
1514 if (jTextFieldMaxDatumSize == null) {\r
1515 jTextFieldMaxDatumSize = new JTextField();\r
1516 jTextFieldMaxDatumSize.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1517 }\r
57d0e52a 1518 return jTextFieldMaxDatumSize;\r
908b1c05 1519}\r
1520/**\r
1521 * This method initializes jTextField4 \r
1522 * \r
1523 * @return javax.swing.JTextField \r
1524 */\r
57d0e52a 1525private JTextField getJTextFieldPcdDefault() {\r
1526 if (jTextFieldPcdDefault == null) {\r
1527 jTextFieldPcdDefault = new JTextField();\r
1528 jTextFieldPcdDefault.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1529 }\r
57d0e52a 1530 return jTextFieldPcdDefault;\r
908b1c05 1531}\r
1532/**\r
1533 * This method initializes jButton6 \r
1534 * \r
1535 * @return javax.swing.JButton \r
1536 */\r
57d0e52a 1537private JButton getJButtonUpdatePcd() {\r
1538 if (jButtonUpdatePcd == null) {\r
1539 jButtonUpdatePcd = new JButton();\r
1540 jButtonUpdatePcd.setPreferredSize(new java.awt.Dimension(150,20));\r
1541 jButtonUpdatePcd.setText("Update PCD Data");\r
1542 jButtonUpdatePcd.addActionListener(new java.awt.event.ActionListener() {\r
908b1c05 1543 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1544 int row = jTablePcd.getSelectedRow();\r
908b1c05 1545 if (row < 0) {\r
1546 return;\r
1547 }\r
8f55ea73 1548 docConsole.setSaved(false);\r
57d0e52a 1549 model.setValueAt(jComboBoxItemType.getSelectedItem(), row, 2);\r
1550 model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
1551 model.setValueAt(jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem(), row, 6);\r
908b1c05 1552 ffc.updatePcdData(moduleKey, model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"", model.getValueAt(row, 2)+"", model.getValueAt(row, 4)+"", model.getValueAt(row, 6)+"");\r
1553 }\r
1554 });\r
1555 }\r
57d0e52a 1556 return jButtonUpdatePcd;\r
908b1c05 1557}\r
1558/**\r
57d0e52a 1559 * This method initializes jComboBoxFeatureFlagValue\r
908b1c05 1560 * \r
1561 * @return javax.swing.JComboBox \r
1562 */\r
57d0e52a 1563private JComboBox getJComboBoxFeatureFlagValue() {\r
1564 if (jComboBoxFeatureFlagValue == null) {\r
1565 jComboBoxFeatureFlagValue = new JComboBox();\r
1566 jComboBoxFeatureFlagValue.setPreferredSize(new java.awt.Dimension(100,20));\r
1567 jComboBoxFeatureFlagValue.setVisible(false);\r
1568 jComboBoxFeatureFlagValue.addItem("true");\r
1569 jComboBoxFeatureFlagValue.addItem("false");\r
1570 }\r
1571 return jComboBoxFeatureFlagValue;\r
908b1c05 1572}\r
c1dbe93d 1573/**\r
1574 * This method initializes jPanelCustomToolChain \r
1575 * \r
1576 * @return javax.swing.JPanel \r
1577 */\r
1578private JPanel getJPanelCustomToolChain() {\r
1579 if (jPanelCustomToolChain == null) {\r
1580 jPanelCustomToolChain = new JPanel();\r
1581 jPanelCustomToolChain.setLayout(new BorderLayout());\r
1582 jPanelCustomToolChain.add(getJPanelToolchainS(), java.awt.BorderLayout.SOUTH);\r
1583 jPanelCustomToolChain.add(getJPanelToolchainC(), java.awt.BorderLayout.CENTER);\r
1584 jPanelCustomToolChain.addComponentListener(new java.awt.event.ComponentAdapter() {\r
1585 public void componentShown(java.awt.event.ComponentEvent e) {\r
1586 initToolChainOptions(moduleKey);\r
1587 }\r
1588 });\r
1589 }\r
1590 return jPanelCustomToolChain;\r
1591}\r
1592/**\r
1593 * This method initializes jPanelToolchainS \r
1594 * \r
1595 * @return javax.swing.JPanel \r
1596 */\r
1597private JPanel getJPanelToolchainS() {\r
1598 if (jPanelToolchainS == null) {\r
1599 jPanelToolchainS = new JPanel();\r
1600 jPanelToolchainS.add(getJButtonNew(), null);\r
1601 jPanelToolchainS.add(getJButtonDeleteOption(), null);\r
1602 }\r
1603 return jPanelToolchainS;\r
1604}\r
1605/**\r
1606 * This method initializes jPanelToolchainC \r
1607 * \r
1608 * @return javax.swing.JPanel \r
1609 */\r
1610private JPanel getJPanelToolchainC() {\r
1611 if (jPanelToolchainC == null) {\r
1612 jPanelToolchainC = new JPanel();\r
1613 jPanelToolchainC.add(getJScrollPaneModuleSaOptions(), null);\r
1614 }\r
1615 return jPanelToolchainC;\r
1616}\r
f3b0ed9a 1617\r
a13899c5 1618\r
1619} // @jve:decl-index=0:visual-constraint="10,10"\r
1620\r
1621class PartialEditableTableModel extends DefaultTableModel {\r
44053733 1622 /**\r
1623 * \r
1624 */\r
1625 private static final long serialVersionUID = 1L;\r
1626\r
a13899c5 1627 public boolean isCellEditable(int row, int col) {\r
1628 switch (col){\r
1629 case 2:\r
82961247 1630 return false;\r
a13899c5 1631 default:\r
1632 return false; \r
1633 }\r
1634 \r
1635 }\r
1636}\r
1637\r
1638class LibraryTableModel extends DefaultTableModel {\r
44053733 1639 /**\r
1640 * \r
1641 */\r
1642 private static final long serialVersionUID = 1L;\r
1643\r
a13899c5 1644 public boolean isCellEditable(int row, int col) {\r
1645 return false;\r
1646 }\r
1647}\r