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