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