]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
add multi-source pcd check before adding/deleting lib instance for ModuleSA in platform.
[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
1b69863a 127 private JPanel jPanelLibraryCenterN = null;\r
128 private JPanel jPanelLibraryCenterC = null; // @jve:decl-index=0:visual-constraint="20,224"\r
a13899c5 129 /**\r
130 * This is the default constructor\r
131 */\r
132 public FpdModuleSA() {\r
133 super();\r
134 initialize();\r
135 }\r
136 public FpdModuleSA(FpdFileContents ffc) {\r
137 this();\r
138 this.ffc = ffc;\r
139 }\r
140 \r
8f55ea73 141 public void setKey(String k, int i, OpeningPlatformType dc){\r
a13899c5 142 this.moduleKey = k;\r
802e0055 143 moduleSaNum = i;\r
8f55ea73 144 this.docConsole = dc;\r
57d0e52a 145 classProduced = null;\r
146 classConsumed = null;\r
908b1c05 147 jTabbedPane.setSelectedIndex(0);\r
055e7ae6 148 initPcdBuildDefinition(i);\r
a13899c5 149 }\r
150\r
151 /**\r
152 init will be called each time FpdModuleSA object is to be shown.\r
153 @param key Module information.\r
154 **/\r
055e7ae6 155 public void initPcdBuildDefinition(int i) {\r
a13899c5 156 //\r
157 // display pcd for key.\r
158 //\r
159 model.setRowCount(0);\r
1bf9fa5a 160 jTextAreaPcdHelp.setText("");\r
161 jComboBoxItemType.setSelectedIndex(-1);\r
162 jTextFieldMaxDatumSize.setText("");\r
163 jTextFieldPcdDefault.setText("");\r
055e7ae6 164 int pcdCount = ffc.getPcdDataCount(i);\r
a13899c5 165 if (pcdCount != 0) {\r
82961247 166 String[][] saa = new String[pcdCount][7];\r
055e7ae6 167 ffc.getPcdData(i, saa);\r
168 for (int j = 0; j < saa.length; ++j) {\r
169 model.addRow(saa[j]);\r
a13899c5 170 }\r
171 }\r
908b1c05 172 }\r
173 \r
174 public void initLibraries(String key) {\r
71baa24b 175 //\r
176 // display library classes that need to be resolved. also potential instances for them.\r
177 //\r
bf5abaff 178 resolveLibraryInstances(moduleKey);\r
a13899c5 179 //\r
180 // display lib instances already selected for key\r
181 //\r
57d0e52a 182 selectedInstancesTableModel.setRowCount(0);\r
a13899c5 183 int instanceCount = ffc.getLibraryInstancesCount(key);\r
184 if (instanceCount != 0) {\r
185 String[][] saa = new String[instanceCount][5];\r
186 ffc.getLibraryInstances(key, saa);\r
187 for (int i = 0; i < saa.length; ++i) {\r
1bf9fa5a 188 ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
71baa24b 189 if (mi != null) {\r
190 saa[i][0] = mi.getName();\r
191 saa[i][2] = mi.getVersion();\r
3658f95e 192 saa[i][4] = mi.getPackageId().getVersion();\r
71baa24b 193 //\r
194 // re-evaluate lib instance usage when adding a already-selected lib instance.\r
195 //\r
196 resolveLibraryInstances(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
57d0e52a 197 selectedInstancesTableModel.addRow(saa[i]);\r
a13899c5 198 }\r
a13899c5 199 }\r
200 }\r
a094728f 201 showClassToResolved();\r
908b1c05 202 }\r
203 \r
c1dbe93d 204 public void initFvInfo (String key) {\r
1800d80f 205 //\r
206 // display module SA options\r
207 //\r
802e0055 208 jTextFieldFvBinding.setText("");\r
1800d80f 209 String fvBinding = ffc.getFvBinding(key);\r
210 if (fvBinding != null) {\r
8f55ea73 211 jTextFieldFvBinding.setText(fvBinding);\r
1800d80f 212 }\r
802e0055 213 jTextFieldFileGuid.setText("");\r
1800d80f 214 String fileGuid = ffc.getFfsFileNameGuid(key);\r
215 if (fileGuid != null) {\r
8f55ea73 216 jTextFieldFileGuid.setText(fileGuid);\r
1800d80f 217 }\r
802e0055 218 jTextFieldFfsKey.setText("");\r
1800d80f 219 String ffsKey = ffc.getFfsFormatKey(key);\r
220 if (ffsKey != null) {\r
8f55ea73 221 jTextFieldFfsKey.setText(ffsKey);\r
1800d80f 222 }\r
c1dbe93d 223 }\r
224 \r
225 public void initToolChainOptions(String key) {\r
bf5abaff 226 \r
227 optionsTableModel.setRowCount(0);\r
228 String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6];\r
229 ffc.getModuleSAOptions(key, saa);\r
230 for (int i = 0; i < saa.length; ++i) {\r
231 optionsTableModel.addRow(saa[i]);\r
232 }\r
a13899c5 233 }\r
234 \r
235 private void resolveLibraryInstances(String key) {\r
1bf9fa5a 236 ModuleIdentification mi = WorkspaceProfile.getModuleId(key);\r
a13899c5 237 PackageIdentification[] depPkgList = null;\r
238 try{\r
a13899c5 239 //\r
240 // Get dependency pkg list into which we will search lib instances.\r
241 //\r
daa4663b 242 depPkgList = SurfaceAreaQuery.getDependencePkg(null, mi);\r
a13899c5 243 //\r
244 // Get the lib class consumed, produced by this module itself.\r
245 //\r
daa4663b 246 Vector<String> vClassConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
a13899c5 247 \r
248 if (this.classConsumed == null) {\r
249 this.classConsumed = new HashMap<String, ArrayList<String>>();\r
250 }\r
251 \r
daa4663b 252 for(int i = 0; i < vClassConsumed.size(); ++i){\r
253 ArrayList<String> consumedBy = this.classConsumed.get(vClassConsumed.get(i));\r
a13899c5 254 if (consumedBy == null) {\r
255 consumedBy = new ArrayList<String>();\r
256 }\r
257 consumedBy.add(key);\r
daa4663b 258 this.classConsumed.put(vClassConsumed.get(i), consumedBy);\r
a13899c5 259 }\r
260 \r
daa4663b 261 Vector<String> vClassProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
a13899c5 262 if (this.classProduced == null) {\r
263 this.classProduced = new ArrayList<String>();\r
264 }\r
daa4663b 265 for(int i = 0; i < vClassProduced.size(); ++i){\r
266 if (!this.classProduced.contains(vClassProduced.get(i))){\r
267 this.classProduced.add(vClassProduced.get(i));\r
a13899c5 268 }\r
269 }\r
f4c4325b 270 \r
a13899c5 271 //\r
272 // find potential instances in all dependency pkgs for classes still in classConsumed.\r
273 //\r
274 if (classInstanceMap == null){\r
275 classInstanceMap = new HashMap<String, ArrayList<String>>();\r
276 }\r
277 Iterator<String> lic = this.classConsumed.keySet().iterator();\r
278 while(lic.hasNext()){\r
279 String cls = lic.next();\r
280 if (this.classProduced.contains(cls) || classInstanceMap.containsKey(cls)) {\r
281 continue;\r
282 }\r
283 ArrayList<String> instances = getInstancesForClass(cls, depPkgList);\r
284 if (instances.size() == 0){\r
285 JOptionPane.showMessageDialog(frame, "No Applicable Instance for Library Class " + \r
286 cls + ", Platform Build will Fail.");\r
287 }\r
288 classInstanceMap.put(cls, instances);\r
289 \r
290 }\r
291 \r
a094728f 292// showClassToResolved();\r
a13899c5 293 }\r
294 catch(Exception e) {\r
295 e.printStackTrace();\r
296 }\r
297 }\r
298 \r
299 private ArrayList<String> getInstancesForClass(String cls, PackageIdentification[] depPkgList) throws Exception{\r
300 ArrayList<String> al = new ArrayList<String>();\r
301 \r
73d9b1c4 302// for (int i = 0; i < depPkgList.length; ++i) {\r
3658f95e 303 Iterator ismi = GlobalData.vModuleList.iterator();\r
a13899c5 304 while(ismi.hasNext()) {\r
305 ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
73d9b1c4 306// if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {\r
307// continue;\r
308// }\r
a13899c5 309 String[] clsProduced = getClassProduced(mi);\r
310 \r
311 boolean isPotential = false;\r
312 for (int j = 0; j < clsProduced.length; ++j) {\r
313 if (clsProduced[j] == null) {\r
314 continue;\r
315 }\r
316 if (clsProduced[j].equals(cls)){\r
317 isPotential = true;\r
318 }\r
319 if (classProduced.contains(clsProduced[j])) {\r
320 isPotential = false;\r
321 break;\r
322 }\r
323 }\r
324 if (isPotential) {\r
325 al.add(mi.getGuid() + " " + mi.getVersion() + " " + \r
73d9b1c4 326 mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion());\r
a13899c5 327 }\r
328 }\r
73d9b1c4 329// }\r
a13899c5 330 \r
331 return al;\r
332 }\r
333 \r
334 private void removeInstance(String key) {\r
1bf9fa5a 335 ModuleIdentification mi = WorkspaceProfile.getModuleId(key); \r
a13899c5 336 //\r
337 // remove pcd information of instance from current ModuleSA\r
338 //\r
82dcbb45 339 ffc.removePcdData(moduleKey, mi);\r
a13899c5 340 //\r
341 // remove class produced by this instance and add back these produced class to be bound.\r
342 //\r
343 String[] clsProduced = getClassProduced(mi);\r
344 for (int i = 0; i < clsProduced.length; ++i) {\r
345 \r
346 classProduced.remove(clsProduced[i]);\r
347 }\r
348 //\r
349 // remove class consumed by this instance. we do not need to bound it now.\r
350 //\r
351 String[] clsConsumed = getClassConsumed(mi);\r
352 for (int i = 0; i < clsConsumed.length; ++i) {\r
353 ArrayList<String> al = classConsumed.get(clsConsumed[i]);\r
354 \r
355 if (al == null ) {\r
356 classConsumed.remove(clsConsumed[i]);\r
357 continue;\r
358 }\r
359 al.remove(key);\r
360 if (al.size() == 0) {\r
361 classConsumed.remove(clsConsumed[i]);\r
362 }\r
363 \r
364 }\r
365\r
366 showClassToResolved();\r
367 \r
368 }\r
369 \r
a13899c5 370 \r
371 private String[] getClassProduced(ModuleIdentification mi){\r
372 \r
373 try{\r
daa4663b 374 Vector<String> clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
375 String[] sClassProduced = new String[clsProduced.size()];\r
376 for (int i = 0; i < clsProduced.size(); ++i) {\r
377 sClassProduced[i] = clsProduced.get(i);\r
378 }\r
379 return sClassProduced;\r
a13899c5 380 \r
381 }catch (Exception e) {\r
382 e.printStackTrace();\r
383 }\r
384 return new String[0];\r
385 \r
386 }\r
387 \r
388 private String[] getClassConsumed(ModuleIdentification mi){\r
389 \r
a13899c5 390 try{\r
daa4663b 391 Vector<String> clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
392 String[] sClassConsumed = new String[clsConsumed.size()];\r
393 for (int i = 0; i < clsConsumed.size(); ++i) {\r
394 sClassConsumed[i] = clsConsumed.get(i);\r
395 }\r
396 return sClassConsumed;\r
a13899c5 397 }catch (Exception e) {\r
398 e.printStackTrace();\r
399 }\r
daa4663b 400 return new String[0];\r
a13899c5 401 }\r
402 \r
403 private void showClassToResolved(){\r
57d0e52a 404 libClassTableModel.setRowCount(0);\r
a13899c5 405 if (classConsumed.size() == 0) {\r
406 return;\r
407 }\r
408 Iterator<String> li = classConsumed.keySet().iterator();\r
409 while(li.hasNext()){\r
410 \r
411 String[] s = {li.next()};\r
daa4663b 412// if (classConsumed.get(s[0]) == null) {\r
413// continue;\r
414// }\r
415// if (classConsumed.get(s[0]).size() == 0) {\r
416// continue;\r
417// }\r
a13899c5 418 if (!classProduced.contains(s[0])){\r
57d0e52a 419 libClassTableModel.addRow(s);\r
a13899c5 420 }\r
421 }\r
57d0e52a 422 libInstanceTableModel.setRowCount(0);\r
a13899c5 423 }\r
a094728f 424 \r
1b69863a 425 private void addLibInstance (ModuleIdentification libMi) throws Exception{\r
a094728f 426 \r
a094728f 427 //\r
428 // Add pcd information of selected instance to current moduleSA\r
429 //\r
1b69863a 430 ffc.addFrameworkModulesPcdBuildDefs(libMi, null, ffc.getModuleSA(moduleKey));\r
a094728f 431 \r
1b69863a 432 ffc.genLibraryInstance(libMi, moduleKey);\r
a094728f 433 }\r
a13899c5 434 /**\r
435 * This method initializes this\r
436 * \r
437 * @return void\r
438 */\r
439 private void initialize() {\r
1b69863a 440 this.setSize(877, 555);\r
b411fc1f 441 this.setResizable(false);\r
f3b0ed9a 442 this.centerWindow();\r
a13899c5 443 this.setModal(true);\r
444 this.setTitle("Module Settings");\r
445 this.setContentPane(getJContentPane());\r
446 }\r
447\r
448 /**\r
449 * This method initializes jContentPane\r
450 * \r
451 * @return javax.swing.JPanel\r
452 */\r
453 private JPanel getJContentPane() {\r
454 if (jContentPane == null) {\r
455 jContentPane = new JPanel();\r
456 jContentPane.setLayout(new BorderLayout());\r
457 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
57d0e52a 458 jContentPane.add(getJPanelContentPaneSouth(), java.awt.BorderLayout.SOUTH);\r
a13899c5 459 }\r
460 return jContentPane;\r
461 }\r
462\r
463 /**\r
464 * This method initializes jTabbedPane \r
465 * \r
466 * @return javax.swing.JTabbedPane \r
467 */\r
468 private JTabbedPane getJTabbedPane() {\r
469 if (jTabbedPane == null) {\r
470 jTabbedPane = new JTabbedPane();\r
57d0e52a 471 jTabbedPane.addTab("PCD Build Definition", null, getJPanelPcd(), null);\r
57d0e52a 472 jTabbedPane.addTab("Libraries", null, getJPanelLibrary(), null);\r
c1dbe93d 473 jTabbedPane.addTab("FV Info", null, getJPanelModuleSaOpts(), null);\r
474 jTabbedPane.addTab("Custom Toolchain", null, getJPanelCustomToolChain(), null);\r
475 \r
a13899c5 476 }\r
477 return jTabbedPane;\r
478 }\r
479\r
480 /**\r
57d0e52a 481 * This method initializes jPanelPcd\r
a13899c5 482 * \r
483 * @return javax.swing.JPanel \r
484 */\r
57d0e52a 485 private JPanel getJPanelPcd() {\r
486 if (jPanelPcd == null) {\r
487 jLabelPcdData = new JLabel();\r
1b69863a 488 jLabelPcdData.setText(" PCD Data");\r
57d0e52a 489 jPanelPcd = new JPanel();\r
490 jPanelPcd.setLayout(new BorderLayout());\r
491 jPanelPcd.add(jLabelPcdData, java.awt.BorderLayout.NORTH);\r
492 jPanelPcd.add(getJScrollPaneTablePcd(), java.awt.BorderLayout.CENTER);\r
493 jPanelPcd.add(getJPanelPcdSouth(), java.awt.BorderLayout.SOUTH);\r
494 jPanelPcd.addComponentListener(new java.awt.event.ComponentAdapter() {\r
a13899c5 495 public void componentShown(java.awt.event.ComponentEvent e) {\r
802e0055 496 initPcdBuildDefinition(moduleSaNum);\r
a13899c5 497 }\r
498 });\r
499 \r
500 }\r
57d0e52a 501 return jPanelPcd;\r
a13899c5 502 }\r
503\r
504 /**\r
57d0e52a 505 * This method initializes jPanelLibrary\r
a13899c5 506 * \r
507 * @return javax.swing.JPanel \r
508 */\r
57d0e52a 509 private JPanel getJPanelLibrary() {\r
510 if (jPanelLibrary == null) {\r
511 jPanelLibrary = new JPanel();\r
512 jPanelLibrary.setLayout(new BorderLayout());\r
513 jPanelLibrary.add(getJSplitPane(), java.awt.BorderLayout.NORTH);\r
514 jPanelLibrary.add(getJPanelLibrarySouth(), java.awt.BorderLayout.SOUTH);\r
515 jPanelLibrary.add(getJPanelLibraryCenter(), java.awt.BorderLayout.CENTER);\r
516 jPanelLibrary.addComponentListener(new java.awt.event.ComponentAdapter() {\r
a13899c5 517 public void componentShown(java.awt.event.ComponentEvent e) {\r
908b1c05 518 initLibraries(moduleKey);\r
a13899c5 519 }\r
520 });\r
521 }\r
57d0e52a 522 return jPanelLibrary;\r
a13899c5 523 }\r
524\r
525 /**\r
57d0e52a 526 * This method initializes jScrollPaneTablePcd\r
a13899c5 527 * \r
528 * @return javax.swing.JScrollPane \r
529 */\r
57d0e52a 530 private JScrollPane getJScrollPaneTablePcd() {\r
531 if (jScrollPaneTablePcd == null) {\r
532 jScrollPaneTablePcd = new JScrollPane();\r
533 jScrollPaneTablePcd.setViewportView(getJTablePcd());\r
a13899c5 534 }\r
57d0e52a 535 return jScrollPaneTablePcd;\r
a13899c5 536 }\r
537\r
538 /**\r
539 * This method initializes jTable \r
540 * \r
541 * @return javax.swing.JTable \r
542 */\r
57d0e52a 543 private JTable getJTablePcd() {\r
544 if (jTablePcd == null) {\r
ed850fbf 545 model = new IDefaultTableModel();\r
57d0e52a 546 jTablePcd = new JTable(model);\r
547 jTablePcd.setRowHeight(20);\r
1b69863a 548 jTablePcd.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);\r
a13899c5 549 model.addColumn("CName");\r
550 model.addColumn("TokenSpaceGUID");\r
551 model.addColumn("ItemType");\r
552 model.addColumn("Token");\r
82961247 553 model.addColumn("MaxDatumSize");\r
a13899c5 554 model.addColumn("DataType");\r
555 model.addColumn("DefaultValue");\r
556 \r
57d0e52a 557 jTablePcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
558 jTablePcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 559 public void valueChanged(ListSelectionEvent e) {\r
44053733 560 \r
a13899c5 561 if (e.getValueIsAdjusting()){\r
562 return;\r
563 }\r
564 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
565 if (lsm.isSelectionEmpty()) {\r
566 return;\r
567 }\r
568 else{\r
908b1c05 569 int selectedRow = lsm.getMinSelectionIndex();\r
73d9b1c4 570 String cName = model.getValueAt(selectedRow, 0)+"";\r
571 String tsGuid = model.getValueAt(selectedRow, 1)+"";\r
572 String itemType = model.getValueAt(selectedRow, 2)+"";\r
ce32083f 573 //\r
574 // array for pcd related information: helpText, itemType, moduleType.\r
575 //\r
576 String[] pcdInfo = {"", "", ""};\r
1dac04ab 577 getPcdInfo(cName, tsGuid, pcdInfo);\r
57d0e52a 578 jTextAreaPcdHelp.setText(pcdInfo[0]);\r
ce32083f 579 initComboBox(pcdInfo[1], pcdInfo[2]);\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
ce32083f 586 if (model.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
ce32083f 612 jComboBoxFeatureFlagValue.setSelectedItem(model.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
ce32083f 633 private void initComboBox(String originalType, String mType) {\r
57d0e52a 634 jComboBoxItemType.removeAllItems();\r
635 jComboBoxItemType.addItem(originalType);\r
ce32083f 636 if (originalType.equals("PATCHABLE_IN_MODULE") && mType.equalsIgnoreCase("false")) {\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
1b69863a 783 jScrollPaneSelectedInstances.setPreferredSize(new java.awt.Dimension(600,150));\r
57d0e52a 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
1b69863a 888 jScrollPaneQualifiedInstance.setPreferredSize(new java.awt.Dimension(600,170));\r
57d0e52a 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
1b69863a 940 jPanelLibraryCenter.setLayout(new BorderLayout());\r
941\r
942 jPanelLibraryCenter.add(getJPanelLibraryCenterC(), java.awt.BorderLayout.CENTER);\r
943 jPanelLibraryCenter.add(getJPanelLibraryCenterN(), java.awt.BorderLayout.NORTH);\r
944\r
a13899c5 945 }\r
57d0e52a 946 return jPanelLibraryCenter;\r
a13899c5 947 }\r
948\r
949 /**\r
57d0e52a 950 * This method initializes jScrollPaneInstanceHelp\r
a13899c5 951 * \r
952 * @return javax.swing.JScrollPane \r
953 */\r
57d0e52a 954 private JScrollPane getJScrollPaneInstanceHelp() {\r
955 if (jScrollPaneInstanceHelp == null) {\r
956 jScrollPaneInstanceHelp = new JScrollPane();\r
1b69863a 957 jScrollPaneInstanceHelp.setPreferredSize(new java.awt.Dimension(400,50));\r
57d0e52a 958 jScrollPaneInstanceHelp.setViewportView(getJTextAreaInstanceHelp());\r
a13899c5 959 }\r
57d0e52a 960 return jScrollPaneInstanceHelp;\r
a13899c5 961 }\r
962\r
963 /**\r
57d0e52a 964 * This method initializes jTextAreaInstanceHelp\r
a13899c5 965 * \r
966 * @return javax.swing.JTextArea \r
967 */\r
57d0e52a 968 private JTextArea getJTextAreaInstanceHelp() {\r
969 if (jTextAreaInstanceHelp == null) {\r
970 jTextAreaInstanceHelp = new JTextArea();\r
971 jTextAreaInstanceHelp.setEditable(false);\r
a13899c5 972 }\r
57d0e52a 973 return jTextAreaInstanceHelp;\r
a13899c5 974 }\r
975\r
976 /**\r
57d0e52a 977 * This method initializes jButtonAdd\r
a13899c5 978 * \r
979 * @return javax.swing.JButton \r
980 */\r
57d0e52a 981 private JButton getJButtonAdd() {\r
982 if (jButtonAdd == null) {\r
983 jButtonAdd = new JButton();\r
984 jButtonAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
985 jButtonAdd.setText("Add");\r
986 jButtonAdd.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 987 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 988 int row = jTableLibInstances.getSelectedRow();\r
a13899c5 989 if (row < 0) {\r
990 return;\r
991 }\r
1b69863a 992 \r
57d0e52a 993 String instanceValue = libInstanceTableModel.getValueAt(row, 1) + " " +\r
994 libInstanceTableModel.getValueAt(row, 2) + " " +\r
995 libInstanceTableModel.getValueAt(row, 3) + " " +\r
996 libInstanceTableModel.getValueAt(row, 4);\r
1bf9fa5a 997 ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceValue);\r
1b69863a 998 try {\r
999 addLibInstance (libMi);\r
1000 }\r
1001 catch (Exception exception) {\r
1002 JOptionPane.showMessageDialog(frame, "Adding Instance" + libMi.getName() + ": "+ exception.getMessage());\r
1003 return;\r
1004 }\r
1005 docConsole.setSaved(false);\r
1006 Object[] s = {libInstanceTableModel.getValueAt(row, 0), libInstanceTableModel.getValueAt(row, 1),\r
1007 libInstanceTableModel.getValueAt(row, 2), libInstanceTableModel.getValueAt(row, 3),\r
1008 libInstanceTableModel.getValueAt(row, 4)};\r
1009 selectedInstancesTableModel.addRow(s);\r
a13899c5 1010 resolveLibraryInstances(instanceValue);\r
a094728f 1011 showClassToResolved();\r
a13899c5 1012 }\r
1013 });\r
1014 }\r
57d0e52a 1015 return jButtonAdd;\r
a13899c5 1016 }\r
1017\r
1018 /**\r
57d0e52a 1019 * This method initializes jButton1\r
a13899c5 1020 * \r
1021 * @return javax.swing.JButton \r
1022 */\r
57d0e52a 1023 private JButton getJButtonDeleteInstance() {\r
1024 if (jButtonDeleteInstance == null) {\r
1025 jButtonDeleteInstance = new JButton();\r
1026 jButtonDeleteInstance.setPreferredSize(new java.awt.Dimension(80,20));\r
1027 jButtonDeleteInstance.setText("Delete");\r
1028 jButtonDeleteInstance.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 1029 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1030 int row = jTableSelectedInstances.getSelectedRow();\r
a13899c5 1031 if (row < 0) {\r
1032 return;\r
1033 }\r
8f55ea73 1034 docConsole.setSaved(false);\r
57d0e52a 1035 removeInstance(selectedInstancesTableModel.getValueAt(row, 1) + " " +\r
1036 selectedInstancesTableModel.getValueAt(row, 2) + " " +\r
1037 selectedInstancesTableModel.getValueAt(row, 3) + " " +\r
1038 selectedInstancesTableModel.getValueAt(row, 4));\r
908b1c05 1039 ffc.removeLibraryInstance(moduleKey, row);\r
57d0e52a 1040 selectedInstancesTableModel.removeRow(row);\r
a13899c5 1041 \r
1042 }\r
1043 });\r
1044 }\r
57d0e52a 1045 return jButtonDeleteInstance;\r
a13899c5 1046 }\r
1047\r
1048 /**\r
1049 * This method initializes jButton2 \r
1050 * \r
1051 * @return javax.swing.JButton \r
1052 */\r
57d0e52a 1053 private JButton getJButtonOk() {\r
1054 if (jButtonOk == null) {\r
1055 jButtonOk = new JButton();\r
1056 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
1057 jButtonOk.setText("Ok");\r
1058 jButtonOk.addActionListener(this);\r
a13899c5 1059 }\r
57d0e52a 1060 return jButtonOk;\r
a13899c5 1061 }\r
1062\r
1063 /**\r
1064 * This method initializes jButton3 \r
1065 * \r
1066 * @return javax.swing.JButton \r
1067 */\r
57d0e52a 1068 private JButton getJButtonCancel() {\r
1069 if (jButtonCancel == null) {\r
1070 jButtonCancel = new JButton();\r
1071 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
1072 jButtonCancel.setText("Cancel");\r
1073 jButtonCancel.setVisible(false);\r
a13899c5 1074 }\r
57d0e52a 1075 return jButtonCancel;\r
a13899c5 1076 }\r
1077 public void actionPerformed(ActionEvent arg0) {\r
1078\r
57d0e52a 1079 if (arg0.getSource() == jButtonOk) {\r
1080 if (jTableModuleSaOptions.isEditing()) {\r
1081 jTableModuleSaOptions.getCellEditor().stopCellEditing();\r
bf5abaff 1082 }\r
a13899c5 1083 this.setVisible(false);\r
1084 }\r
1085 }\r
6a09eb19 1086 /**\r
57d0e52a 1087 * This method initializes jPanelModuleSaOpts\r
6a09eb19 1088 * \r
1089 * @return javax.swing.JPanel \r
1090 */\r
57d0e52a 1091 private JPanel getJPanelModuleSaOpts() {\r
1092 if (jPanelModuleSaOpts == null) {\r
8f55ea73 1093 FlowLayout flowLayout4 = new FlowLayout();\r
1094 flowLayout4.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1095 jLabelFfsFormatKey = new JLabel();\r
1096 jLabelFfsFormatKey.setText("FFS Format Key");\r
1097 jLabelFfsFormatKey.setPreferredSize(new java.awt.Dimension(90,16));\r
1098 jLabelFfsFileGuid = new JLabel();\r
1099 jLabelFfsFileGuid.setText("FFS File GUID");\r
1100 jLabelFfsFileGuid.setPreferredSize(new java.awt.Dimension(90,16));\r
d96d701f 1101 jLabelFfsFileGuid.setVisible(false);\r
57d0e52a 1102 jLabelFvBinding = new JLabel();\r
1103 jLabelFvBinding.setText("FV Binding");\r
1104 jLabelFvBinding.setPreferredSize(new java.awt.Dimension(90,16));\r
1105 jPanelModuleSaOpts = new JPanel();\r
1106 jPanelModuleSaOpts.setLayout(flowLayout4);\r
1107 jPanelModuleSaOpts.add(jLabelFvBinding, null);\r
1108 jPanelModuleSaOpts.add(getJTextFieldFvBinding(), null);\r
1109 jPanelModuleSaOpts.add(jLabelFfsFileGuid, null);\r
1110 jPanelModuleSaOpts.add(getJTextFieldFileGuid(), null);\r
1111 jPanelModuleSaOpts.add(jLabelFfsFormatKey, null);\r
1112 jPanelModuleSaOpts.add(getJTextFieldFfsKey(), null);\r
57d0e52a 1113 jPanelModuleSaOpts.addComponentListener(new java.awt.event.ComponentAdapter() {\r
71baa24b 1114 public void componentShown(java.awt.event.ComponentEvent e) {\r
c1dbe93d 1115 initFvInfo(moduleKey);\r
71baa24b 1116 }\r
1117 });\r
6a09eb19 1118 }\r
57d0e52a 1119 return jPanelModuleSaOpts;\r
6a09eb19 1120 }\r
1121 /**\r
1122 * This method initializes jTextField \r
1123 * \r
1124 * @return javax.swing.JTextField \r
1125 */\r
8f55ea73 1126 private JTextField getJTextFieldFvBinding() {\r
1127 if (jTextFieldFvBinding == null) {\r
1128 jTextFieldFvBinding = new JTextField();\r
1129 jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(150,20));\r
1130 jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() {\r
1131 public void focusLost(java.awt.event.FocusEvent e) {\r
1132 String originalFvBinding = ffc.getFvBinding(moduleKey);\r
1133 String newFvBinding = jTextFieldFvBinding.getText();\r
1134 if (newFvBinding.equals(originalFvBinding)) {\r
1135 return;\r
1136 }\r
1137 if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
1138 return;\r
1139 }\r
1140 docConsole.setSaved(false);\r
1141 ffc.setFvBinding(moduleKey, newFvBinding);\r
1142 }\r
1143 });\r
bf5abaff 1144 \r
6a09eb19 1145 }\r
8f55ea73 1146 return jTextFieldFvBinding;\r
6a09eb19 1147 }\r
1148 /**\r
1149 * This method initializes jTextField1 \r
1150 * \r
1151 * @return javax.swing.JTextField \r
1152 */\r
8f55ea73 1153 private JTextField getJTextFieldFileGuid() {\r
1154 if (jTextFieldFileGuid == null) {\r
1155 jTextFieldFileGuid = new JTextField();\r
1156 jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20));\r
d96d701f 1157 jTextFieldFileGuid.setVisible(false);\r
8f55ea73 1158 jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() {\r
1159 public void focusLost(java.awt.event.FocusEvent e) {\r
1160 String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey);\r
1161 String newFileGuid = jTextFieldFileGuid.getText();\r
1162 if (newFileGuid.equals(originalFileGuid)) {\r
1163 return;\r
1164 }\r
1165 if (newFileGuid.length() == 0 && originalFileGuid == null) {\r
1166 return;\r
1167 }\r
1168 if (newFileGuid.length() > 0) {\r
1169 if (!DataValidation.isGuid(newFileGuid)) {\r
1170 JOptionPane.showMessageDialog(frame, "FFS File Guid is NOT GUID Type.");\r
1171 return;\r
1172 }\r
1173 }\r
1174 \r
1175 docConsole.setSaved(false);\r
1176 if (newFileGuid.length() == 0) {\r
1177 newFileGuid = null;\r
1178 }\r
1179 ffc.setFfsFileNameGuid(moduleKey, newFileGuid);\r
1180 }\r
1181 });\r
bf5abaff 1182 \r
6a09eb19 1183 }\r
8f55ea73 1184 return jTextFieldFileGuid;\r
6a09eb19 1185 }\r
1186 /**\r
8f55ea73 1187 * This method initializes jTextFieldFfsKey \r
6a09eb19 1188 * \r
1189 * @return javax.swing.JTextField \r
1190 */\r
8f55ea73 1191 private JTextField getJTextFieldFfsKey() {\r
1192 if (jTextFieldFfsKey == null) {\r
1193 jTextFieldFfsKey = new JTextField();\r
802e0055 1194 jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(250,20));\r
8f55ea73 1195 jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
1196 public void focusLost(java.awt.event.FocusEvent e) {\r
1197 String originalFfsKey = ffc.getFfsFormatKey(moduleKey);\r
1198 String newFfsKey = jTextFieldFfsKey.getText();\r
1199 if (newFfsKey.equals(originalFfsKey)) {\r
1200 return;\r
1201 }\r
1202 if (newFfsKey.length() == 0 && originalFfsKey == null) {\r
1203 return;\r
1204 }\r
1205 docConsole.setSaved(false);\r
1206 ffc.setFfsFormatKey(moduleKey, newFfsKey);\r
1207 }\r
1208 });\r
bf5abaff 1209 \r
6a09eb19 1210 }\r
8f55ea73 1211 return jTextFieldFfsKey;\r
6a09eb19 1212 }\r
1213 /**\r
57d0e52a 1214 * This method initializes jScrollPaneModuleSaOptions\r
6a09eb19 1215 * \r
1216 * @return javax.swing.JScrollPane \r
1217 */\r
57d0e52a 1218 private JScrollPane getJScrollPaneModuleSaOptions() {\r
1219 if (jScrollPaneModuleSaOptions == null) {\r
1220 jScrollPaneModuleSaOptions = new JScrollPane();\r
c1dbe93d 1221 jScrollPaneModuleSaOptions.setPreferredSize(new java.awt.Dimension(600,350));\r
57d0e52a 1222 jScrollPaneModuleSaOptions.setViewportView(getJTableModuleSaOptions());\r
6a09eb19 1223 }\r
57d0e52a 1224 return jScrollPaneModuleSaOptions;\r
6a09eb19 1225 }\r
1226 /**\r
57d0e52a 1227 * This method initializes jTableModuleSaOptions\r
6a09eb19 1228 * \r
1229 * @return javax.swing.JTable \r
1230 */\r
57d0e52a 1231 private JTable getJTableModuleSaOptions() {\r
1232 if (jTableModuleSaOptions == null) {\r
1800d80f 1233 optionsTableModel = new DefaultTableModel();\r
1234 optionsTableModel.addColumn("BuildTargets");\r
1235 optionsTableModel.addColumn("ToolChainFamily");\r
1236 optionsTableModel.addColumn("TagName");\r
1237 optionsTableModel.addColumn("ToolCode");\r
1238 optionsTableModel.addColumn("SupportedArchs");\r
1239 optionsTableModel.addColumn("Contents");\r
57d0e52a 1240 jTableModuleSaOptions = new JTable(optionsTableModel);\r
1241 jTableModuleSaOptions.setRowHeight(20);\r
98c20797 1242 \r
1243 javax.swing.table.TableColumn toolFamilyCol = jTableModuleSaOptions.getColumnModel().getColumn(1);\r
1244 JComboBox cb = new JComboBox();\r
1245 cb.addItem("MSFT");\r
1246 cb.addItem("GCC");\r
1247 cb.addItem("CYGWIN");\r
1248 cb.addItem("INTEL");\r
1249 cb.addItem("USER_DEFINED");\r
1250 toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
1251 \r
f3b0ed9a 1252 Vector<String> vArch = new Vector<String>();\r
1253 vArch.add("IA32");\r
1254 vArch.add("X64");\r
1255 vArch.add("IPF");\r
1256 vArch.add("EBC");\r
1257 vArch.add("ARM");\r
1258 vArch.add("PPC");\r
57d0e52a 1259 jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));\r
98c20797 1260 \r
1261 jTableModuleSaOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());\r
1262 \r
57d0e52a 1263 jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1264 jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
1265 jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() {\r
1800d80f 1266 public void tableChanged(TableModelEvent arg0) {\r
1267 // TODO Auto-generated method stub\r
1268 int row = arg0.getFirstRow();\r
1269 TableModel m = (TableModel)arg0.getSource();\r
1270 \r
1271 if (arg0.getType() == TableModelEvent.UPDATE){\r
1272 //ToDo Data Validition check.\r
1273 String targets = m.getValueAt(row, 0) + "";\r
f3b0ed9a 1274 Vector<Object> targetName = null;\r
1275 if (targets.length() > 0) {\r
1276 targetName = new Vector<Object>();\r
1277 String[] sArray = targets.split(" ");\r
1278 for (int i = 0; i < sArray.length; ++i) {\r
1279 targetName.add(sArray[i]);\r
1280 }\r
1800d80f 1281 }\r
f3b0ed9a 1282 \r
1800d80f 1283 String toolChain = m.getValueAt(row, 1) + "";\r
1284 String tagName = m.getValueAt(row, 2) + "";\r
1285 String toolCode = m.getValueAt(row, 3) + "";\r
1286 String archs = m.getValueAt(row, 4) + "";\r
f3b0ed9a 1287 Vector<Object> supArch = null;\r
1288 if (archs.length() > 0) {\r
1289 supArch = new Vector<Object>();\r
1290 String[] sArray1 = archs.split(" ");\r
1291 for (int i = 0; i < sArray1.length; ++i) {\r
1292 supArch.add(sArray1[i]);\r
1293 }\r
1800d80f 1294 }\r
f3b0ed9a 1295 \r
1800d80f 1296 String contents = m.getValueAt(row, 5) + "";\r
8f55ea73 1297 docConsole.setSaved(false);\r
1800d80f 1298 ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents);\r
1299 }\r
1300 }\r
1301 });\r
6a09eb19 1302 }\r
57d0e52a 1303 return jTableModuleSaOptions;\r
6a09eb19 1304 }\r
1800d80f 1305 /**\r
57d0e52a 1306 * This method initializes jButtonNew\r
1800d80f 1307 * \r
1308 * @return javax.swing.JButton \r
1309 */\r
57d0e52a 1310 private JButton getJButtonNew() {\r
1311 if (jButtonNew == null) {\r
1312 jButtonNew = new JButton();\r
1313 jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1314 jButtonNew.setText("New");\r
1315 jButtonNew.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1316 public void actionPerformed(java.awt.event.ActionEvent e) {\r
bf5abaff 1317 String[] row = {"", "", "", "", "", ""};\r
1800d80f 1318 optionsTableModel.addRow(row);\r
1319 Vector<Object> v = new Vector<Object>();\r
bf5abaff 1320 Vector<Object> v1 = null;\r
8f55ea73 1321 docConsole.setSaved(false);\r
1800d80f 1322 ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");\r
1323 }\r
1324 });\r
1325 }\r
57d0e52a 1326 return jButtonNew;\r
1800d80f 1327 }\r
1328 /**\r
57d0e52a 1329 * This method initializes jButtonDelete\r
1800d80f 1330 * \r
1331 * @return javax.swing.JButton \r
1332 */\r
57d0e52a 1333 private JButton getJButtonDeleteOption() {\r
1334 if (jButtonDeleteOption == null) {\r
1335 jButtonDeleteOption = new JButton();\r
1336 jButtonDeleteOption.setPreferredSize(new java.awt.Dimension(80,20));\r
1337 jButtonDeleteOption.setText("Delete");\r
1338 jButtonDeleteOption.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1339 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1340 if (jTableModuleSaOptions.getSelectedRow() < 0) {\r
1800d80f 1341 return;\r
1342 }\r
8f55ea73 1343 docConsole.setSaved(false);\r
57d0e52a 1344 ffc.removeModuleSAOptionsOpt(moduleKey, jTableModuleSaOptions.getSelectedRow());\r
1345 optionsTableModel.removeRow(jTableModuleSaOptions.getSelectedRow());\r
1800d80f 1346 }\r
1347 });\r
1348 }\r
57d0e52a 1349 return jButtonDeleteOption;\r
1800d80f 1350 }\r
f3b0ed9a 1351 \r
1352 /**\r
1353 Start the window at the center of screen\r
1354 \r
1355 **/\r
1356 protected void centerWindow(int intWidth, int intHeight) {\r
1357 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
1358 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
1359 }\r
1360\r
1361 /**\r
1362 Start the window at the center of screen\r
1363 \r
1364 **/\r
1365 protected void centerWindow() {\r
1366 centerWindow(this.getSize().width, this.getSize().height);\r
1367 }\r
908b1c05 1368/**\r
57d0e52a 1369 * This method initializes jPanelPcdFields\r
908b1c05 1370 * \r
1371 * @return javax.swing.JPanel \r
1372 */\r
57d0e52a 1373private JPanel getJPanelPcdFields() {\r
1374 if (jPanelPcdFields == null) {\r
908b1c05 1375 GridLayout gridLayout = new GridLayout();\r
1376 gridLayout.setRows(3);\r
1377 gridLayout.setColumns(2);\r
57d0e52a 1378 jPanelPcdFields = new JPanel();\r
1379 jPanelPcdFields.setLayout(gridLayout);\r
1380 jPanelPcdFields.setPreferredSize(new java.awt.Dimension(600,90));\r
1381 jPanelPcdFields.add(getJPanelPcdFieldsFirstRow(), null);\r
1382 jPanelPcdFields.add(getJPanelPcdFieldsSecondRow(), null);\r
1383 jPanelPcdFields.add(getJPanelPcdFieldsThirdRow(), null);\r
1384 }\r
1385 return jPanelPcdFields;\r
908b1c05 1386}\r
1387/**\r
57d0e52a 1388 * This method initializes jPanelPcdFieldsSecondRow\r
908b1c05 1389 * \r
1390 * @return javax.swing.JPanel \r
1391 */\r
57d0e52a 1392private JPanel getJPanelPcdFieldsSecondRow() {\r
1393 if (jPanelPcdFieldsSecondRow == null) {\r
908b1c05 1394 FlowLayout flowLayout2 = new FlowLayout();\r
1395 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1396 jLabelMaxDatumSize = new JLabel();\r
1397 jLabelMaxDatumSize.setText("Max Datum Size");\r
1398 jPanelPcdFieldsSecondRow = new JPanel();\r
1399 jPanelPcdFieldsSecondRow.setLayout(flowLayout2);\r
1400 jPanelPcdFieldsSecondRow.add(jLabelMaxDatumSize, null);\r
1401 jPanelPcdFieldsSecondRow.add(getJTextFieldMaxDatumSize(), null);\r
1402 }\r
1403 return jPanelPcdFieldsSecondRow;\r
908b1c05 1404}\r
1405/**\r
57d0e52a 1406 * This method initializes jPanelPcdFieldsThirdRow\r
908b1c05 1407 * \r
1408 * @return javax.swing.JPanel \r
1409 */\r
57d0e52a 1410private JPanel getJPanelPcdFieldsThirdRow() {\r
1411 if (jPanelPcdFieldsThirdRow == null) {\r
908b1c05 1412 FlowLayout flowLayout3 = new FlowLayout();\r
1413 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1414 jLabelPcdDefaultValue = new JLabel();\r
1415 jLabelPcdDefaultValue.setText("Default Value");\r
1416 jLabelPcdDefaultValue.setPreferredSize(new java.awt.Dimension(91,16));\r
1417 jPanelPcdFieldsThirdRow = new JPanel();\r
1418 jPanelPcdFieldsThirdRow.setLayout(flowLayout3);\r
1419 jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);\r
1420 jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);\r
1421 jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);\r
73d9b1c4 1422 jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null);\r
57d0e52a 1423 }\r
1424 return jPanelPcdFieldsThirdRow;\r
908b1c05 1425}\r
1426/**\r
57d0e52a 1427 * This method initializes jPanelPcdFieldsFirstRow\r
908b1c05 1428 * \r
1429 * @return javax.swing.JPanel \r
1430 */\r
57d0e52a 1431private JPanel getJPanelPcdFieldsFirstRow() {\r
1432 if (jPanelPcdFieldsFirstRow == null) {\r
908b1c05 1433 FlowLayout flowLayout1 = new FlowLayout();\r
1434 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1435 jLabelItemType = new JLabel();\r
1436 jLabelItemType.setText("Item Type");\r
1437 jLabelItemType.setPreferredSize(new java.awt.Dimension(91,16));\r
1438 jPanelPcdFieldsFirstRow = new JPanel();\r
1439 jPanelPcdFieldsFirstRow.setLayout(flowLayout1);\r
1440 jPanelPcdFieldsFirstRow.add(jLabelItemType, null);\r
1441 jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);\r
57d0e52a 1442 }\r
1443 return jPanelPcdFieldsFirstRow;\r
908b1c05 1444}\r
1445/**\r
57d0e52a 1446 * This method initializes jComboBoxItemType\r
908b1c05 1447 * \r
1448 * @return javax.swing.JComboBox \r
1449 */\r
57d0e52a 1450private JComboBox getJComboBoxItemType() {\r
1451 if (jComboBoxItemType == null) {\r
1452 jComboBoxItemType = new JComboBox();\r
1453 jComboBoxItemType.setPreferredSize(new java.awt.Dimension(200,20));\r
1454 jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {\r
908b1c05 1455 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
57d0e52a 1456 int row = jTablePcd.getSelectedRow();\r
73d9b1c4 1457 if (row < 0 || model.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
908b1c05 1458 return;\r
1459 }\r
57d0e52a 1460 if (jComboBoxItemType.getItemCount() == 3) {\r
1461 if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {\r
ce32083f 1462 \r
1bf9fa5a 1463 if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {\r
1464 jTextFieldPcdDefault.setText("");\r
1465 jTextFieldPcdDefault.setEnabled(true);\r
1466 }\r
908b1c05 1467 }\r
1468 else{\r
ce32083f 1469 \r
908b1c05 1470 }\r
1471 }\r
1472 }\r
1473 });\r
1474 }\r
57d0e52a 1475 return jComboBoxItemType;\r
908b1c05 1476}\r
1477\r
1478private void pcdDynamicToNonDynamic(String cName, String tsGuid) {\r
1479 String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
1480 ffc.getDynamicPcdBuildData(saa);\r
1481 String maxSize = "";\r
1482 String value = "";\r
1483 for (int i = 0; i < saa.length; ++i) {\r
1484 if (saa[i][0].equals(cName) && saa[i][2].equals(tsGuid)) {\r
1485 maxSize = saa[i][3];\r
1486 value = ffc.getDynamicPcdBuildDataValue(i);\r
1487 break;\r
1488 }\r
1489 }\r
1490 \r
1491 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1492 for (int i = 0; i < al.size(); ++i) {\r
73d9b1c4 1493 String mKey = moduleInfo (al.get(i));\r
57d0e52a 1494 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);\r
73d9b1c4 1495 String itemType = jComboBoxItemType.getSelectedItem()+"";\r
1496 al.set(i, mKey + " " + itemType);\r
908b1c05 1497 }\r
1498 \r
1499 ffc.removeDynamicPcdBuildData(cName, tsGuid);\r
1500}\r
1501\r
1502private void pcdNonDynamicToDynamic(String cName, String tsGuid) {\r
1503 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1504 for (int i = 0; i < al.size(); ++i) {\r
73d9b1c4 1505 String mKey = moduleInfo (al.get(i));\r
57d0e52a 1506 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
73d9b1c4 1507 String itemType = jComboBoxItemType.getSelectedItem()+"";\r
1508 al.set(i, mKey + " " + itemType);\r
908b1c05 1509 }\r
1510 try{\r
57d0e52a 1511 ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
908b1c05 1512 }\r
1513 catch(Exception e){\r
1514 JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());\r
1515 }\r
1516}\r
73d9b1c4 1517\r
1518private String moduleInfo (String pcdInfo) {\r
1519 \r
1520 return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));\r
1521}\r
1522\r
908b1c05 1523/**\r
57d0e52a 1524 * This method initializes jTextFieldMaxDatumSize\r
908b1c05 1525 * \r
1526 * @return javax.swing.JTextField \r
1527 */\r
57d0e52a 1528private JTextField getJTextFieldMaxDatumSize() {\r
1529 if (jTextFieldMaxDatumSize == null) {\r
1530 jTextFieldMaxDatumSize = new JTextField();\r
1531 jTextFieldMaxDatumSize.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1532 }\r
57d0e52a 1533 return jTextFieldMaxDatumSize;\r
908b1c05 1534}\r
1535/**\r
1536 * This method initializes jTextField4 \r
1537 * \r
1538 * @return javax.swing.JTextField \r
1539 */\r
57d0e52a 1540private JTextField getJTextFieldPcdDefault() {\r
1541 if (jTextFieldPcdDefault == null) {\r
1542 jTextFieldPcdDefault = new JTextField();\r
1543 jTextFieldPcdDefault.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1544 }\r
57d0e52a 1545 return jTextFieldPcdDefault;\r
908b1c05 1546}\r
1547/**\r
1548 * This method initializes jButton6 \r
1549 * \r
1550 * @return javax.swing.JButton \r
1551 */\r
57d0e52a 1552private JButton getJButtonUpdatePcd() {\r
1553 if (jButtonUpdatePcd == null) {\r
1554 jButtonUpdatePcd = new JButton();\r
1555 jButtonUpdatePcd.setPreferredSize(new java.awt.Dimension(150,20));\r
1556 jButtonUpdatePcd.setText("Update PCD Data");\r
1557 jButtonUpdatePcd.addActionListener(new java.awt.event.ActionListener() {\r
908b1c05 1558 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1559 int row = jTablePcd.getSelectedRow();\r
908b1c05 1560 if (row < 0) {\r
1561 return;\r
1562 }\r
8f55ea73 1563 docConsole.setSaved(false);\r
ce32083f 1564 String oldItemType = model.getValueAt(row, 2)+"";\r
1565 String newItemType = jComboBoxItemType.getSelectedItem()+"";\r
1566 model.setValueAt(newItemType, row, 2);\r
57d0e52a 1567 model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
1568 model.setValueAt(jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem(), row, 6);\r
ce32083f 1569 if (oldItemType.equals("DYNAMIC") && !newItemType.equals("DYNAMIC")) {\r
1570 pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
1571 }\r
1572 if (!oldItemType.equals("DYNAMIC") && newItemType.equals("DYNAMIC")) {\r
1573 pcdNonDynamicToDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
1574 }\r
908b1c05 1575 ffc.updatePcdData(moduleKey, model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"", model.getValueAt(row, 2)+"", model.getValueAt(row, 4)+"", model.getValueAt(row, 6)+"");\r
1576 }\r
1577 });\r
1578 }\r
57d0e52a 1579 return jButtonUpdatePcd;\r
908b1c05 1580}\r
1581/**\r
57d0e52a 1582 * This method initializes jComboBoxFeatureFlagValue\r
908b1c05 1583 * \r
1584 * @return javax.swing.JComboBox \r
1585 */\r
57d0e52a 1586private JComboBox getJComboBoxFeatureFlagValue() {\r
1587 if (jComboBoxFeatureFlagValue == null) {\r
1588 jComboBoxFeatureFlagValue = new JComboBox();\r
1589 jComboBoxFeatureFlagValue.setPreferredSize(new java.awt.Dimension(100,20));\r
1590 jComboBoxFeatureFlagValue.setVisible(false);\r
b3151273 1591 jComboBoxFeatureFlagValue.addItem("TRUE");\r
1592 jComboBoxFeatureFlagValue.addItem("FALSE");\r
57d0e52a 1593 }\r
1594 return jComboBoxFeatureFlagValue;\r
908b1c05 1595}\r
c1dbe93d 1596/**\r
1597 * This method initializes jPanelCustomToolChain \r
1598 * \r
1599 * @return javax.swing.JPanel \r
1600 */\r
1601private JPanel getJPanelCustomToolChain() {\r
1602 if (jPanelCustomToolChain == null) {\r
1603 jPanelCustomToolChain = new JPanel();\r
1604 jPanelCustomToolChain.setLayout(new BorderLayout());\r
1605 jPanelCustomToolChain.add(getJPanelToolchainS(), java.awt.BorderLayout.SOUTH);\r
1606 jPanelCustomToolChain.add(getJPanelToolchainC(), java.awt.BorderLayout.CENTER);\r
1607 jPanelCustomToolChain.addComponentListener(new java.awt.event.ComponentAdapter() {\r
1608 public void componentShown(java.awt.event.ComponentEvent e) {\r
1609 initToolChainOptions(moduleKey);\r
1610 }\r
1611 });\r
1612 }\r
1613 return jPanelCustomToolChain;\r
1614}\r
1615/**\r
1616 * This method initializes jPanelToolchainS \r
1617 * \r
1618 * @return javax.swing.JPanel \r
1619 */\r
1620private JPanel getJPanelToolchainS() {\r
1621 if (jPanelToolchainS == null) {\r
1622 jPanelToolchainS = new JPanel();\r
1623 jPanelToolchainS.add(getJButtonNew(), null);\r
1624 jPanelToolchainS.add(getJButtonDeleteOption(), null);\r
1625 }\r
1626 return jPanelToolchainS;\r
1627}\r
1628/**\r
1629 * This method initializes jPanelToolchainC \r
1630 * \r
1631 * @return javax.swing.JPanel \r
1632 */\r
1633private JPanel getJPanelToolchainC() {\r
1634 if (jPanelToolchainC == null) {\r
1635 jPanelToolchainC = new JPanel();\r
1636 jPanelToolchainC.add(getJScrollPaneModuleSaOptions(), null);\r
1637 }\r
1638 return jPanelToolchainC;\r
1639}\r
1b69863a 1640/**\r
1641 * This method initializes jPanelLibraryCenterN \r
1642 * \r
1643 * @return javax.swing.JPanel \r
1644 */\r
1645private JPanel getJPanelLibraryCenterN() {\r
1646 if (jPanelLibraryCenterN == null) {\r
1647 FlowLayout flowLayout5 = new FlowLayout();\r
1648 flowLayout5.setAlignment(java.awt.FlowLayout.CENTER);\r
1649 flowLayout5.setHgap(10);\r
1650 jPanelLibraryCenterN = new JPanel();\r
1651 jPanelLibraryCenterN.setLayout(flowLayout5);\r
1652 jPanelLibraryCenterN.add(jLabelInstanceHelp, null);\r
1653 jPanelLibraryCenterN.add(getJScrollPaneInstanceHelp(), null);\r
1654 jPanelLibraryCenterN.add(getJButtonAdd(), null);\r
1655 jPanelLibraryCenterN.add(getJButtonDeleteInstance(), null);\r
1656 }\r
1657 return jPanelLibraryCenterN;\r
1658}\r
1659/**\r
1660 * This method initializes jPanelLibraryCenterC \r
1661 * \r
1662 * @return javax.swing.JPanel \r
1663 */\r
1664private JPanel getJPanelLibraryCenterC() {\r
1665 if (jPanelLibraryCenterC == null) {\r
1666 jPanelLibraryCenterC = new JPanel();\r
1667 jPanelLibraryCenterC.add(jLabelSelectedInstances, null);\r
1668 jPanelLibraryCenterC.add(getJScrollPaneSelectedInstances(), null);\r
1669 }\r
1670 return jPanelLibraryCenterC;\r
1671}\r
f3b0ed9a 1672\r
a13899c5 1673\r
1674} // @jve:decl-index=0:visual-constraint="10,10"\r