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