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