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