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