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