]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java
Fixed display sizes for X-Windows
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdPlatformDefs.java
... / ...
CommitLineData
1/** @file\r
2 Java class FpdPlatformDefs is GUI for Flash element operation in SPD file.\r
3 \r
4 Copyright (c) 2006, Intel Corporation\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 **/\r
13package org.tianocore.frameworkwizard.platform.ui;\r
14\r
15import java.awt.BorderLayout;\r
16import javax.swing.JPanel;\r
17\r
18import javax.swing.JFrame;\r
19import javax.swing.JTabbedPane;\r
20import javax.swing.JButton;\r
21import javax.swing.ListSelectionModel;\r
22\r
23import org.tianocore.PlatformSurfaceAreaDocument;\r
24import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
25import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
26import org.tianocore.frameworkwizard.toolchain.ToolChainId;\r
27\r
28import javax.swing.JCheckBox;\r
29import javax.swing.JOptionPane;\r
30import javax.swing.JTextField;\r
31import javax.swing.JLabel;\r
32import javax.swing.JScrollPane;\r
33import javax.swing.JTable;\r
34import javax.swing.event.InternalFrameAdapter;\r
35import javax.swing.event.InternalFrameEvent;\r
36//import javax.swing.event.ListSelectionEvent;\r
37//import javax.swing.event.ListSelectionListener;\r
38import javax.swing.event.TableModelEvent;\r
39import javax.swing.event.TableModelListener;\r
40import javax.swing.table.DefaultTableModel;\r
41import javax.swing.table.TableModel;\r
42import javax.swing.JComboBox;\r
43import java.awt.Dimension;\r
44import java.util.Vector;\r
45\r
46public class FpdPlatformDefs extends IInternalFrame {\r
47\r
48 private static boolean Debug = false;\r
49\r
50 private final int dialogWidth = 600;\r
51\r
52 private final int oneRowHeight = 20;\r
53\r
54 private final int twoRowHeight = 40;\r
55\r
56 // private final int threeRowHeight = 60;\r
57\r
58 private final int fourRowHeight = 80;\r
59\r
60 private final int sepHeight = 6;\r
61\r
62 // private final int sepWidth = 10;\r
63\r
64 private final int offsetWidth = 70;\r
65\r
66 private final int buttonWidth = 90;\r
67\r
68 private final int rowOne = 12;\r
69\r
70 private final int rowTwo = rowOne + oneRowHeight + sepHeight * 3;\r
71\r
72 private final int rowThree = rowTwo + oneRowHeight + sepHeight;\r
73\r
74 private final int rowFour = rowThree + oneRowHeight + sepHeight;\r
75\r
76 private final int rowFive = rowFour + fourRowHeight + sepHeight * 3;\r
77\r
78 private final int rowSix = rowFive + oneRowHeight + sepHeight;\r
79\r
80 private final int rowSeven = rowSix + oneRowHeight + sepHeight;\r
81\r
82 private final int rowEight = rowSeven + oneRowHeight + sepHeight;\r
83\r
84 private final int rowNine = rowEight + oneRowHeight + sepHeight;\r
85\r
86 private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight * 3;\r
87\r
88 private final int rowEleven = rowTen + oneRowHeight + sepHeight;\r
89\r
90 private final int rowTwelve = rowEleven + oneRowHeight + sepHeight;\r
91\r
92 private final int dialogHeight = rowTwelve + twoRowHeight;\r
93\r
94 private final int labelColumn = 12;\r
95\r
96 private final int valueColumn = 168;\r
97\r
98 private final int labelWidth = 155;\r
99\r
100 private final int valueWidth = 320;\r
101\r
102 private final int valueCenter = valueColumn + (valueWidth / 2);\r
103\r
104 private final int tableHeight = fourRowHeight;\r
105\r
106 private final int tableWidth = valueWidth;\r
107\r
108 static JFrame frame;\r
109\r
110 private JPanel jContentPane = null;\r
111\r
112 private JTabbedPane jTabbedPane = null;\r
113\r
114 private TargetTableModel buildTargetTableModel = null;\r
115\r
116 private SkuInfoTableModel skuInfoTableModel = null;\r
117\r
118 private OpeningPlatformType docConsole = null;\r
119\r
120 private FpdFileContents ffc = null;\r
121\r
122 private JPanel jPanelGeneralTab = null;\r
123\r
124 private JPanel jPanelGeneralContainer = null;\r
125\r
126 private JLabel jLabelSupArch = null;\r
127\r
128 private JCheckBox jCheckBoxIa32 = null;\r
129\r
130 private JCheckBox jCheckBoxX64 = null;\r
131\r
132 private JCheckBox jCheckBoxIpf = null;\r
133\r
134 private JComboBox jComboBoxInterDir = null;\r
135\r
136 private JComboBox jBuildTargetComboBox = null;\r
137\r
138 private JTable jTableBuildTargets = null;\r
139\r
140 private JPanel jArchitectureSelections = null;\r
141\r
142 private JLabel jLabelBuildTargets = null;\r
143\r
144 // private JTextField jTextFieldBuildTarget = null;\r
145\r
146 private JButton jButtonAddBuildTarget = null;\r
147\r
148 private JButton jButtonDelBuildTarget = null;\r
149\r
150 private JScrollPane jScrollPaneBuildTargets = null;\r
151\r
152 private JScrollPane jScrollPaneSkuInfo = null;\r
153\r
154 private JTable jTableSkuInfo = null;\r
155\r
156 private JCheckBox jCheckBoxEbc = null;\r
157\r
158 private JCheckBox jCheckBoxArm = null;\r
159\r
160 private JCheckBox jCheckBoxPpc = null;\r
161\r
162 private JLabel jLabelSkuInfo = null;\r
163\r
164 private JLabel jLabelSkuId = null;\r
165\r
166 private JTextField jTextFieldSkuId = null;\r
167\r
168 private JLabel jLabelSkuName = null;\r
169\r
170 private JTextField jTextFieldSkuName = null;\r
171\r
172 private JButton jButtonSkuAdd = null;\r
173\r
174 private JButton jButtonSkuDel = null;\r
175\r
176 private JLabel jLabelIntermediateDirs = null;\r
177\r
178 private JLabel jLabelOutputDir = null;\r
179\r
180 private JTextField jTextFieldOutputDir = null;\r
181\r
182 private JLabel jLabelOutputInfo = null;\r
183\r
184 private int selectedRow = -1;\r
185\r
186 /**\r
187 * The following are not used by the UI \r
188 */\r
189 private static final long serialVersionUID = 1L;\r
190\r
191 private ToolChainId tid = new ToolChainId();\r
192\r
193 public FpdPlatformDefs() {\r
194 super();\r
195 initialize();\r
196 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
197 this.setVisible(true);\r
198 }\r
199\r
200 public FpdPlatformDefs(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
201 this();\r
202 ffc = new FpdFileContents(fpd);\r
203 init(ffc);\r
204 }\r
205\r
206 public FpdPlatformDefs(OpeningPlatformType opt) {\r
207 this(opt.getXmlFpd());\r
208 docConsole = opt;\r
209 }\r
210\r
211 /**\r
212 * This method initializes jTabbedPane \r
213 * \r
214 * @return javax.swing.JTabbedPane \r
215 */\r
216 private JTabbedPane getJTabbedPane() {\r
217 if (jTabbedPane == null) {\r
218 jTabbedPane = new JTabbedPane();\r
219 jTabbedPane.addTab("General", null, getJPanelGeneralTab(), null);\r
220 }\r
221 return jTabbedPane;\r
222 }\r
223\r
224 /**\r
225 * This method initializes this\r
226 * \r
227 * @return void\r
228 */\r
229 private void initialize() {\r
230 this.setSize(dialogWidth, dialogHeight);\r
231 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
232 this.setTitle("FPD Platform Definitions");\r
233 this.setContentPane(getJContentPane());\r
234 this.addInternalFrameListener(new InternalFrameAdapter() {\r
235 public void internalFrameDeactivated(InternalFrameEvent e) {\r
236 if (jTableBuildTargets.isEditing()) {\r
237 jTableBuildTargets.getCellEditor().stopCellEditing();\r
238 }\r
239 if (jTableSkuInfo.isEditing()) {\r
240 jTableSkuInfo.getCellEditor().stopCellEditing();\r
241 }\r
242\r
243 }\r
244 });\r
245 }\r
246\r
247 private void init(FpdFileContents ffc) {\r
248 Vector<Object> v = new Vector<Object>();\r
249 ffc.getPlatformDefsSupportedArchs(v);\r
250 showSupportedArchitectures(v);\r
251 v.removeAllElements();\r
252\r
253 ffc.getPlatformDefsBuildTargets(v);\r
254 buildTargetTableModel.setRowCount(0);\r
255 for (int i = 0; i < v.size(); ++i) {\r
256 Object[] row = { v.get(i) };\r
257 buildTargetTableModel.addRow(row);\r
258 }\r
259\r
260 String[][] saa = new String[ffc.getPlatformDefsSkuInfoCount()][2];\r
261 ffc.getPlatformDefsSkuInfos(saa);\r
262 for (int i = 0; i < saa.length; ++i) {\r
263 skuInfoTableModel.addRow(saa[i]);\r
264 }\r
265\r
266 String interDir = ffc.getPlatformDefsInterDir();\r
267 if (interDir != null) {\r
268 jComboBoxInterDir.setSelectedItem(interDir);\r
269 }\r
270\r
271 String outputDir = ffc.getPlatformDefsOutputDir();\r
272 if (outputDir != null) {\r
273 jTextFieldOutputDir.setText(outputDir);\r
274 }\r
275 }\r
276\r
277 private void showSupportedArchitectures(Vector<Object> v) {\r
278 if (v.contains("IA32")) {\r
279 jCheckBoxIa32.setSelected(true);\r
280 } else {\r
281 jCheckBoxIa32.setSelected(false);\r
282 }\r
283 if (v.contains("X64")) {\r
284 jCheckBoxX64.setSelected(true);\r
285 } else {\r
286 jCheckBoxX64.setSelected(false);\r
287 }\r
288 if (v.contains("IPF")) {\r
289 jCheckBoxIpf.setSelected(true);\r
290 } else {\r
291 jCheckBoxIpf.setSelected(false);\r
292 }\r
293 if (v.contains("EBC")) {\r
294 jCheckBoxEbc.setSelected(true);\r
295 } else {\r
296 jCheckBoxEbc.setSelected(false);\r
297 }\r
298 if (v.contains("ARM")) {\r
299 jCheckBoxArm.setSelected(true);\r
300 } else {\r
301 jCheckBoxArm.setSelected(false);\r
302 }\r
303 if (v.contains("PPC")) {\r
304 jCheckBoxPpc.setSelected(true);\r
305 } else {\r
306 jCheckBoxPpc.setSelected(false);\r
307 }\r
308 }\r
309\r
310 private void getSupportedArchitectures(Vector<Object> v) {\r
311 if (docConsole != null) {\r
312 docConsole.setSaved(false);\r
313 }\r
314 v.removeAllElements();\r
315 if (jCheckBoxIa32.isSelected()) {\r
316 v.add("IA32");\r
317 }\r
318 if (jCheckBoxX64.isSelected()) {\r
319 v.add("X64");\r
320 }\r
321 if (jCheckBoxIpf.isSelected()) {\r
322 v.add("IPF");\r
323 }\r
324 if (jCheckBoxEbc.isSelected()) {\r
325 v.add("EBC");\r
326 }\r
327 if (jCheckBoxArm.isSelected()) {\r
328 v.add("ARM");\r
329 }\r
330 if (jCheckBoxPpc.isSelected()) {\r
331 v.add("PPC");\r
332 }\r
333\r
334 }\r
335\r
336 /**\r
337 * This method initializes jContentPane\r
338 * \r
339 * @return javax.swing.JPanel\r
340 */\r
341 private JPanel getJContentPane() {\r
342 if (jContentPane == null) {\r
343 jContentPane = new JPanel();\r
344 jContentPane.setLayout(new BorderLayout());\r
345 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
346 }\r
347 return jContentPane;\r
348 }\r
349\r
350 /**\r
351 * This method initializes jPanel4 \r
352 * \r
353 * @return javax.swing.JPanel \r
354 */\r
355 private JPanel getJPanelGeneralTab() {\r
356 if (jPanelGeneralTab == null) {\r
357 jPanelGeneralTab = new JPanel();\r
358 jPanelGeneralTab.setBounds(new java.awt.Rectangle(0, 0, dialogWidth * 2, dialogHeight * 3));\r
359 jPanelGeneralTab.setPreferredSize(new java.awt.Dimension(dialogWidth + 10, (dialogHeight * 3) + 10));\r
360 jPanelGeneralTab.setAutoscrolls(true);\r
361 jPanelGeneralTab.setLocation(0, 0);\r
362 jPanelGeneralTab.setLayout(null);\r
363 jPanelGeneralTab.add(getJPanelGeneralContainer(), null);\r
364 }\r
365 return jPanelGeneralTab;\r
366 }\r
367\r
368 /**\r
369 * This method initializes jPanel5 \r
370 * \r
371 * @return javax.swing.JPanel \r
372 */\r
373 private JPanel getJPanelGeneralContainer() {\r
374 if (jPanelGeneralContainer == null) {\r
375 jLabelSupArch = new JLabel();\r
376 jLabelSupArch.setText("Supported Architectures");\r
377 jLabelSupArch.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
378 jLabelBuildTargets = new JLabel();\r
379 jLabelBuildTargets.setText("Build Targets");\r
380 jLabelBuildTargets.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
381 jLabelSkuInfo = new JLabel();\r
382 jLabelSkuInfo.setText("SKU Information");\r
383 jLabelSkuInfo.setBounds(new java.awt.Rectangle(labelColumn, rowFive, labelWidth, oneRowHeight));\r
384 jLabelSkuId = new JLabel();\r
385 jLabelSkuId.setText("SKU ID Number");\r
386 jLabelSkuId.setBounds(new java.awt.Rectangle(labelColumn + 10, rowSix, labelWidth, oneRowHeight));\r
387 jLabelSkuName = new JLabel();\r
388 jLabelSkuName.setText("SKU Name");\r
389 jLabelSkuName.setBounds(new java.awt.Rectangle(labelColumn + 10, rowSeven, labelWidth, oneRowHeight));\r
390 jLabelOutputInfo = new JLabel();\r
391 jLabelOutputInfo.setText("Output Directory Configuration");\r
392 jLabelOutputInfo.setBounds(new java.awt.Rectangle(labelColumn, rowTen, valueWidth, oneRowHeight));\r
393 jLabelIntermediateDirs = new JLabel();\r
394 jLabelIntermediateDirs.setText("Intermediate Build Directories");\r
395 jLabelIntermediateDirs.setBounds(new java.awt.Rectangle(labelColumn + 10, rowEleven, valueWidth,\r
396 oneRowHeight));\r
397 jLabelOutputDir = new JLabel();\r
398 jLabelOutputDir.setText("Name of the Output Directory");\r
399 jLabelOutputDir.setBounds(new java.awt.Rectangle(labelColumn + 10, rowTwelve, valueWidth, oneRowHeight));\r
400\r
401 jPanelGeneralContainer = new JPanel();\r
402 jPanelGeneralContainer.setLayout(null);\r
403 jPanelGeneralContainer.setLocation(new java.awt.Point(2, 2));\r
404 jPanelGeneralContainer.setBounds(new java.awt.Rectangle(2, 2, dialogWidth * 2, dialogHeight));\r
405 jPanelGeneralContainer.setPreferredSize(new java.awt.Dimension(dialogWidth, dialogHeight));\r
406\r
407 jPanelGeneralContainer.add(jLabelSupArch, null);\r
408 jPanelGeneralContainer.add(getArchitectureSelections(), null);\r
409\r
410 jPanelGeneralContainer.add(jLabelBuildTargets, null);\r
411 // jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null);\r
412 jPanelGeneralContainer.add(getJBuildTargetComboBox(), null);\r
413\r
414 jPanelGeneralContainer.add(getJButtonAddBuildTarget(), null);\r
415 jPanelGeneralContainer.add(getJButtonDelBuildTarget(), null);\r
416 jPanelGeneralContainer.add(getJScrollPaneBuildTargets(), null);\r
417\r
418 jPanelGeneralContainer.add(jLabelSkuInfo, null);\r
419 jPanelGeneralContainer.add(jLabelSkuId, null);\r
420 jPanelGeneralContainer.add(getJTextFieldSkuId(), null);\r
421 jPanelGeneralContainer.add(jLabelSkuName, null);\r
422 jPanelGeneralContainer.add(getJTextFieldSkuName(), null);\r
423 jPanelGeneralContainer.add(getJButtonSkuAdd(), null);\r
424 jPanelGeneralContainer.add(getJButtonSkuDel(), null);\r
425 jPanelGeneralContainer.add(getJScrollPaneSkuInfo(), null);\r
426\r
427 jPanelGeneralContainer.add(jLabelOutputInfo, null);\r
428 jPanelGeneralContainer.add(jLabelIntermediateDirs, null);\r
429 jPanelGeneralContainer.add(getJComboBoxInterDir(), null);\r
430 jPanelGeneralContainer.add(jLabelOutputDir, null);\r
431 jPanelGeneralContainer.add(getJTextFieldOutputDir(), null);\r
432\r
433 }\r
434 return jPanelGeneralContainer;\r
435 }\r
436\r
437 /**\r
438 * This method initializes jArchitectureSelections Row 4\r
439 * \r
440 * @return jArchitectureSelections\r
441 */\r
442 private JPanel getArchitectureSelections() {\r
443 if (jArchitectureSelections == null) {\r
444 jArchitectureSelections = new JPanel();\r
445 jArchitectureSelections.setLayout(null);\r
446 jArchitectureSelections.add(getJCheckBoxIa32(), null);\r
447 jArchitectureSelections.add(getJCheckBoxX64(), null);\r
448 jArchitectureSelections.add(getJCheckBoxIpf(), null);\r
449 jArchitectureSelections.add(getJCheckBoxEbc(), null);\r
450 jArchitectureSelections.add(getJCheckBoxArm(), null);\r
451 jArchitectureSelections.add(getJCheckBoxPpc(), null);\r
452 jArchitectureSelections.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
453 jArchitectureSelections.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
454 jArchitectureSelections.setLocation(new java.awt.Point(valueColumn, rowOne));\r
455 jArchitectureSelections.setToolTipText("<html>A Platform may support one or more architectures," \r
456 + "<br>at least one architecture must be selected!</html>");\r
457 }\r
458 return jArchitectureSelections;\r
459 }\r
460\r
461 /**\r
462 * This method initializes jCheckBox1 \r
463 * \r
464 * @return javax.swing.JCheckBox \r
465 */\r
466 private JCheckBox getJCheckBoxIa32() {\r
467 if (jCheckBoxIa32 == null) {\r
468 jCheckBoxIa32 = new JCheckBox();\r
469 jCheckBoxIa32.setText("IA32");\r
470 jCheckBoxIa32.setBounds(new java.awt.Rectangle(0, 0, 55, 20));\r
471 jCheckBoxIa32.addItemListener(new java.awt.event.ItemListener() {\r
472 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
473 Vector<Object> v = new Vector<Object>();\r
474 getSupportedArchitectures(v);\r
475 if (v.size() == 0) {\r
476 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
477 return;\r
478 }\r
479 ffc.setPlatformDefsSupportedArchs(v);\r
480 }\r
481 });\r
482 }\r
483 return jCheckBoxIa32;\r
484 }\r
485\r
486 /**\r
487 * This method initializes jCheckBox2 \r
488 * \r
489 * @return javax.swing.JCheckBox \r
490 */\r
491 private JCheckBox getJCheckBoxX64() {\r
492 if (jCheckBoxX64 == null) {\r
493 jCheckBoxX64 = new JCheckBox();\r
494 jCheckBoxX64.setText("X64");\r
495 jCheckBoxX64.setBounds(new java.awt.Rectangle(55, 0, 53, 20));\r
496 jCheckBoxX64.addItemListener(new java.awt.event.ItemListener() {\r
497 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
498 Vector<Object> v = new Vector<Object>();\r
499 getSupportedArchitectures(v);\r
500 if (v.size() == 0) {\r
501 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
502 return;\r
503 }\r
504 ffc.setPlatformDefsSupportedArchs(v);\r
505 }\r
506 });\r
507 }\r
508 return jCheckBoxX64;\r
509 }\r
510\r
511 /**\r
512 * This method initializes jCheckBox3 \r
513 * \r
514 * @return javax.swing.JCheckBox \r
515 */\r
516 private JCheckBox getJCheckBoxIpf() {\r
517 if (jCheckBoxIpf == null) {\r
518 jCheckBoxIpf = new JCheckBox();\r
519 jCheckBoxIpf.setText("IPF");\r
520 jCheckBoxIpf.setBounds(new java.awt.Rectangle(108, 0, 52, 20));\r
521 jCheckBoxIpf.addItemListener(new java.awt.event.ItemListener() {\r
522 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
523 Vector<Object> v = new Vector<Object>();\r
524 getSupportedArchitectures(v);\r
525 if (v.size() == 0) {\r
526 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
527 return;\r
528 }\r
529 ffc.setPlatformDefsSupportedArchs(v);\r
530 }\r
531 });\r
532 }\r
533 return jCheckBoxIpf;\r
534 }\r
535\r
536 /**\r
537 * This method initializes jCheckBox \r
538 * \r
539 * @return javax.swing.JCheckBox \r
540 */\r
541 private JCheckBox getJCheckBoxEbc() {\r
542 if (jCheckBoxEbc == null) {\r
543 jCheckBoxEbc = new JCheckBox();\r
544 // jCheckBoxEbc.setPreferredSize(new java.awt.Dimension(50, 20));\r
545 jCheckBoxEbc.setBounds(new java.awt.Rectangle(160, 0, 53, 20));\r
546 jCheckBoxEbc.setText("EBC");\r
547 jCheckBoxEbc.setVisible(true);\r
548 jCheckBoxEbc.addItemListener(new java.awt.event.ItemListener() {\r
549 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
550 Vector<Object> v = new Vector<Object>();\r
551 getSupportedArchitectures(v);\r
552 if (v.size() == 0) {\r
553 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
554 return;\r
555 }\r
556 ffc.setPlatformDefsSupportedArchs(v);\r
557 }\r
558 });\r
559 }\r
560 return jCheckBoxEbc;\r
561 }\r
562\r
563 /**\r
564 * This method initializes jCheckBox5 \r
565 * \r
566 * @return javax.swing.JCheckBox \r
567 */\r
568 private JCheckBox getJCheckBoxArm() {\r
569 if (jCheckBoxArm == null) {\r
570 jCheckBoxArm = new JCheckBox();\r
571 // jCheckBoxArm.setPreferredSize(new java.awt.Dimension(52, 20));\r
572 jCheckBoxArm.setBounds(new java.awt.Rectangle(213, 0, 54, 20));\r
573 jCheckBoxArm.setText("ARM");\r
574 jCheckBoxArm.setVisible(true);\r
575 jCheckBoxArm.addItemListener(new java.awt.event.ItemListener() {\r
576 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
577 Vector<Object> v = new Vector<Object>();\r
578 getSupportedArchitectures(v);\r
579 if (v.size() == 0) {\r
580 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
581 return;\r
582 }\r
583 ffc.setPlatformDefsSupportedArchs(v);\r
584 }\r
585 });\r
586 }\r
587 return jCheckBoxArm;\r
588 }\r
589\r
590 /**\r
591 * This method initializes jCheckBox6 \r
592 * \r
593 * @return javax.swing.JCheckBox \r
594 */\r
595 private JCheckBox getJCheckBoxPpc() {\r
596 if (jCheckBoxPpc == null) {\r
597 jCheckBoxPpc = new JCheckBox();\r
598 // jCheckBoxPpc.setPreferredSize(new Dimension(50, 20));\r
599 jCheckBoxPpc.setBounds(new java.awt.Rectangle(267, 0, 53, 20));\r
600 jCheckBoxPpc.setText("PPC");\r
601 jCheckBoxPpc.setVisible(true);\r
602 jCheckBoxPpc.addItemListener(new java.awt.event.ItemListener() {\r
603 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
604 Vector<Object> v = new Vector<Object>();\r
605 getSupportedArchitectures(v);\r
606 if (v.size() == 0) {\r
607 JOptionPane.showMessageDialog(frame, "Platform must support at least ONE Architecture.");\r
608 return;\r
609 }\r
610 ffc.setPlatformDefsSupportedArchs(v);\r
611 }\r
612 });\r
613 }\r
614 return jCheckBoxPpc;\r
615 }\r
616\r
617 /**\r
618 * Use a ComboBox for BuildTargets\r
619 * \r
620 * @return javax.swing.JComboBox jBuildTargetComboBox\r
621 */\r
622 private JComboBox getJBuildTargetComboBox() {\r
623 if (jBuildTargetComboBox == null) {\r
624 String toolBt = null;\r
625 if (tid.getToolsDefTargetNames() == null)\r
626 toolBt = "DEBUG RELEASE";\r
627 else\r
628 toolBt = tid.getToolsDefTargetNames().trim();\r
629\r
630 if ((toolBt.contains("*")) || (toolBt.length() < 1)) {\r
631 toolBt = "DEBUG RELEASE";\r
632 }\r
633 if (Debug)\r
634 System.out.println("Using Build Targets: " + toolBt.trim());\r
635\r
636 toolBt = toolBt.replaceAll(" ", ":");\r
637 toolBt = " :" + toolBt;\r
638 if (Debug)\r
639 System.out.println("Using Build Targets: " + toolBt.trim());\r
640 String[] buildTargets = toolBt.trim().split(":");\r
641\r
642 jBuildTargetComboBox = new JComboBox(buildTargets);\r
643 jBuildTargetComboBox.setEditable(true);\r
644 jBuildTargetComboBox.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
645 jBuildTargetComboBox.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));\r
646 jBuildTargetComboBox.setLocation(new java.awt.Point(valueColumn, rowTwo));\r
647 jBuildTargetComboBox.setToolTipText("<html>Select a defined Target and then click Add,<br>"\r
648 + "or enter a new, one word TargetName and then click Add.<br>"\r
649 + "Remember to define the Targetname in the tool defintion file."\r
650 + "</html>");\r
651\r
652 }\r
653 return jBuildTargetComboBox;\r
654 }\r
655\r
656 /**\r
657 * This method initializes jTextField1 \r
658 * \r
659 * @return javax.swing.JTextField \r
660 */\r
661 // private JTextField getJTextFieldBuildTarget() {\r
662 // if (jTextFieldBuildTarget == null) {\r
663 // jTextFieldBuildTarget = new JTextField();\r
664 // jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
665 // jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));\r
666 // jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo));\r
667 // }\r
668 // return jTextFieldBuildTarget;\r
669 // }\r
670 /**\r
671 * This method initializes jButton2 \r
672 * \r
673 * @return javax.swing.JButton \r
674 */\r
675 private JButton getJButtonAddBuildTarget() {\r
676 if (jButtonAddBuildTarget == null) {\r
677 jButtonAddBuildTarget = new JButton();\r
678 jButtonAddBuildTarget.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
679 jButtonAddBuildTarget.setBounds(new java.awt.Rectangle(valueCenter - buttonWidth - 5, rowThree,\r
680 buttonWidth, oneRowHeight));\r
681 jButtonAddBuildTarget.setLocation(new java.awt.Point(valueCenter - buttonWidth - 5, rowThree));\r
682 jButtonAddBuildTarget.setText("Add");\r
683 jButtonAddBuildTarget.setVisible(true);\r
684\r
685 jButtonAddBuildTarget.addActionListener(new java.awt.event.ActionListener() {\r
686 public void actionPerformed(java.awt.event.ActionEvent e) {\r
687 // Used with Text Field\r
688 // if (jTextFieldBuildTarget.getText().length() > 0) {\r
689 // String[] row = { jTextFieldBuildTarget.getText() };\r
690 // jTextFieldBuildTarget.setText("");\r
691 // buildTargetTableModel.addRow(row);\r
692 // Vector<Object> v = new Vector<Object>();\r
693 // for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
694 // v.add(buildTargetTableModel.getValueAt(i, 0));\r
695 // }\r
696 // docConsole.setSaved(false);\r
697 // ffc.setPlatformDefsBuildTargets(v);\r
698 // }\r
699 // Use with ComboBox\r
700 if (jBuildTargetComboBox.getSelectedItem().toString().length() > 0) {\r
701 String[] row = { jBuildTargetComboBox.getSelectedItem().toString() };\r
702 buildTargetTableModel.addRow(row);\r
703 Vector<Object> v = new Vector<Object>();\r
704 for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
705 v.add(buildTargetTableModel.getValueAt(i, 0));\r
706 }\r
707 }\r
708 }\r
709 });\r
710 }\r
711 return jButtonAddBuildTarget;\r
712 }\r
713\r
714 /**\r
715 * This method initializes jButton3 \r
716 * \r
717 * @return javax.swing.JButton \r
718 */\r
719 private JButton getJButtonDelBuildTarget() {\r
720 if (jButtonDelBuildTarget == null) {\r
721 jButtonDelBuildTarget = new JButton();\r
722 jButtonDelBuildTarget.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
723 jButtonDelBuildTarget\r
724 .setBounds(new java.awt.Rectangle(valueCenter + 5, rowThree, buttonWidth, oneRowHeight));\r
725 jButtonDelBuildTarget.setLocation(new java.awt.Point(valueCenter + 5, rowThree));\r
726 jButtonDelBuildTarget.setText("Delete");\r
727 jButtonDelBuildTarget.setVisible(true);\r
728\r
729 jButtonDelBuildTarget.addActionListener(new java.awt.event.ActionListener() {\r
730 public void actionPerformed(java.awt.event.ActionEvent e) {\r
731 if (jTableBuildTargets.getSelectedRow() < 0 || jTableBuildTargets.getSelectedRow() < 0) {\r
732 return;\r
733 }\r
734 buildTargetTableModel.removeRow(jTableBuildTargets.getSelectedRow());\r
735 Vector<Object> v = new Vector<Object>();\r
736 for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
737 v.remove(buildTargetTableModel.getValueAt(i, 0));\r
738 }\r
739 docConsole.setSaved(false);\r
740 ffc.setPlatformDefsBuildTargets(v);\r
741 }\r
742 });\r
743 }\r
744 return jButtonDelBuildTarget;\r
745 }\r
746\r
747 /**\r
748 * This method initializes jScrollPane2 \r
749 * \r
750 * @return javax.swing.JScrollPane \r
751 */\r
752 private JScrollPane getJScrollPaneBuildTargets() {\r
753 if (jScrollPaneBuildTargets == null) {\r
754 jScrollPaneBuildTargets = new JScrollPane();\r
755 jScrollPaneBuildTargets.setPreferredSize(new Dimension(tableWidth - 20, tableHeight - 20));\r
756 jScrollPaneBuildTargets.setBounds(new java.awt.Rectangle(valueColumn, rowFour, tableWidth - 5,\r
757 tableHeight - 5));\r
758 jScrollPaneBuildTargets.setLocation(new java.awt.Point(valueColumn, rowFour));\r
759 jScrollPaneBuildTargets\r
760 .setBorder(javax.swing.BorderFactory\r
761 .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
762\r
763 jScrollPaneBuildTargets.setViewportView(getJTableBuildTargets());\r
764 }\r
765 return jScrollPaneBuildTargets;\r
766 }\r
767\r
768 /**\r
769 * This method initializes jTable \r
770 * \r
771 * @return javax.swing.JTable \r
772 */\r
773 private JTable getJTableBuildTargets() {\r
774 if (jTableBuildTargets == null) {\r
775 buildTargetTableModel = new TargetTableModel();\r
776\r
777 jTableBuildTargets = new JTable(buildTargetTableModel);\r
778 jTableBuildTargets.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
779 jTableBuildTargets.setRowHeight(oneRowHeight);\r
780 jTableBuildTargets.setToolTipText("<html>Select one of the Targets from the table and<br>"\r
781 + "click Delete to remove the target from the platform.</html>");\r
782 buildTargetTableModel.addColumn("Build Target");\r
783\r
784 jTableBuildTargets.getModel().addTableModelListener(new TableModelListener() {\r
785 public void tableChanged(TableModelEvent arg0) {\r
786 // TODO Auto-generated method stub\r
787 selectedRow = jTableBuildTargets.getSelectedRow();\r
788 if (selectedRow < 0) {\r
789 return;\r
790 }\r
791 TableModel m = (TableModel) arg0.getSource();\r
792 if (arg0.getType() == TableModelEvent.UPDATE) {\r
793 //ToDo Data Validition check.\r
794 Vector<Object> v = new Vector<Object>();\r
795 for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {\r
796 v.add(m.getValueAt(i, 0));\r
797 }\r
798 docConsole.setSaved(false);\r
799 ffc.setPlatformDefsBuildTargets(v);\r
800 }\r
801 }\r
802 });\r
803\r
804 }\r
805 return jTableBuildTargets;\r
806 }\r
807\r
808 /**\r
809 * This method initializes jTextField2 \r
810 * \r
811 * @return javax.swing.JTextField \r
812 */\r
813 private JTextField getJTextFieldSkuId() {\r
814 if (jTextFieldSkuId == null) {\r
815 jTextFieldSkuId = new JTextField();\r
816 jTextFieldSkuId.setPreferredSize(new Dimension(40, oneRowHeight));\r
817 jTextFieldSkuId.setBounds(new java.awt.Rectangle(valueColumn, rowSix, 40, oneRowHeight));\r
818 jTextFieldSkuId.setLocation(new java.awt.Point(valueColumn, rowSix));\r
819 jTextFieldSkuId.setToolTipText("Enter a unique integer value.");\r
820 }\r
821 return jTextFieldSkuId;\r
822 }\r
823\r
824 /**\r
825 * This method initializes jTextField3 \r
826 * \r
827 * @return javax.swing.JTextField \r
828 */\r
829 private JTextField getJTextFieldSkuName() {\r
830 if (jTextFieldSkuName == null) {\r
831 jTextFieldSkuName = new JTextField();\r
832 jTextFieldSkuName.setPreferredSize(new Dimension(valueWidth, oneRowHeight));\r
833 jTextFieldSkuName.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight));\r
834 jTextFieldSkuName.setLocation(new java.awt.Point(valueColumn, rowSeven));\r
835 jTextFieldSkuName.setToolTipText("<html>Enter a name to help identify this SKU.<br>"\r
836 + "This entry is not used by the build system, it is<br>"\r
837 + "used only by this user interface.</html>");\r
838 }\r
839 return jTextFieldSkuName;\r
840 }\r
841\r
842 /**\r
843 * This method initializes jButton \r
844 * \r
845 * @return javax.swing.JButton \r
846 */\r
847 private JButton getJButtonSkuAdd() {\r
848 if (jButtonSkuAdd == null) {\r
849 jButtonSkuAdd = new JButton();\r
850\r
851 jButtonSkuAdd.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
852 jButtonSkuAdd.setBounds(new java.awt.Rectangle(valueCenter - buttonWidth - 5, rowEight, buttonWidth,\r
853 oneRowHeight));\r
854 jButtonSkuAdd.setLocation(new java.awt.Point(valueCenter - buttonWidth - 5, rowEight));\r
855 jButtonSkuAdd.setText("Add");\r
856 jButtonSkuAdd.setVisible(true);\r
857\r
858 jButtonSkuAdd.addActionListener(new java.awt.event.ActionListener() {\r
859 public void actionPerformed(java.awt.event.ActionEvent e) {\r
860 if (jTextFieldSkuId.getText().length() > 0) {\r
861 String[] row = { jTextFieldSkuId.getText(), jTextFieldSkuName.getText() };\r
862 skuInfoTableModel.addRow(row);\r
863 docConsole.setSaved(false);\r
864 ffc.genPlatformDefsSkuInfo(row[0], row[1]);\r
865 }\r
866 }\r
867 });\r
868 }\r
869 return jButtonSkuAdd;\r
870 }\r
871\r
872 /**\r
873 * This method initializes jButton1 \r
874 * \r
875 * @return javax.swing.JButton \r
876 */\r
877 private JButton getJButtonSkuDel() {\r
878 if (jButtonSkuDel == null) {\r
879 jButtonSkuDel = new JButton();\r
880 jButtonSkuDel.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
881 jButtonSkuDel.setBounds(new java.awt.Rectangle(valueCenter + 5, rowEight, buttonWidth, oneRowHeight));\r
882 jButtonSkuDel.setLocation(new java.awt.Point(valueCenter + 5, rowEight));\r
883 jButtonSkuDel.setText("Delete");\r
884 jButtonSkuDel.setVisible(true);\r
885 jButtonSkuDel.addActionListener(new java.awt.event.ActionListener() {\r
886 public void actionPerformed(java.awt.event.ActionEvent e) {\r
887 if (jTableSkuInfo.isEditing()) {\r
888 jTableSkuInfo.getCellEditor().stopCellEditing();\r
889 }\r
890 if (jTableSkuInfo.getSelectedRow() < 1) {\r
891 return;\r
892 }\r
893 docConsole.setSaved(false);\r
894 ffc.removePlatformDefsSkuInfo(jTableSkuInfo.getSelectedRow());\r
895 skuInfoTableModel.removeRow(jTableSkuInfo.getSelectedRow());\r
896 }\r
897 });\r
898 }\r
899 return jButtonSkuDel;\r
900 }\r
901\r
902 /**\r
903 * This method initializes jScrollPane3 \r
904 * \r
905 * @return javax.swing.JScrollPane \r
906 */\r
907 private JScrollPane getJScrollPaneSkuInfo() {\r
908 if (jScrollPaneSkuInfo == null) {\r
909 jScrollPaneSkuInfo = new JScrollPane();\r
910 jScrollPaneSkuInfo.setPreferredSize(new Dimension(tableWidth - 20, tableHeight - 20));\r
911 jScrollPaneSkuInfo.setBounds(new java.awt.Rectangle(valueColumn, rowNine, tableWidth - 5, tableHeight - 5));\r
912 jScrollPaneSkuInfo.setLocation(new java.awt.Point(valueColumn, rowNine));\r
913\r
914 jScrollPaneSkuInfo\r
915 .setBorder(javax.swing.BorderFactory\r
916 .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
917\r
918 jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
919 }\r
920 return jScrollPaneSkuInfo;\r
921 }\r
922\r
923 /**\r
924 * This method initializes jTable2 \r
925 * \r
926 * @return javax.swing.JTable \r
927 */\r
928 private JTable getJTableSkuInfo() {\r
929 if (jTableSkuInfo == null) {\r
930 skuInfoTableModel = new SkuInfoTableModel();\r
931 skuInfoTableModel.addColumn("SKU ID");\r
932 skuInfoTableModel.addColumn("Name");\r
933 jTableSkuInfo = new JTable(skuInfoTableModel);\r
934 jTableSkuInfo.setToolTipText("<html>SKU ID 0 must always be defined as the default.<br>"\r
935 + "0 can mean either SKU disabled, or it can be the<br>"\r
936 + "default value if more than one SKU is defined, and the<br>"\r
937 + "platform is not jumpered to use one of the other SKU values.</html>");\r
938\r
939 jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
940\r
941 jTableSkuInfo.getModel().addTableModelListener(new TableModelListener() {\r
942 public void tableChanged(TableModelEvent arg0) {\r
943 // TODO Auto-generated method stub\r
944 int row = arg0.getFirstRow();\r
945 TableModel m = (TableModel) arg0.getSource();\r
946 if (arg0.getType() == TableModelEvent.UPDATE) {\r
947 //ToDo Data Validition check.\r
948 String id = m.getValueAt(row, 0) + "";\r
949 String name = m.getValueAt(row, 1) + "";\r
950 docConsole.setSaved(false);\r
951 ffc.updatePlatformDefsSkuInfo(row, id, name);\r
952 }\r
953 }\r
954 });\r
955 }\r
956 return jTableSkuInfo;\r
957 }\r
958\r
959 /**\r
960 * This method initializes jComboBox \r
961 * \r
962 * @return javax.swing.JComboBox \r
963 */\r
964 private JComboBox getJComboBoxInterDir() {\r
965 if (jComboBoxInterDir == null) {\r
966 jComboBoxInterDir = new JComboBox();\r
967 jComboBoxInterDir.setPreferredSize(new Dimension(75, oneRowHeight));\r
968 jComboBoxInterDir.setBounds(new java.awt.Rectangle(valueColumn + offsetWidth, rowEleven, 95, oneRowHeight));\r
969 jComboBoxInterDir.setLocation(new java.awt.Point(valueColumn + offsetWidth, rowEleven));\r
970 jComboBoxInterDir.addItem("UNIFIED");\r
971 jComboBoxInterDir.addItem("MODULE");\r
972 jComboBoxInterDir.setSelectedIndex(0);\r
973 jComboBoxInterDir.setToolTipText("<html>Select UNIFIED to generate intermediate directories under<br>"\r
974 + "under platform directory tree.<br>"\r
975 + "Select MODULE to generate intermediate directories under the<br>"\r
976 + "individual module directories.</html>");\r
977 jComboBoxInterDir.addItemListener(new java.awt.event.ItemListener() {\r
978 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
979 if (docConsole != null) {\r
980 docConsole.setSaved(false);\r
981 }\r
982 ffc.setPlatformDefsInterDir(jComboBoxInterDir.getSelectedItem() + "");\r
983 }\r
984 });\r
985 }\r
986 return jComboBoxInterDir;\r
987 }\r
988\r
989 /**\r
990 * This method initializes jTextField \r
991 * \r
992 * @return javax.swing.JTextField Row Twelve \r
993 */\r
994 private JTextField getJTextFieldOutputDir() {\r
995 if (jTextFieldOutputDir == null) {\r
996 jTextFieldOutputDir = new JTextField();\r
997 jTextFieldOutputDir.setPreferredSize(new java.awt.Dimension(290, 20));\r
998 jTextFieldOutputDir.setBounds(new java.awt.Rectangle(valueColumn + offsetWidth, rowTwelve, valueWidth - 30,\r
999 oneRowHeight));\r
1000 jTextFieldOutputDir.setLocation(new java.awt.Point(valueColumn + offsetWidth, rowTwelve));\r
1001 jTextFieldOutputDir.setToolTipText("Select the name or URL for the output directory tree.");\r
1002 jTextFieldOutputDir.addFocusListener(new java.awt.event.FocusAdapter() {\r
1003 public void focusLost(java.awt.event.FocusEvent e) {\r
1004 docConsole.setSaved(false);\r
1005 ffc.setPlatformDefsOutputDir(jTextFieldOutputDir.getText());\r
1006 }\r
1007 });\r
1008 }\r
1009 return jTextFieldOutputDir;\r
1010 }\r
1011\r
1012} // @jve:decl-index=0:visual-constraint="10,10"\r
1013\r
1014class SkuInfoTableModel extends DefaultTableModel {\r
1015 private static final long serialVersionUID = 1L;\r
1016\r
1017 public boolean isCellEditable(int row, int column) {\r
1018 if (row == 0) {\r
1019 return false;\r
1020 }\r
1021 return true;\r
1022 }\r
1023}\r
1024\r
1025class TargetTableModel extends DefaultTableModel {\r
1026 private static final long serialVersionUID = 1L;\r
1027\r
1028 public boolean isCellEditable(int row, int column) {\r
1029 if (row < 2) {\r
1030 return false;\r
1031 }\r
1032 return true;\r
1033 }\r
1034}\r