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