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