]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
Adjust module order list after specifying FvBinding for ModuleSA.
[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
594 jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
595 jTextFieldPcdDefault.setEnabled(true);\r
596 jTextFieldPcdDefault.setText(jTablePcd.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
604 jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(jTablePcd.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
57d0e52a 611 jTextFieldMaxDatumSize.setText(jTablePcd.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
1dac04ab 656 private void getPcdInfo(String cName, String tsGuid, String[] sa) {\r
908b1c05 657 String[][] saa = new String[ffc.getLibraryInstancesCount(moduleKey)][5];\r
658 ffc.getLibraryInstances(moduleKey, saa);\r
659 \r
660 try{\r
1bf9fa5a 661 if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(moduleKey), cName, tsGuid, sa)) {\r
908b1c05 662 return;\r
663 }\r
664 for (int j = 0; j < saa.length; ++j) {\r
1bf9fa5a 665 if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]),\r
1dac04ab 666 cName, tsGuid, sa)) {\r
908b1c05 667 return;\r
668 }\r
669 }\r
670 }\r
671 catch(Exception e) {\r
672 JOptionPane.showMessageDialog(this, "Get PCD details fail: " + e.getMessage());\r
673 }\r
674 }\r
a13899c5 675\r
676 /**\r
57d0e52a 677 * This method initializes jPanelPcdSouth\r
a13899c5 678 * \r
679 * @return javax.swing.JPanel \r
680 */\r
57d0e52a 681 private JPanel getJPanelPcdSouth() {\r
682 if (jPanelPcdSouth == null) {\r
683 jLabelPcdHelp = new JLabel();\r
684 jLabelPcdHelp.setText("PCD Description");\r
685 jPanelPcdSouth = new JPanel();\r
686 jPanelPcdSouth.setPreferredSize(new java.awt.Dimension(607,200));\r
687 jPanelPcdSouth.add(jLabelPcdHelp, null);\r
688 jPanelPcdSouth.add(getJScrollPanePcdHelp(), null);\r
689 jPanelPcdSouth.add(getJPanelPcdFields(), null);\r
a13899c5 690 }\r
57d0e52a 691 return jPanelPcdSouth;\r
a13899c5 692 }\r
693\r
694 /**\r
57d0e52a 695 * This method initializes jScrollPanePcdHelp\r
a13899c5 696 * \r
697 * @return javax.swing.JScrollPane \r
698 */\r
57d0e52a 699 private JScrollPane getJScrollPanePcdHelp() {\r
700 if (jScrollPanePcdHelp == null) {\r
701 jScrollPanePcdHelp = new JScrollPane();\r
702 jScrollPanePcdHelp.setPreferredSize(new java.awt.Dimension(500,100));\r
703 jScrollPanePcdHelp.setViewportView(getJTextAreaPcdHelp());\r
a13899c5 704 }\r
57d0e52a 705 return jScrollPanePcdHelp;\r
a13899c5 706 }\r
707\r
708 /**\r
57d0e52a 709 * This method initializes jTextAreaPcdHelp\r
a13899c5 710 * \r
711 * @return javax.swing.JTextArea \r
712 */\r
57d0e52a 713 private JTextArea getJTextAreaPcdHelp() {\r
714 if (jTextAreaPcdHelp == null) {\r
715 jTextAreaPcdHelp = new JTextArea();\r
716 jTextAreaPcdHelp.setEditable(false);\r
a13899c5 717 }\r
57d0e52a 718 return jTextAreaPcdHelp;\r
a13899c5 719 }\r
720\r
721 /**\r
57d0e52a 722 * This method initializes jPanelContentPaneSouth\r
a13899c5 723 * \r
724 * @return javax.swing.JPanel \r
725 */\r
57d0e52a 726 private JPanel getJPanelContentPaneSouth() {\r
727 if (jPanelContentPaneSouth == null) {\r
a13899c5 728 FlowLayout flowLayout = new FlowLayout();\r
729 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
57d0e52a 730 jPanelContentPaneSouth = new JPanel();\r
731 jPanelContentPaneSouth.setLayout(flowLayout);\r
732 jPanelContentPaneSouth.add(getJButtonOk(), null);\r
733 jPanelContentPaneSouth.add(getJButtonCancel(), null);\r
a13899c5 734 }\r
57d0e52a 735 return jPanelContentPaneSouth;\r
a13899c5 736 }\r
737\r
738 /**\r
739 * This method initializes jSplitPane \r
740 * \r
741 * @return javax.swing.JSplitPane \r
742 */\r
743 private JSplitPane getJSplitPane() {\r
744 if (jSplitPane == null) {\r
745 jSplitPane = new JSplitPane();\r
746 jSplitPane.setDividerLocation(200);\r
57d0e52a 747 jSplitPane.setLeftComponent(getJPanelLibraryLeft());\r
748 jSplitPane.setRightComponent(getJPanelLibraryRight());\r
a13899c5 749 jSplitPane.setPreferredSize(new java.awt.Dimension(202,200));\r
750 }\r
751 return jSplitPane;\r
752 }\r
753\r
754 /**\r
57d0e52a 755 * This method initializes jPanelLibraryLeft\r
a13899c5 756 * \r
757 * @return javax.swing.JPanel \r
758 */\r
57d0e52a 759 private JPanel getJPanelLibraryLeft() {\r
760 if (jPanelLibraryLeft == null) {\r
761 jLabelLibClass = new JLabel();\r
762 jLabelLibClass.setText("Library Classes Uninstantiated");\r
763 jPanelLibraryLeft = new JPanel();\r
764 jPanelLibraryLeft.add(jLabelLibClass, null);\r
765 jPanelLibraryLeft.add(getJScrollPaneLibClass(), null);\r
a13899c5 766 }\r
57d0e52a 767 return jPanelLibraryLeft;\r
a13899c5 768 }\r
769\r
770 /**\r
57d0e52a 771 * This method initializes jPanelLibraryRight\r
a13899c5 772 * \r
773 * @return javax.swing.JPanel \r
774 */\r
57d0e52a 775 private JPanel getJPanelLibraryRight() {\r
776 if (jPanelLibraryRight == null) {\r
777 jLabelQualifiedInstance = new JLabel();\r
778 jLabelQualifiedInstance.setText("Instances Available");\r
779 jPanelLibraryRight = new JPanel();\r
780 jPanelLibraryRight.add(jLabelQualifiedInstance, null);\r
781 jPanelLibraryRight.add(getJScrollPaneQualifiedInstance(), null);\r
a13899c5 782 }\r
57d0e52a 783 return jPanelLibraryRight;\r
a13899c5 784 }\r
785\r
786 /**\r
57d0e52a 787 * This method initializes jScrollPaneSelectedInstances\r
a13899c5 788 * \r
789 * @return javax.swing.JScrollPane \r
790 */\r
57d0e52a 791 private JScrollPane getJScrollPaneSelectedInstances() {\r
792 if (jScrollPaneSelectedInstances == null) {\r
793 jScrollPaneSelectedInstances = new JScrollPane();\r
1b69863a 794 jScrollPaneSelectedInstances.setPreferredSize(new java.awt.Dimension(600,150));\r
57d0e52a 795 jScrollPaneSelectedInstances.setViewportView(getJTableSelectedInstances());\r
a13899c5 796 }\r
57d0e52a 797 return jScrollPaneSelectedInstances;\r
a13899c5 798 }\r
799\r
800 /**\r
57d0e52a 801 * This method initializes jTableSelectedInstances\r
a13899c5 802 * \r
803 * @return javax.swing.JTable \r
804 */\r
57d0e52a 805 private JTable getJTableSelectedInstances() {\r
806 if (jTableSelectedInstances == null) {\r
ed850fbf 807 selectedInstancesTableModel = new IDefaultTableModel();\r
57d0e52a 808 selectedInstancesTableModel.addColumn("Name");\r
809 selectedInstancesTableModel.addColumn("ModuleGUID");\r
810 selectedInstancesTableModel.addColumn("ModuleVersion");\r
811 selectedInstancesTableModel.addColumn("PackageGUID");\r
812 selectedInstancesTableModel.addColumn("PackageVersion");\r
813 jTableSelectedInstances = new JTable(selectedInstancesTableModel);\r
814 jTableSelectedInstances.setRowHeight(20);\r
5a502bd4 815 \r
816 jTableSelectedInstances.getColumnModel().getColumn(0).setMinWidth(250);\r
817 \r
2a23019d 818 jTableSelectedInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
57d0e52a 819 jTableSelectedInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
a13899c5 820 \r
821 }\r
57d0e52a 822 return jTableSelectedInstances;\r
a13899c5 823 }\r
824\r
825 /**\r
57d0e52a 826 * This method initializes jScrollPaneLibClass\r
a13899c5 827 * \r
828 * @return javax.swing.JScrollPane \r
829 */\r
57d0e52a 830 private JScrollPane getJScrollPaneLibClass() {\r
831 if (jScrollPaneLibClass == null) {\r
832 jScrollPaneLibClass = new JScrollPane();\r
833 jScrollPaneLibClass.setPreferredSize(new java.awt.Dimension(200,170));\r
834 jScrollPaneLibClass.setViewportView(getJTableLibClass());\r
a13899c5 835 }\r
57d0e52a 836 return jScrollPaneLibClass;\r
a13899c5 837 }\r
838\r
839 /**\r
57d0e52a 840 * This method initializes jTableLibClass\r
a13899c5 841 * \r
842 * @return javax.swing.JTable \r
843 */\r
57d0e52a 844 private JTable getJTableLibClass() {\r
845 if (jTableLibClass == null) {\r
ed850fbf 846 libClassTableModel = new IDefaultTableModel();\r
57d0e52a 847 libClassTableModel.addColumn("LibraryClass");\r
848 jTableLibClass = new JTable(libClassTableModel);\r
849 jTableLibClass.setRowHeight(20);\r
850 jTableLibClass.setShowGrid(false);\r
851 jTableLibClass.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
852 jTableLibClass.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 853 public void valueChanged(ListSelectionEvent e) {\r
854 if (e.getValueIsAdjusting()){\r
855 return;\r
856 }\r
857 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
858 if (lsm.isSelectionEmpty()) {\r
859 return;\r
860 }\r
861 else{\r
862 int selectedRow2 = lsm.getMinSelectionIndex();\r
863 if (selectedRow2 < 0) {\r
864 return;\r
865 }\r
866 //\r
867 // display potential lib instances according to class selection\r
868 //\r
57d0e52a 869 libInstanceTableModel.setRowCount(0);\r
870 String cls = libClassTableModel.getValueAt(selectedRow2, 0).toString();\r
a13899c5 871 ArrayList<String> al = classInstanceMap.get(cls);\r
872 ListIterator<String> li = al.listIterator();\r
873 while(li.hasNext()) {\r
874 String instance = li.next();\r
875 String[] s = {"", "", "", "", ""};\r
1bf9fa5a 876 if (WorkspaceProfile.getModuleId(instance) != null) {\r
877 s[0] = WorkspaceProfile.getModuleId(instance).getName();\r
a13899c5 878 }\r
879 \r
880 String[] instancePart = instance.split(" ");\r
881 for (int i = 0; i < instancePart.length; ++i){\r
882 s[i+1] = instancePart[i];\r
883 }\r
57d0e52a 884 libInstanceTableModel.addRow(s);\r
a13899c5 885 }\r
886 \r
887 }\r
888 }\r
889 });\r
890 }\r
57d0e52a 891 return jTableLibClass;\r
a13899c5 892 }\r
893\r
894 /**\r
57d0e52a 895 * This method initializes jScrollPaneQualifiedInstance\r
a13899c5 896 * \r
897 * @return javax.swing.JScrollPane \r
898 */\r
57d0e52a 899 private JScrollPane getJScrollPaneQualifiedInstance() {\r
900 if (jScrollPaneQualifiedInstance == null) {\r
901 jScrollPaneQualifiedInstance = new JScrollPane();\r
1b69863a 902 jScrollPaneQualifiedInstance.setPreferredSize(new java.awt.Dimension(600,170));\r
57d0e52a 903 jScrollPaneQualifiedInstance.setViewportView(getJTableLibInstances());\r
a13899c5 904 }\r
57d0e52a 905 return jScrollPaneQualifiedInstance;\r
a13899c5 906 }\r
907\r
908 /**\r
57d0e52a 909 * This method initializes jTableLibInstances\r
a13899c5 910 * \r
911 * @return javax.swing.JTable \r
912 */\r
57d0e52a 913 private JTable getJTableLibInstances() {\r
914 if (jTableLibInstances == null) {\r
ed850fbf 915 libInstanceTableModel = new IDefaultTableModel();\r
57d0e52a 916 libInstanceTableModel.addColumn("Name");\r
917 libInstanceTableModel.addColumn("ModuleGUID");\r
918 libInstanceTableModel.addColumn("ModuleVersion");\r
919 libInstanceTableModel.addColumn("PackageGUID");\r
920 libInstanceTableModel.addColumn("PackageVersion");\r
921 jTableLibInstances = new JTable(libInstanceTableModel);\r
922 jTableLibInstances.setRowHeight(20);\r
5a502bd4 923 \r
924 jTableLibInstances.getColumnModel().getColumn(0).setMinWidth(250);\r
925 \r
2a23019d 926 jTableLibInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
57d0e52a 927 jTableLibInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
908b1c05 928 \r
a13899c5 929 }\r
57d0e52a 930 return jTableLibInstances;\r
a13899c5 931 }\r
932\r
933 /**\r
57d0e52a 934 * This method initializes jPanelLibrarySouth\r
a13899c5 935 * \r
936 * @return javax.swing.JPanel \r
937 */\r
57d0e52a 938 private JPanel getJPanelLibrarySouth() {\r
939 if (jPanelLibrarySouth == null) {\r
940 jPanelLibrarySouth = new JPanel();\r
a13899c5 941 }\r
57d0e52a 942 return jPanelLibrarySouth;\r
a13899c5 943 }\r
944\r
945 /**\r
57d0e52a 946 * This method initializes jPanelLibraryCenter\r
a13899c5 947 * \r
948 * @return javax.swing.JPanel \r
949 */\r
57d0e52a 950 private JPanel getJPanelLibraryCenter() {\r
951 if (jPanelLibraryCenter == null) {\r
952 jLabelInstanceHelp = new JLabel();\r
953 jLabelInstanceHelp.setText("Instance Description");\r
954 jLabelSelectedInstances = new JLabel();\r
955 jLabelSelectedInstances.setText("Selected Instances");\r
956 jPanelLibraryCenter = new JPanel();\r
1b69863a 957 jPanelLibraryCenter.setLayout(new BorderLayout());\r
958\r
959 jPanelLibraryCenter.add(getJPanelLibraryCenterC(), java.awt.BorderLayout.CENTER);\r
960 jPanelLibraryCenter.add(getJPanelLibraryCenterN(), java.awt.BorderLayout.NORTH);\r
961\r
a13899c5 962 }\r
57d0e52a 963 return jPanelLibraryCenter;\r
a13899c5 964 }\r
965\r
966 /**\r
57d0e52a 967 * This method initializes jScrollPaneInstanceHelp\r
a13899c5 968 * \r
969 * @return javax.swing.JScrollPane \r
970 */\r
57d0e52a 971 private JScrollPane getJScrollPaneInstanceHelp() {\r
972 if (jScrollPaneInstanceHelp == null) {\r
973 jScrollPaneInstanceHelp = new JScrollPane();\r
1b69863a 974 jScrollPaneInstanceHelp.setPreferredSize(new java.awt.Dimension(400,50));\r
57d0e52a 975 jScrollPaneInstanceHelp.setViewportView(getJTextAreaInstanceHelp());\r
a13899c5 976 }\r
57d0e52a 977 return jScrollPaneInstanceHelp;\r
a13899c5 978 }\r
979\r
980 /**\r
57d0e52a 981 * This method initializes jTextAreaInstanceHelp\r
a13899c5 982 * \r
983 * @return javax.swing.JTextArea \r
984 */\r
57d0e52a 985 private JTextArea getJTextAreaInstanceHelp() {\r
986 if (jTextAreaInstanceHelp == null) {\r
987 jTextAreaInstanceHelp = new JTextArea();\r
988 jTextAreaInstanceHelp.setEditable(false);\r
a13899c5 989 }\r
57d0e52a 990 return jTextAreaInstanceHelp;\r
a13899c5 991 }\r
992\r
993 /**\r
57d0e52a 994 * This method initializes jButtonAdd\r
a13899c5 995 * \r
996 * @return javax.swing.JButton \r
997 */\r
57d0e52a 998 private JButton getJButtonAdd() {\r
999 if (jButtonAdd == null) {\r
1000 jButtonAdd = new JButton();\r
1001 jButtonAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
1002 jButtonAdd.setText("Add");\r
1003 jButtonAdd.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 1004 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1005 int row = jTableLibInstances.getSelectedRow();\r
a13899c5 1006 if (row < 0) {\r
1007 return;\r
1008 }\r
1b69863a 1009 \r
57d0e52a 1010 String instanceValue = libInstanceTableModel.getValueAt(row, 1) + " " +\r
1011 libInstanceTableModel.getValueAt(row, 2) + " " +\r
1012 libInstanceTableModel.getValueAt(row, 3) + " " +\r
1013 libInstanceTableModel.getValueAt(row, 4);\r
1bf9fa5a 1014 ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceValue);\r
1b69863a 1015 try {\r
1016 addLibInstance (libMi);\r
1017 }\r
1018 catch (Exception exception) {\r
1019 JOptionPane.showMessageDialog(frame, "Adding Instance" + libMi.getName() + ": "+ exception.getMessage());\r
1020 return;\r
1021 }\r
1022 docConsole.setSaved(false);\r
1023 Object[] s = {libInstanceTableModel.getValueAt(row, 0), libInstanceTableModel.getValueAt(row, 1),\r
1024 libInstanceTableModel.getValueAt(row, 2), libInstanceTableModel.getValueAt(row, 3),\r
1025 libInstanceTableModel.getValueAt(row, 4)};\r
1026 selectedInstancesTableModel.addRow(s);\r
a13899c5 1027 resolveLibraryInstances(instanceValue);\r
a094728f 1028 showClassToResolved();\r
a13899c5 1029 }\r
1030 });\r
1031 }\r
57d0e52a 1032 return jButtonAdd;\r
a13899c5 1033 }\r
1034\r
1035 /**\r
57d0e52a 1036 * This method initializes jButton1\r
a13899c5 1037 * \r
1038 * @return javax.swing.JButton \r
1039 */\r
57d0e52a 1040 private JButton getJButtonDeleteInstance() {\r
1041 if (jButtonDeleteInstance == null) {\r
1042 jButtonDeleteInstance = new JButton();\r
1043 jButtonDeleteInstance.setPreferredSize(new java.awt.Dimension(80,20));\r
1044 jButtonDeleteInstance.setText("Delete");\r
1045 jButtonDeleteInstance.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 1046 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1047 int row = jTableSelectedInstances.getSelectedRow();\r
a13899c5 1048 if (row < 0) {\r
1049 return;\r
1050 }\r
8f55ea73 1051 docConsole.setSaved(false);\r
57d0e52a 1052 removeInstance(selectedInstancesTableModel.getValueAt(row, 1) + " " +\r
1053 selectedInstancesTableModel.getValueAt(row, 2) + " " +\r
1054 selectedInstancesTableModel.getValueAt(row, 3) + " " +\r
1055 selectedInstancesTableModel.getValueAt(row, 4));\r
908b1c05 1056 ffc.removeLibraryInstance(moduleKey, row);\r
57d0e52a 1057 selectedInstancesTableModel.removeRow(row);\r
a13899c5 1058 \r
1059 }\r
1060 });\r
1061 }\r
57d0e52a 1062 return jButtonDeleteInstance;\r
a13899c5 1063 }\r
1064\r
1065 /**\r
1066 * This method initializes jButton2 \r
1067 * \r
1068 * @return javax.swing.JButton \r
1069 */\r
57d0e52a 1070 private JButton getJButtonOk() {\r
1071 if (jButtonOk == null) {\r
1072 jButtonOk = new JButton();\r
1073 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
1074 jButtonOk.setText("Ok");\r
1075 jButtonOk.addActionListener(this);\r
a13899c5 1076 }\r
57d0e52a 1077 return jButtonOk;\r
a13899c5 1078 }\r
1079\r
1080 /**\r
1081 * This method initializes jButton3 \r
1082 * \r
1083 * @return javax.swing.JButton \r
1084 */\r
57d0e52a 1085 private JButton getJButtonCancel() {\r
1086 if (jButtonCancel == null) {\r
1087 jButtonCancel = new JButton();\r
1088 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
1089 jButtonCancel.setText("Cancel");\r
1090 jButtonCancel.setVisible(false);\r
a13899c5 1091 }\r
57d0e52a 1092 return jButtonCancel;\r
a13899c5 1093 }\r
1094 public void actionPerformed(ActionEvent arg0) {\r
1095\r
57d0e52a 1096 if (arg0.getSource() == jButtonOk) {\r
1097 if (jTableModuleSaOptions.isEditing()) {\r
1098 jTableModuleSaOptions.getCellEditor().stopCellEditing();\r
bf5abaff 1099 }\r
a13899c5 1100 this.setVisible(false);\r
1101 }\r
1102 }\r
6a09eb19 1103 /**\r
57d0e52a 1104 * This method initializes jPanelModuleSaOpts\r
6a09eb19 1105 * \r
1106 * @return javax.swing.JPanel \r
1107 */\r
57d0e52a 1108 private JPanel getJPanelModuleSaOpts() {\r
1109 if (jPanelModuleSaOpts == null) {\r
8f55ea73 1110 FlowLayout flowLayout4 = new FlowLayout();\r
1111 flowLayout4.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1112 jLabelFfsFormatKey = new JLabel();\r
1113 jLabelFfsFormatKey.setText("FFS Format Key");\r
1114 jLabelFfsFormatKey.setPreferredSize(new java.awt.Dimension(90,16));\r
1115 jLabelFfsFileGuid = new JLabel();\r
1116 jLabelFfsFileGuid.setText("FFS File GUID");\r
1117 jLabelFfsFileGuid.setPreferredSize(new java.awt.Dimension(90,16));\r
d96d701f 1118 jLabelFfsFileGuid.setVisible(false);\r
57d0e52a 1119 jLabelFvBinding = new JLabel();\r
1120 jLabelFvBinding.setText("FV Binding");\r
1121 jLabelFvBinding.setPreferredSize(new java.awt.Dimension(90,16));\r
1122 jPanelModuleSaOpts = new JPanel();\r
1123 jPanelModuleSaOpts.setLayout(flowLayout4);\r
1124 jPanelModuleSaOpts.add(jLabelFvBinding, null);\r
1125 jPanelModuleSaOpts.add(getJTextFieldFvBinding(), null);\r
1126 jPanelModuleSaOpts.add(jLabelFfsFileGuid, null);\r
1127 jPanelModuleSaOpts.add(getJTextFieldFileGuid(), null);\r
1128 jPanelModuleSaOpts.add(jLabelFfsFormatKey, null);\r
1129 jPanelModuleSaOpts.add(getJTextFieldFfsKey(), null);\r
57d0e52a 1130 jPanelModuleSaOpts.addComponentListener(new java.awt.event.ComponentAdapter() {\r
71baa24b 1131 public void componentShown(java.awt.event.ComponentEvent e) {\r
c1dbe93d 1132 initFvInfo(moduleKey);\r
71baa24b 1133 }\r
1134 });\r
6a09eb19 1135 }\r
57d0e52a 1136 return jPanelModuleSaOpts;\r
6a09eb19 1137 }\r
1138 /**\r
1139 * This method initializes jTextField \r
1140 * \r
1141 * @return javax.swing.JTextField \r
1142 */\r
8f55ea73 1143 private JTextField getJTextFieldFvBinding() {\r
1144 if (jTextFieldFvBinding == null) {\r
1145 jTextFieldFvBinding = new JTextField();\r
a0783edc 1146 jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(400,20));\r
9babb67e 1147 jTextFieldFvBinding.setEditable(true);\r
8f55ea73 1148 jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() {\r
1149 public void focusLost(java.awt.event.FocusEvent e) {\r
1150 String originalFvBinding = ffc.getFvBinding(moduleKey);\r
1151 String newFvBinding = jTextFieldFvBinding.getText();\r
1152 if (newFvBinding.equals(originalFvBinding)) {\r
1153 return;\r
1154 }\r
1155 if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
1156 return;\r
1157 }\r
9d6f6d70 1158 \r
8f55ea73 1159 ffc.setFvBinding(moduleKey, newFvBinding);\r
9d6f6d70 1160 String moduleInfo[] = moduleKey.split(" ");\r
1161 String fvNames[] = newFvBinding.split(" ");\r
1162 for (int i = 0; i < fvNames.length; ++i) {\r
1163 ffc.addModuleIntoBuildOptionsUserExtensions(fvNames[i], moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]);\r
1164 }\r
1165 docConsole.setSaved(false);\r
8f55ea73 1166 }\r
1167 });\r
bf5abaff 1168 \r
6a09eb19 1169 }\r
8f55ea73 1170 return jTextFieldFvBinding;\r
6a09eb19 1171 }\r
1172 /**\r
1173 * This method initializes jTextField1 \r
1174 * \r
1175 * @return javax.swing.JTextField \r
1176 */\r
8f55ea73 1177 private JTextField getJTextFieldFileGuid() {\r
1178 if (jTextFieldFileGuid == null) {\r
1179 jTextFieldFileGuid = new JTextField();\r
1180 jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20));\r
d96d701f 1181 jTextFieldFileGuid.setVisible(false);\r
8f55ea73 1182 jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() {\r
1183 public void focusLost(java.awt.event.FocusEvent e) {\r
1184 String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey);\r
1185 String newFileGuid = jTextFieldFileGuid.getText();\r
1186 if (newFileGuid.equals(originalFileGuid)) {\r
1187 return;\r
1188 }\r
1189 if (newFileGuid.length() == 0 && originalFileGuid == null) {\r
1190 return;\r
1191 }\r
1192 if (newFileGuid.length() > 0) {\r
1193 if (!DataValidation.isGuid(newFileGuid)) {\r
1194 JOptionPane.showMessageDialog(frame, "FFS File Guid is NOT GUID Type.");\r
1195 return;\r
1196 }\r
1197 }\r
1198 \r
1199 docConsole.setSaved(false);\r
1200 if (newFileGuid.length() == 0) {\r
1201 newFileGuid = null;\r
1202 }\r
1203 ffc.setFfsFileNameGuid(moduleKey, newFileGuid);\r
1204 }\r
1205 });\r
bf5abaff 1206 \r
6a09eb19 1207 }\r
8f55ea73 1208 return jTextFieldFileGuid;\r
6a09eb19 1209 }\r
1210 /**\r
8f55ea73 1211 * This method initializes jTextFieldFfsKey \r
6a09eb19 1212 * \r
1213 * @return javax.swing.JTextField \r
1214 */\r
8f55ea73 1215 private JTextField getJTextFieldFfsKey() {\r
1216 if (jTextFieldFfsKey == null) {\r
1217 jTextFieldFfsKey = new JTextField();\r
802e0055 1218 jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(250,20));\r
8f55ea73 1219 jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
1220 public void focusLost(java.awt.event.FocusEvent e) {\r
1221 String originalFfsKey = ffc.getFfsFormatKey(moduleKey);\r
1222 String newFfsKey = jTextFieldFfsKey.getText();\r
1223 if (newFfsKey.equals(originalFfsKey)) {\r
1224 return;\r
1225 }\r
1226 if (newFfsKey.length() == 0 && originalFfsKey == null) {\r
1227 return;\r
1228 }\r
1229 docConsole.setSaved(false);\r
1230 ffc.setFfsFormatKey(moduleKey, newFfsKey);\r
1231 }\r
1232 });\r
bf5abaff 1233 \r
6a09eb19 1234 }\r
8f55ea73 1235 return jTextFieldFfsKey;\r
6a09eb19 1236 }\r
1237 /**\r
57d0e52a 1238 * This method initializes jScrollPaneModuleSaOptions\r
6a09eb19 1239 * \r
1240 * @return javax.swing.JScrollPane \r
1241 */\r
57d0e52a 1242 private JScrollPane getJScrollPaneModuleSaOptions() {\r
1243 if (jScrollPaneModuleSaOptions == null) {\r
1244 jScrollPaneModuleSaOptions = new JScrollPane();\r
c1dbe93d 1245 jScrollPaneModuleSaOptions.setPreferredSize(new java.awt.Dimension(600,350));\r
57d0e52a 1246 jScrollPaneModuleSaOptions.setViewportView(getJTableModuleSaOptions());\r
6a09eb19 1247 }\r
57d0e52a 1248 return jScrollPaneModuleSaOptions;\r
6a09eb19 1249 }\r
1250 /**\r
57d0e52a 1251 * This method initializes jTableModuleSaOptions\r
6a09eb19 1252 * \r
1253 * @return javax.swing.JTable \r
1254 */\r
57d0e52a 1255 private JTable getJTableModuleSaOptions() {\r
1256 if (jTableModuleSaOptions == null) {\r
1800d80f 1257 optionsTableModel = new DefaultTableModel();\r
1258 optionsTableModel.addColumn("BuildTargets");\r
1259 optionsTableModel.addColumn("ToolChainFamily");\r
1260 optionsTableModel.addColumn("TagName");\r
1261 optionsTableModel.addColumn("ToolCode");\r
1262 optionsTableModel.addColumn("SupportedArchs");\r
1263 optionsTableModel.addColumn("Contents");\r
57d0e52a 1264 jTableModuleSaOptions = new JTable(optionsTableModel);\r
1265 jTableModuleSaOptions.setRowHeight(20);\r
98c20797 1266 \r
9d6f6d70 1267 jTableModuleSaOptions.getColumnModel().getColumn(0).setMinWidth(buildTargetWidth);\r
1268 jTableModuleSaOptions.getColumnModel().getColumn(1).setMinWidth(toolChainFamilyWidth);\r
1269 jTableModuleSaOptions.getColumnModel().getColumn(2).setMinWidth(tagNameWidth);\r
1270 jTableModuleSaOptions.getColumnModel().getColumn(3).setMinWidth(toolCmdCodeWidth);\r
1271 jTableModuleSaOptions.getColumnModel().getColumn(4).setMinWidth(supportArchWidth);\r
1272 jTableModuleSaOptions.getColumnModel().getColumn(5).setMinWidth(argWidth);\r
5d7a9b83 1273// javax.swing.table.TableColumn toolFamilyCol = jTableModuleSaOptions.getColumnModel().getColumn(1);\r
1274// JComboBox cb = new JComboBox();\r
1275// cb.addItem("MSFT");\r
1276// cb.addItem("GCC");\r
1277// cb.addItem("CYGWIN");\r
1278// cb.addItem("INTEL");\r
1279// cb.addItem("USER_DEFINED");\r
1280// toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
98c20797 1281 \r
f3b0ed9a 1282 Vector<String> vArch = new Vector<String>();\r
1283 vArch.add("IA32");\r
1284 vArch.add("X64");\r
1285 vArch.add("IPF");\r
1286 vArch.add("EBC");\r
1287 vArch.add("ARM");\r
1288 vArch.add("PPC");\r
57d0e52a 1289 jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));\r
98c20797 1290 \r
1291 jTableModuleSaOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());\r
1292 \r
57d0e52a 1293 jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1294 jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
1295 jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() {\r
1800d80f 1296 public void tableChanged(TableModelEvent arg0) {\r
1297 // TODO Auto-generated method stub\r
1298 int row = arg0.getFirstRow();\r
1299 TableModel m = (TableModel)arg0.getSource();\r
1300 \r
1301 if (arg0.getType() == TableModelEvent.UPDATE){\r
1302 //ToDo Data Validition check.\r
1303 String targets = m.getValueAt(row, 0) + "";\r
f3b0ed9a 1304 Vector<Object> targetName = null;\r
1305 if (targets.length() > 0) {\r
1306 targetName = new Vector<Object>();\r
1307 String[] sArray = targets.split(" ");\r
1308 for (int i = 0; i < sArray.length; ++i) {\r
1309 targetName.add(sArray[i]);\r
1310 }\r
1800d80f 1311 }\r
f3b0ed9a 1312 \r
1800d80f 1313 String toolChain = m.getValueAt(row, 1) + "";\r
1314 String tagName = m.getValueAt(row, 2) + "";\r
1315 String toolCode = m.getValueAt(row, 3) + "";\r
1316 String archs = m.getValueAt(row, 4) + "";\r
f3b0ed9a 1317 Vector<Object> supArch = null;\r
1318 if (archs.length() > 0) {\r
1319 supArch = new Vector<Object>();\r
1320 String[] sArray1 = archs.split(" ");\r
1321 for (int i = 0; i < sArray1.length; ++i) {\r
1322 supArch.add(sArray1[i]);\r
1323 }\r
1800d80f 1324 }\r
f3b0ed9a 1325 \r
1800d80f 1326 String contents = m.getValueAt(row, 5) + "";\r
8f55ea73 1327 docConsole.setSaved(false);\r
1800d80f 1328 ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents);\r
1329 }\r
1330 }\r
1331 });\r
6a09eb19 1332 }\r
57d0e52a 1333 return jTableModuleSaOptions;\r
6a09eb19 1334 }\r
1800d80f 1335 /**\r
57d0e52a 1336 * This method initializes jButtonNew\r
1800d80f 1337 * \r
1338 * @return javax.swing.JButton \r
1339 */\r
57d0e52a 1340 private JButton getJButtonNew() {\r
1341 if (jButtonNew == null) {\r
1342 jButtonNew = new JButton();\r
1343 jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1344 jButtonNew.setText("New");\r
1345 jButtonNew.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1346 public void actionPerformed(java.awt.event.ActionEvent e) {\r
bf5abaff 1347 String[] row = {"", "", "", "", "", ""};\r
1800d80f 1348 optionsTableModel.addRow(row);\r
1349 Vector<Object> v = new Vector<Object>();\r
bf5abaff 1350 Vector<Object> v1 = null;\r
8f55ea73 1351 docConsole.setSaved(false);\r
1800d80f 1352 ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");\r
1353 }\r
1354 });\r
1355 }\r
57d0e52a 1356 return jButtonNew;\r
1800d80f 1357 }\r
1358 /**\r
57d0e52a 1359 * This method initializes jButtonDelete\r
1800d80f 1360 * \r
1361 * @return javax.swing.JButton \r
1362 */\r
57d0e52a 1363 private JButton getJButtonDeleteOption() {\r
1364 if (jButtonDeleteOption == null) {\r
1365 jButtonDeleteOption = new JButton();\r
1366 jButtonDeleteOption.setPreferredSize(new java.awt.Dimension(80,20));\r
1367 jButtonDeleteOption.setText("Delete");\r
1368 jButtonDeleteOption.addActionListener(new java.awt.event.ActionListener() {\r
1800d80f 1369 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1370 if (jTableModuleSaOptions.getSelectedRow() < 0) {\r
1800d80f 1371 return;\r
1372 }\r
8f55ea73 1373 docConsole.setSaved(false);\r
57d0e52a 1374 ffc.removeModuleSAOptionsOpt(moduleKey, jTableModuleSaOptions.getSelectedRow());\r
1375 optionsTableModel.removeRow(jTableModuleSaOptions.getSelectedRow());\r
1800d80f 1376 }\r
1377 });\r
1378 }\r
57d0e52a 1379 return jButtonDeleteOption;\r
1800d80f 1380 }\r
f3b0ed9a 1381 \r
1382 /**\r
1383 Start the window at the center of screen\r
1384 \r
1385 **/\r
1386 protected void centerWindow(int intWidth, int intHeight) {\r
1387 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
1388 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
1389 }\r
1390\r
1391 /**\r
1392 Start the window at the center of screen\r
1393 \r
1394 **/\r
1395 protected void centerWindow() {\r
1396 centerWindow(this.getSize().width, this.getSize().height);\r
1397 }\r
908b1c05 1398/**\r
57d0e52a 1399 * This method initializes jPanelPcdFields\r
908b1c05 1400 * \r
1401 * @return javax.swing.JPanel \r
1402 */\r
57d0e52a 1403private JPanel getJPanelPcdFields() {\r
1404 if (jPanelPcdFields == null) {\r
908b1c05 1405 GridLayout gridLayout = new GridLayout();\r
1406 gridLayout.setRows(3);\r
1407 gridLayout.setColumns(2);\r
57d0e52a 1408 jPanelPcdFields = new JPanel();\r
1409 jPanelPcdFields.setLayout(gridLayout);\r
1410 jPanelPcdFields.setPreferredSize(new java.awt.Dimension(600,90));\r
1411 jPanelPcdFields.add(getJPanelPcdFieldsFirstRow(), null);\r
1412 jPanelPcdFields.add(getJPanelPcdFieldsSecondRow(), null);\r
1413 jPanelPcdFields.add(getJPanelPcdFieldsThirdRow(), null);\r
1414 }\r
1415 return jPanelPcdFields;\r
908b1c05 1416}\r
1417/**\r
57d0e52a 1418 * This method initializes jPanelPcdFieldsSecondRow\r
908b1c05 1419 * \r
1420 * @return javax.swing.JPanel \r
1421 */\r
57d0e52a 1422private JPanel getJPanelPcdFieldsSecondRow() {\r
1423 if (jPanelPcdFieldsSecondRow == null) {\r
908b1c05 1424 FlowLayout flowLayout2 = new FlowLayout();\r
1425 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1426 jLabelMaxDatumSize = new JLabel();\r
1427 jLabelMaxDatumSize.setText("Max Datum Size");\r
1428 jPanelPcdFieldsSecondRow = new JPanel();\r
1429 jPanelPcdFieldsSecondRow.setLayout(flowLayout2);\r
1430 jPanelPcdFieldsSecondRow.add(jLabelMaxDatumSize, null);\r
1431 jPanelPcdFieldsSecondRow.add(getJTextFieldMaxDatumSize(), null);\r
1432 }\r
1433 return jPanelPcdFieldsSecondRow;\r
908b1c05 1434}\r
1435/**\r
57d0e52a 1436 * This method initializes jPanelPcdFieldsThirdRow\r
908b1c05 1437 * \r
1438 * @return javax.swing.JPanel \r
1439 */\r
57d0e52a 1440private JPanel getJPanelPcdFieldsThirdRow() {\r
1441 if (jPanelPcdFieldsThirdRow == null) {\r
908b1c05 1442 FlowLayout flowLayout3 = new FlowLayout();\r
1443 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1444 jLabelPcdDefaultValue = new JLabel();\r
1445 jLabelPcdDefaultValue.setText("Default Value");\r
1446 jLabelPcdDefaultValue.setPreferredSize(new java.awt.Dimension(91,16));\r
1447 jPanelPcdFieldsThirdRow = new JPanel();\r
1448 jPanelPcdFieldsThirdRow.setLayout(flowLayout3);\r
1449 jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);\r
1450 jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);\r
1451 jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);\r
73d9b1c4 1452 jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null);\r
57d0e52a 1453 }\r
1454 return jPanelPcdFieldsThirdRow;\r
908b1c05 1455}\r
1456/**\r
57d0e52a 1457 * This method initializes jPanelPcdFieldsFirstRow\r
908b1c05 1458 * \r
1459 * @return javax.swing.JPanel \r
1460 */\r
57d0e52a 1461private JPanel getJPanelPcdFieldsFirstRow() {\r
1462 if (jPanelPcdFieldsFirstRow == null) {\r
908b1c05 1463 FlowLayout flowLayout1 = new FlowLayout();\r
1464 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
57d0e52a 1465 jLabelItemType = new JLabel();\r
1466 jLabelItemType.setText("Item Type");\r
1467 jLabelItemType.setPreferredSize(new java.awt.Dimension(91,16));\r
1468 jPanelPcdFieldsFirstRow = new JPanel();\r
1469 jPanelPcdFieldsFirstRow.setLayout(flowLayout1);\r
1470 jPanelPcdFieldsFirstRow.add(jLabelItemType, null);\r
1471 jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);\r
57d0e52a 1472 }\r
1473 return jPanelPcdFieldsFirstRow;\r
908b1c05 1474}\r
1475/**\r
57d0e52a 1476 * This method initializes jComboBoxItemType\r
908b1c05 1477 * \r
1478 * @return javax.swing.JComboBox \r
1479 */\r
57d0e52a 1480private JComboBox getJComboBoxItemType() {\r
1481 if (jComboBoxItemType == null) {\r
1482 jComboBoxItemType = new JComboBox();\r
1483 jComboBoxItemType.setPreferredSize(new java.awt.Dimension(200,20));\r
1484 jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {\r
908b1c05 1485 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
57d0e52a 1486 int row = jTablePcd.getSelectedRow();\r
73d9b1c4 1487 if (row < 0 || model.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
908b1c05 1488 return;\r
1489 }\r
57d0e52a 1490 if (jComboBoxItemType.getItemCount() == 3) {\r
1491 if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {\r
ce32083f 1492 \r
1bf9fa5a 1493 if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {\r
1494 jTextFieldPcdDefault.setText("");\r
1495 jTextFieldPcdDefault.setEnabled(true);\r
1496 }\r
908b1c05 1497 }\r
1498 else{\r
ce32083f 1499 \r
908b1c05 1500 }\r
1501 }\r
1502 }\r
1503 });\r
1504 }\r
57d0e52a 1505 return jComboBoxItemType;\r
908b1c05 1506}\r
1507\r
1508private void pcdDynamicToNonDynamic(String cName, String tsGuid) {\r
1509 String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
1510 ffc.getDynamicPcdBuildData(saa);\r
1511 String maxSize = "";\r
1512 String value = "";\r
1513 for (int i = 0; i < saa.length; ++i) {\r
1514 if (saa[i][0].equals(cName) && saa[i][2].equals(tsGuid)) {\r
1515 maxSize = saa[i][3];\r
1516 value = ffc.getDynamicPcdBuildDataValue(i);\r
1517 break;\r
1518 }\r
1519 }\r
1520 \r
1521 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1522 for (int i = 0; i < al.size(); ++i) {\r
73d9b1c4 1523 String mKey = moduleInfo (al.get(i));\r
57d0e52a 1524 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);\r
73d9b1c4 1525 String itemType = jComboBoxItemType.getSelectedItem()+"";\r
1526 al.set(i, mKey + " " + itemType);\r
908b1c05 1527 }\r
1528 \r
1529 ffc.removeDynamicPcdBuildData(cName, tsGuid);\r
1530}\r
1531\r
1532private void pcdNonDynamicToDynamic(String cName, String tsGuid) {\r
1533 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
1534 for (int i = 0; i < al.size(); ++i) {\r
73d9b1c4 1535 String mKey = moduleInfo (al.get(i));\r
57d0e52a 1536 ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
73d9b1c4 1537 String itemType = jComboBoxItemType.getSelectedItem()+"";\r
1538 al.set(i, mKey + " " + itemType);\r
908b1c05 1539 }\r
1540 try{\r
57d0e52a 1541 ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
908b1c05 1542 }\r
1543 catch(Exception e){\r
1544 JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());\r
1545 }\r
1546}\r
73d9b1c4 1547\r
1548private String moduleInfo (String pcdInfo) {\r
1549 \r
1550 return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));\r
1551}\r
1552\r
908b1c05 1553/**\r
57d0e52a 1554 * This method initializes jTextFieldMaxDatumSize\r
908b1c05 1555 * \r
1556 * @return javax.swing.JTextField \r
1557 */\r
57d0e52a 1558private JTextField getJTextFieldMaxDatumSize() {\r
1559 if (jTextFieldMaxDatumSize == null) {\r
1560 jTextFieldMaxDatumSize = new JTextField();\r
1561 jTextFieldMaxDatumSize.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1562 }\r
57d0e52a 1563 return jTextFieldMaxDatumSize;\r
908b1c05 1564}\r
1565/**\r
1566 * This method initializes jTextField4 \r
1567 * \r
1568 * @return javax.swing.JTextField \r
1569 */\r
57d0e52a 1570private JTextField getJTextFieldPcdDefault() {\r
1571 if (jTextFieldPcdDefault == null) {\r
1572 jTextFieldPcdDefault = new JTextField();\r
1573 jTextFieldPcdDefault.setPreferredSize(new java.awt.Dimension(200,20));\r
908b1c05 1574 }\r
57d0e52a 1575 return jTextFieldPcdDefault;\r
908b1c05 1576}\r
1577/**\r
1578 * This method initializes jButton6 \r
1579 * \r
1580 * @return javax.swing.JButton \r
1581 */\r
57d0e52a 1582private JButton getJButtonUpdatePcd() {\r
1583 if (jButtonUpdatePcd == null) {\r
1584 jButtonUpdatePcd = new JButton();\r
1585 jButtonUpdatePcd.setPreferredSize(new java.awt.Dimension(150,20));\r
1586 jButtonUpdatePcd.setText("Update PCD Data");\r
1587 jButtonUpdatePcd.addActionListener(new java.awt.event.ActionListener() {\r
908b1c05 1588 public void actionPerformed(java.awt.event.ActionEvent e) {\r
57d0e52a 1589 int row = jTablePcd.getSelectedRow();\r
908b1c05 1590 if (row < 0) {\r
1591 return;\r
1592 }\r
8f55ea73 1593 docConsole.setSaved(false);\r
ce32083f 1594 String oldItemType = model.getValueAt(row, 2)+"";\r
1595 String newItemType = jComboBoxItemType.getSelectedItem()+"";\r
1596 model.setValueAt(newItemType, row, 2);\r
57d0e52a 1597 model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
1598 model.setValueAt(jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem(), row, 6);\r
ce32083f 1599 if (oldItemType.equals("DYNAMIC") && !newItemType.equals("DYNAMIC")) {\r
1600 pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
1601 }\r
1602 if (!oldItemType.equals("DYNAMIC") && newItemType.equals("DYNAMIC")) {\r
1603 pcdNonDynamicToDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
1604 }\r
908b1c05 1605 ffc.updatePcdData(moduleKey, model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"", model.getValueAt(row, 2)+"", model.getValueAt(row, 4)+"", model.getValueAt(row, 6)+"");\r
1606 }\r
1607 });\r
1608 }\r
57d0e52a 1609 return jButtonUpdatePcd;\r
908b1c05 1610}\r
1611/**\r
57d0e52a 1612 * This method initializes jComboBoxFeatureFlagValue\r
908b1c05 1613 * \r
1614 * @return javax.swing.JComboBox \r
1615 */\r
57d0e52a 1616private JComboBox getJComboBoxFeatureFlagValue() {\r
1617 if (jComboBoxFeatureFlagValue == null) {\r
1618 jComboBoxFeatureFlagValue = new JComboBox();\r
1619 jComboBoxFeatureFlagValue.setPreferredSize(new java.awt.Dimension(100,20));\r
1620 jComboBoxFeatureFlagValue.setVisible(false);\r
b3151273 1621 jComboBoxFeatureFlagValue.addItem("TRUE");\r
1622 jComboBoxFeatureFlagValue.addItem("FALSE");\r
57d0e52a 1623 }\r
1624 return jComboBoxFeatureFlagValue;\r
908b1c05 1625}\r
c1dbe93d 1626/**\r
1627 * This method initializes jPanelCustomToolChain \r
1628 * \r
1629 * @return javax.swing.JPanel \r
1630 */\r
1631private JPanel getJPanelCustomToolChain() {\r
1632 if (jPanelCustomToolChain == null) {\r
1633 jPanelCustomToolChain = new JPanel();\r
1634 jPanelCustomToolChain.setLayout(new BorderLayout());\r
1635 jPanelCustomToolChain.add(getJPanelToolchainS(), java.awt.BorderLayout.SOUTH);\r
a0783edc 1636 jPanelCustomToolChain.add(getJScrollPaneModuleSaOptions(), java.awt.BorderLayout.CENTER);\r
c1dbe93d 1637 jPanelCustomToolChain.addComponentListener(new java.awt.event.ComponentAdapter() {\r
1638 public void componentShown(java.awt.event.ComponentEvent e) {\r
1639 initToolChainOptions(moduleKey);\r
1640 }\r
1641 });\r
1642 }\r
1643 return jPanelCustomToolChain;\r
1644}\r
1645/**\r
1646 * This method initializes jPanelToolchainS \r
1647 * \r
1648 * @return javax.swing.JPanel \r
1649 */\r
1650private JPanel getJPanelToolchainS() {\r
1651 if (jPanelToolchainS == null) {\r
1652 jPanelToolchainS = new JPanel();\r
1653 jPanelToolchainS.add(getJButtonNew(), null);\r
1654 jPanelToolchainS.add(getJButtonDeleteOption(), null);\r
1655 }\r
1656 return jPanelToolchainS;\r
1657}\r
a0783edc 1658\r
1b69863a 1659/**\r
1660 * This method initializes jPanelLibraryCenterN \r
1661 * \r
1662 * @return javax.swing.JPanel \r
1663 */\r
1664private JPanel getJPanelLibraryCenterN() {\r
1665 if (jPanelLibraryCenterN == null) {\r
1666 FlowLayout flowLayout5 = new FlowLayout();\r
1667 flowLayout5.setAlignment(java.awt.FlowLayout.CENTER);\r
1668 flowLayout5.setHgap(10);\r
1669 jPanelLibraryCenterN = new JPanel();\r
1670 jPanelLibraryCenterN.setLayout(flowLayout5);\r
1671 jPanelLibraryCenterN.add(jLabelInstanceHelp, null);\r
1672 jPanelLibraryCenterN.add(getJScrollPaneInstanceHelp(), null);\r
1673 jPanelLibraryCenterN.add(getJButtonAdd(), null);\r
1674 jPanelLibraryCenterN.add(getJButtonDeleteInstance(), null);\r
1675 }\r
1676 return jPanelLibraryCenterN;\r
1677}\r
1678/**\r
1679 * This method initializes jPanelLibraryCenterC \r
1680 * \r
1681 * @return javax.swing.JPanel \r
1682 */\r
1683private JPanel getJPanelLibraryCenterC() {\r
1684 if (jPanelLibraryCenterC == null) {\r
1685 jPanelLibraryCenterC = new JPanel();\r
1686 jPanelLibraryCenterC.add(jLabelSelectedInstances, null);\r
1687 jPanelLibraryCenterC.add(getJScrollPaneSelectedInstances(), null);\r
1688 }\r
1689 return jPanelLibraryCenterC;\r
1690}\r
f3b0ed9a 1691\r
a13899c5 1692\r
1693} // @jve:decl-index=0:visual-constraint="10,10"\r