2 Java class FpdPlatformDefs is GUI for Flash element operation in SPD file.
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 package org
.tianocore
.frameworkwizard
.platform
.ui
;
15 import java
.awt
.BorderLayout
;
16 import javax
.swing
.JPanel
;
18 import javax
.swing
.JFrame
;
19 import javax
.swing
.JTabbedPane
;
20 import javax
.swing
.JButton
;
21 import javax
.swing
.ListSelectionModel
;
23 import org
.tianocore
.PlatformSurfaceAreaDocument
;
24 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
25 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
26 import org
.tianocore
.frameworkwizard
.toolchain
.ToolChainId
;
28 import javax
.swing
.JCheckBox
;
29 import javax
.swing
.JOptionPane
;
30 import javax
.swing
.JTextField
;
31 import javax
.swing
.JLabel
;
32 import javax
.swing
.JScrollPane
;
33 import javax
.swing
.JTable
;
34 import javax
.swing
.event
.InternalFrameAdapter
;
35 import javax
.swing
.event
.InternalFrameEvent
;
36 //import javax.swing.event.ListSelectionEvent;
37 //import javax.swing.event.ListSelectionListener;
38 import javax
.swing
.event
.TableModelEvent
;
39 import javax
.swing
.event
.TableModelListener
;
40 import javax
.swing
.table
.DefaultTableModel
;
41 import javax
.swing
.table
.TableModel
;
42 import javax
.swing
.JComboBox
;
43 import java
.awt
.Dimension
;
44 import java
.util
.Vector
;
46 public class FpdPlatformDefs
extends IInternalFrame
{
48 private static boolean Debug
= false;
50 private final int dialogWidth
= 600;
52 private final int oneRowHeight
= 20;
54 private final int twoRowHeight
= 40;
56 // private final int threeRowHeight = 60;
58 private final int fourRowHeight
= 80;
60 private final int sepHeight
= 6;
62 // private final int sepWidth = 10;
64 private final int offsetWidth
= 70;
66 private final int buttonWidth
= 90;
68 private final int rowOne
= 12;
70 private final int rowTwo
= rowOne
+ oneRowHeight
+ sepHeight
* 3;
72 private final int rowThree
= rowTwo
+ oneRowHeight
+ sepHeight
;
74 private final int rowFour
= rowThree
+ oneRowHeight
+ sepHeight
;
76 private final int rowFive
= rowFour
+ fourRowHeight
+ sepHeight
* 3;
78 private final int rowSix
= rowFive
+ oneRowHeight
+ sepHeight
;
80 private final int rowSeven
= rowSix
+ oneRowHeight
+ sepHeight
;
82 private final int rowEight
= rowSeven
+ oneRowHeight
+ sepHeight
;
84 private final int rowNine
= rowEight
+ oneRowHeight
+ sepHeight
;
86 private final int rowTen
= rowNine
+ fourRowHeight
+ sepHeight
+ sepHeight
* 3;
88 private final int rowEleven
= rowTen
+ oneRowHeight
+ sepHeight
;
90 private final int rowTwelve
= rowEleven
+ oneRowHeight
+ sepHeight
;
92 private final int dialogHeight
= rowTwelve
+ twoRowHeight
;
94 private final int labelColumn
= 12;
96 private final int valueColumn
= 168;
98 private final int labelWidth
= 155;
100 private final int valueWidth
= 320;
102 private final int valueCenter
= valueColumn
+ (valueWidth
/ 2);
104 private final int tableHeight
= fourRowHeight
;
106 private final int tableWidth
= valueWidth
;
110 private JPanel jContentPane
= null;
112 private JTabbedPane jTabbedPane
= null;
114 private TargetTableModel buildTargetTableModel
= null;
116 private SkuInfoTableModel skuInfoTableModel
= null;
118 private OpeningPlatformType docConsole
= null;
120 private FpdFileContents ffc
= null;
122 private JPanel jPanelGeneralTab
= null;
124 private JPanel jPanelGeneralContainer
= null;
126 private JLabel jLabelSupArch
= null;
128 private JCheckBox jCheckBoxIa32
= null;
130 private JCheckBox jCheckBoxX64
= null;
132 private JCheckBox jCheckBoxIpf
= null;
134 private JComboBox jComboBoxInterDir
= null;
136 private JComboBox jBuildTargetComboBox
= null;
138 private JTable jTableBuildTargets
= null;
140 private JPanel jArchitectureSelections
= null;
142 private JLabel jLabelBuildTargets
= null;
144 // private JTextField jTextFieldBuildTarget = null;
146 private JButton jButtonAddBuildTarget
= null;
148 private JButton jButtonDelBuildTarget
= null;
150 private JScrollPane jScrollPaneBuildTargets
= null;
152 private JScrollPane jScrollPaneSkuInfo
= null;
154 private JTable jTableSkuInfo
= null;
156 private JCheckBox jCheckBoxEbc
= null;
158 private JCheckBox jCheckBoxArm
= null;
160 private JCheckBox jCheckBoxPpc
= null;
162 private JLabel jLabelSkuInfo
= null;
164 private JLabel jLabelSkuId
= null;
166 private JTextField jTextFieldSkuId
= null;
168 private JLabel jLabelSkuName
= null;
170 private JTextField jTextFieldSkuName
= null;
172 private JButton jButtonSkuAdd
= null;
174 private JButton jButtonSkuDel
= null;
176 private JLabel jLabelIntermediateDirs
= null;
178 private JLabel jLabelOutputDir
= null;
180 private JTextField jTextFieldOutputDir
= null;
182 private JLabel jLabelOutputInfo
= null;
184 private int selectedRow
= -1;
187 * The following are not used by the UI
189 private static final long serialVersionUID
= 1L;
191 private ToolChainId tid
= new ToolChainId();
193 public FpdPlatformDefs() {
196 this.setBounds(new java
.awt
.Rectangle(0, 0, 500, 370));
197 this.setVisible(true);
200 public FpdPlatformDefs(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
) {
202 ffc
= new FpdFileContents(fpd
);
206 public FpdPlatformDefs(OpeningPlatformType opt
) {
207 this(opt
.getXmlFpd());
212 * This method initializes jTabbedPane
214 * @return javax.swing.JTabbedPane
216 private JTabbedPane
getJTabbedPane() {
217 if (jTabbedPane
== null) {
218 jTabbedPane
= new JTabbedPane();
219 jTabbedPane
.addTab("General", null, getJPanelGeneralTab(), null);
225 * This method initializes this
229 private void initialize() {
230 this.setSize(dialogWidth
, dialogHeight
);
231 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
232 this.setTitle("FPD Platform Definitions");
233 this.setContentPane(getJContentPane());
234 this.addInternalFrameListener(new InternalFrameAdapter() {
235 public void internalFrameDeactivated(InternalFrameEvent e
) {
236 if (jTableBuildTargets
.isEditing()) {
237 jTableBuildTargets
.getCellEditor().stopCellEditing();
239 if (jTableSkuInfo
.isEditing()) {
240 jTableSkuInfo
.getCellEditor().stopCellEditing();
247 private void init(FpdFileContents ffc
) {
248 Vector
<Object
> v
= new Vector
<Object
>();
249 ffc
.getPlatformDefsSupportedArchs(v
);
250 showSupportedArchitectures(v
);
251 v
.removeAllElements();
253 ffc
.getPlatformDefsBuildTargets(v
);
254 buildTargetTableModel
.setRowCount(0);
255 for (int i
= 0; i
< v
.size(); ++i
) {
256 Object
[] row
= { v
.get(i
) };
257 buildTargetTableModel
.addRow(row
);
260 String
[][] saa
= new String
[ffc
.getPlatformDefsSkuInfoCount()][2];
261 ffc
.getPlatformDefsSkuInfos(saa
);
262 for (int i
= 0; i
< saa
.length
; ++i
) {
263 skuInfoTableModel
.addRow(saa
[i
]);
266 String interDir
= ffc
.getPlatformDefsInterDir();
267 if (interDir
!= null) {
268 jComboBoxInterDir
.setSelectedItem(interDir
);
271 String outputDir
= ffc
.getPlatformDefsOutputDir();
272 if (outputDir
!= null) {
273 jTextFieldOutputDir
.setText(outputDir
);
277 private void showSupportedArchitectures(Vector
<Object
> v
) {
278 if (v
.contains("IA32")) {
279 jCheckBoxIa32
.setSelected(true);
281 jCheckBoxIa32
.setSelected(false);
283 if (v
.contains("X64")) {
284 jCheckBoxX64
.setSelected(true);
286 jCheckBoxX64
.setSelected(false);
288 if (v
.contains("IPF")) {
289 jCheckBoxIpf
.setSelected(true);
291 jCheckBoxIpf
.setSelected(false);
293 if (v
.contains("EBC")) {
294 jCheckBoxEbc
.setSelected(true);
296 jCheckBoxEbc
.setSelected(false);
298 if (v
.contains("ARM")) {
299 jCheckBoxArm
.setSelected(true);
301 jCheckBoxArm
.setSelected(false);
303 if (v
.contains("PPC")) {
304 jCheckBoxPpc
.setSelected(true);
306 jCheckBoxPpc
.setSelected(false);
310 private void getSupportedArchitectures(Vector
<Object
> v
) {
311 if (docConsole
!= null) {
312 docConsole
.setSaved(false);
314 v
.removeAllElements();
315 if (jCheckBoxIa32
.isSelected()) {
318 if (jCheckBoxX64
.isSelected()) {
321 if (jCheckBoxIpf
.isSelected()) {
324 if (jCheckBoxEbc
.isSelected()) {
327 if (jCheckBoxArm
.isSelected()) {
330 if (jCheckBoxPpc
.isSelected()) {
337 * This method initializes jContentPane
339 * @return javax.swing.JPanel
341 private JPanel
getJContentPane() {
342 if (jContentPane
== null) {
343 jContentPane
= new JPanel();
344 jContentPane
.setLayout(new BorderLayout());
345 jContentPane
.add(getJTabbedPane(), java
.awt
.BorderLayout
.CENTER
);
351 * This method initializes jPanel4
353 * @return javax.swing.JPanel
355 private JPanel
getJPanelGeneralTab() {
356 if (jPanelGeneralTab
== null) {
357 jPanelGeneralTab
= new JPanel();
358 jPanelGeneralTab
.setBounds(new java
.awt
.Rectangle(0, 0, dialogWidth
* 2, dialogHeight
* 3));
359 jPanelGeneralTab
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
+ 10, (dialogHeight
* 3) + 10));
360 jPanelGeneralTab
.setAutoscrolls(true);
361 jPanelGeneralTab
.setLocation(0, 0);
362 jPanelGeneralTab
.setLayout(null);
363 jPanelGeneralTab
.add(getJPanelGeneralContainer(), null);
365 return jPanelGeneralTab
;
369 * This method initializes jPanel5
371 * @return javax.swing.JPanel
373 private JPanel
getJPanelGeneralContainer() {
374 if (jPanelGeneralContainer
== null) {
375 jLabelSupArch
= new JLabel();
376 jLabelSupArch
.setText("Supported Architectures");
377 jLabelSupArch
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowOne
, labelWidth
, oneRowHeight
));
378 jLabelBuildTargets
= new JLabel();
379 jLabelBuildTargets
.setText("Build Targets");
380 jLabelBuildTargets
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowTwo
, labelWidth
, oneRowHeight
));
381 jLabelSkuInfo
= new JLabel();
382 jLabelSkuInfo
.setText("SKU Information");
383 jLabelSkuInfo
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowFive
, labelWidth
, oneRowHeight
));
384 jLabelSkuId
= new JLabel();
385 jLabelSkuId
.setText("SKU ID Number");
386 jLabelSkuId
.setBounds(new java
.awt
.Rectangle(labelColumn
+ 10, rowSix
, labelWidth
, oneRowHeight
));
387 jLabelSkuName
= new JLabel();
388 jLabelSkuName
.setText("SKU Name");
389 jLabelSkuName
.setBounds(new java
.awt
.Rectangle(labelColumn
+ 10, rowSeven
, labelWidth
, oneRowHeight
));
390 jLabelOutputInfo
= new JLabel();
391 jLabelOutputInfo
.setText("Output Directory Configuration");
392 jLabelOutputInfo
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowTen
, valueWidth
, oneRowHeight
));
393 jLabelIntermediateDirs
= new JLabel();
394 jLabelIntermediateDirs
.setText("Intermediate Build Directories");
395 jLabelIntermediateDirs
.setBounds(new java
.awt
.Rectangle(labelColumn
+ 10, rowEleven
, valueWidth
,
397 jLabelOutputDir
= new JLabel();
398 jLabelOutputDir
.setText("Name of the Output Directory");
399 jLabelOutputDir
.setBounds(new java
.awt
.Rectangle(labelColumn
+ 10, rowTwelve
, valueWidth
, oneRowHeight
));
401 jPanelGeneralContainer
= new JPanel();
402 jPanelGeneralContainer
.setLayout(null);
403 jPanelGeneralContainer
.setLocation(new java
.awt
.Point(2, 2));
404 jPanelGeneralContainer
.setBounds(new java
.awt
.Rectangle(2, 2, dialogWidth
* 2, dialogHeight
));
405 jPanelGeneralContainer
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
, dialogHeight
));
407 jPanelGeneralContainer
.add(jLabelSupArch
, null);
408 jPanelGeneralContainer
.add(getArchitectureSelections(), null);
410 jPanelGeneralContainer
.add(jLabelBuildTargets
, null);
411 // jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null);
412 jPanelGeneralContainer
.add(getJBuildTargetComboBox(), null);
414 jPanelGeneralContainer
.add(getJButtonAddBuildTarget(), null);
415 jPanelGeneralContainer
.add(getJButtonDelBuildTarget(), null);
416 jPanelGeneralContainer
.add(getJScrollPaneBuildTargets(), null);
418 jPanelGeneralContainer
.add(jLabelSkuInfo
, null);
419 jPanelGeneralContainer
.add(jLabelSkuId
, null);
420 jPanelGeneralContainer
.add(getJTextFieldSkuId(), null);
421 jPanelGeneralContainer
.add(jLabelSkuName
, null);
422 jPanelGeneralContainer
.add(getJTextFieldSkuName(), null);
423 jPanelGeneralContainer
.add(getJButtonSkuAdd(), null);
424 jPanelGeneralContainer
.add(getJButtonSkuDel(), null);
425 jPanelGeneralContainer
.add(getJScrollPaneSkuInfo(), null);
427 jPanelGeneralContainer
.add(jLabelOutputInfo
, null);
428 jPanelGeneralContainer
.add(jLabelIntermediateDirs
, null);
429 jPanelGeneralContainer
.add(getJComboBoxInterDir(), null);
430 jPanelGeneralContainer
.add(jLabelOutputDir
, null);
431 jPanelGeneralContainer
.add(getJTextFieldOutputDir(), null);
434 return jPanelGeneralContainer
;
438 * This method initializes jArchitectureSelections Row 4
440 * @return jArchitectureSelections
442 private JPanel
getArchitectureSelections() {
443 if (jArchitectureSelections
== null) {
444 jArchitectureSelections
= new JPanel();
445 jArchitectureSelections
.setLayout(null);
446 jArchitectureSelections
.add(getJCheckBoxIa32(), null);
447 jArchitectureSelections
.add(getJCheckBoxX64(), null);
448 jArchitectureSelections
.add(getJCheckBoxIpf(), null);
449 jArchitectureSelections
.add(getJCheckBoxEbc(), null);
450 jArchitectureSelections
.add(getJCheckBoxArm(), null);
451 jArchitectureSelections
.add(getJCheckBoxPpc(), null);
452 jArchitectureSelections
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowOne
, valueWidth
, oneRowHeight
));
453 jArchitectureSelections
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, oneRowHeight
));
454 jArchitectureSelections
.setLocation(new java
.awt
.Point(valueColumn
, rowOne
));
455 jArchitectureSelections
.setToolTipText("<html>A Platform may support one or more architectures,"
456 + "<br>at least one architecture must be selected!</html>");
458 return jArchitectureSelections
;
462 * This method initializes jCheckBox1
464 * @return javax.swing.JCheckBox
466 private JCheckBox
getJCheckBoxIa32() {
467 if (jCheckBoxIa32
== null) {
468 jCheckBoxIa32
= new JCheckBox();
469 jCheckBoxIa32
.setText("IA32");
470 jCheckBoxIa32
.setBounds(new java
.awt
.Rectangle(0, 0, 55, 20));
471 jCheckBoxIa32
.addItemListener(new java
.awt
.event
.ItemListener() {
472 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
473 Vector
<Object
> v
= new Vector
<Object
>();
474 getSupportedArchitectures(v
);
476 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
477 jCheckBoxIa32
.setSelected(true);
480 ffc
.setPlatformDefsSupportedArchs(v
);
484 return jCheckBoxIa32
;
488 * This method initializes jCheckBox2
490 * @return javax.swing.JCheckBox
492 private JCheckBox
getJCheckBoxX64() {
493 if (jCheckBoxX64
== null) {
494 jCheckBoxX64
= new JCheckBox();
495 jCheckBoxX64
.setText("X64");
496 jCheckBoxX64
.setBounds(new java
.awt
.Rectangle(55, 0, 53, 20));
497 jCheckBoxX64
.addItemListener(new java
.awt
.event
.ItemListener() {
498 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
499 Vector
<Object
> v
= new Vector
<Object
>();
500 getSupportedArchitectures(v
);
502 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
503 jCheckBoxX64
.setSelected(true);
506 ffc
.setPlatformDefsSupportedArchs(v
);
514 * This method initializes jCheckBox3
516 * @return javax.swing.JCheckBox
518 private JCheckBox
getJCheckBoxIpf() {
519 if (jCheckBoxIpf
== null) {
520 jCheckBoxIpf
= new JCheckBox();
521 jCheckBoxIpf
.setText("IPF");
522 jCheckBoxIpf
.setBounds(new java
.awt
.Rectangle(108, 0, 52, 20));
523 jCheckBoxIpf
.addItemListener(new java
.awt
.event
.ItemListener() {
524 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
525 Vector
<Object
> v
= new Vector
<Object
>();
526 getSupportedArchitectures(v
);
528 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
529 jCheckBoxIpf
.setSelected(true);
532 ffc
.setPlatformDefsSupportedArchs(v
);
540 * This method initializes jCheckBox
542 * @return javax.swing.JCheckBox
544 private JCheckBox
getJCheckBoxEbc() {
545 if (jCheckBoxEbc
== null) {
546 jCheckBoxEbc
= new JCheckBox();
547 // jCheckBoxEbc.setPreferredSize(new java.awt.Dimension(50, 20));
548 jCheckBoxEbc
.setBounds(new java
.awt
.Rectangle(160, 0, 53, 20));
549 jCheckBoxEbc
.setText("EBC");
550 jCheckBoxEbc
.setVisible(true);
551 jCheckBoxEbc
.addItemListener(new java
.awt
.event
.ItemListener() {
552 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
553 Vector
<Object
> v
= new Vector
<Object
>();
554 getSupportedArchitectures(v
);
556 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
557 jCheckBoxEbc
.setSelected(true);
560 ffc
.setPlatformDefsSupportedArchs(v
);
568 * This method initializes jCheckBox5
570 * @return javax.swing.JCheckBox
572 private JCheckBox
getJCheckBoxArm() {
573 if (jCheckBoxArm
== null) {
574 jCheckBoxArm
= new JCheckBox();
575 // jCheckBoxArm.setPreferredSize(new java.awt.Dimension(52, 20));
576 jCheckBoxArm
.setBounds(new java
.awt
.Rectangle(213, 0, 54, 20));
577 jCheckBoxArm
.setText("ARM");
578 jCheckBoxArm
.setVisible(true);
579 jCheckBoxArm
.addItemListener(new java
.awt
.event
.ItemListener() {
580 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
581 Vector
<Object
> v
= new Vector
<Object
>();
582 getSupportedArchitectures(v
);
584 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
585 jCheckBoxArm
.setSelected(true);
588 ffc
.setPlatformDefsSupportedArchs(v
);
596 * This method initializes jCheckBox6
598 * @return javax.swing.JCheckBox
600 private JCheckBox
getJCheckBoxPpc() {
601 if (jCheckBoxPpc
== null) {
602 jCheckBoxPpc
= new JCheckBox();
603 // jCheckBoxPpc.setPreferredSize(new Dimension(50, 20));
604 jCheckBoxPpc
.setBounds(new java
.awt
.Rectangle(267, 0, 53, 20));
605 jCheckBoxPpc
.setText("PPC");
606 jCheckBoxPpc
.setVisible(true);
607 jCheckBoxPpc
.addItemListener(new java
.awt
.event
.ItemListener() {
608 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
609 Vector
<Object
> v
= new Vector
<Object
>();
610 getSupportedArchitectures(v
);
612 JOptionPane
.showMessageDialog(frame
, "Platform must support at least ONE Architecture.");
613 jCheckBoxPpc
.setSelected(true);
616 ffc
.setPlatformDefsSupportedArchs(v
);
624 * Use a ComboBox for BuildTargets
626 * @return javax.swing.JComboBox jBuildTargetComboBox
628 private JComboBox
getJBuildTargetComboBox() {
629 if (jBuildTargetComboBox
== null) {
630 String toolBt
= null;
631 if (tid
.getToolsDefTargetNames() == null)
632 toolBt
= "DEBUG RELEASE";
634 toolBt
= tid
.getToolsDefTargetNames().trim();
636 if ((toolBt
.contains("*")) || (toolBt
.length() < 1)) {
637 toolBt
= "DEBUG RELEASE";
640 System
.out
.println("Using Build Targets: " + toolBt
.trim());
642 toolBt
= toolBt
.replaceAll(" ", ":");
643 toolBt
= " :" + toolBt
;
645 System
.out
.println("Using Build Targets: " + toolBt
.trim());
646 String
[] buildTargets
= toolBt
.trim().split(":");
648 jBuildTargetComboBox
= new JComboBox(buildTargets
);
649 jBuildTargetComboBox
.setEditable(true);
650 jBuildTargetComboBox
.setPreferredSize(new Dimension(valueWidth
, oneRowHeight
));
651 jBuildTargetComboBox
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowTwo
, valueWidth
, oneRowHeight
));
652 jBuildTargetComboBox
.setLocation(new java
.awt
.Point(valueColumn
, rowTwo
));
653 jBuildTargetComboBox
.setToolTipText("<html>Select a defined Target and then click Add,<br>"
654 + "or enter a new, one word TargetName and then click Add.<br>"
655 + "Remember to define the Targetname in the tool defintion file."
659 return jBuildTargetComboBox
;
663 * This method initializes jTextField1
665 * @return javax.swing.JTextField
667 // private JTextField getJTextFieldBuildTarget() {
668 // if (jTextFieldBuildTarget == null) {
669 // jTextFieldBuildTarget = new JTextField();
670 // jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight));
671 // jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight));
672 // jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo));
674 // return jTextFieldBuildTarget;
677 * This method initializes jButton2
679 * @return javax.swing.JButton
681 private JButton
getJButtonAddBuildTarget() {
682 if (jButtonAddBuildTarget
== null) {
683 jButtonAddBuildTarget
= new JButton();
684 jButtonAddBuildTarget
.setPreferredSize(new Dimension(buttonWidth
, oneRowHeight
));
685 jButtonAddBuildTarget
.setBounds(new java
.awt
.Rectangle(valueCenter
- buttonWidth
- 5, rowThree
,
686 buttonWidth
, oneRowHeight
));
687 jButtonAddBuildTarget
.setLocation(new java
.awt
.Point(valueCenter
- buttonWidth
- 5, rowThree
));
688 jButtonAddBuildTarget
.setText("Add");
689 jButtonAddBuildTarget
.setVisible(true);
691 jButtonAddBuildTarget
.addActionListener(new java
.awt
.event
.ActionListener() {
692 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
693 // Used with Text Field
694 // if (jTextFieldBuildTarget.getText().length() > 0) {
695 // String[] row = { jTextFieldBuildTarget.getText() };
696 // jTextFieldBuildTarget.setText("");
697 // buildTargetTableModel.addRow(row);
698 // Vector<Object> v = new Vector<Object>();
699 // for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) {
700 // v.add(buildTargetTableModel.getValueAt(i, 0));
702 // docConsole.setSaved(false);
703 // ffc.setPlatformDefsBuildTargets(v);
706 if (jBuildTargetComboBox
.getSelectedItem().toString().length() > 0) {
707 String
[] row
= { jBuildTargetComboBox
.getSelectedItem().toString() };
708 buildTargetTableModel
.addRow(row
);
709 Vector
<Object
> v
= new Vector
<Object
>();
710 for (int i
= 0; i
< jTableBuildTargets
.getRowCount(); ++i
) {
711 v
.add(buildTargetTableModel
.getValueAt(i
, 0));
713 docConsole
.setSaved(false);
714 ffc
.setPlatformDefsBuildTargets(v
);
719 return jButtonAddBuildTarget
;
723 * This method initializes jButton3
725 * @return javax.swing.JButton
727 private JButton
getJButtonDelBuildTarget() {
728 if (jButtonDelBuildTarget
== null) {
729 jButtonDelBuildTarget
= new JButton();
730 jButtonDelBuildTarget
.setPreferredSize(new Dimension(buttonWidth
, oneRowHeight
));
731 jButtonDelBuildTarget
732 .setBounds(new java
.awt
.Rectangle(valueCenter
+ 5, rowThree
, buttonWidth
, oneRowHeight
));
733 jButtonDelBuildTarget
.setLocation(new java
.awt
.Point(valueCenter
+ 5, rowThree
));
734 jButtonDelBuildTarget
.setText("Delete");
735 jButtonDelBuildTarget
.setVisible(true);
737 jButtonDelBuildTarget
.addActionListener(new java
.awt
.event
.ActionListener() {
738 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
739 if (jTableBuildTargets
.getSelectedRow() < 0) {
742 if (jTableBuildTargets
.getRowCount() == 1) {
743 JOptionPane
.showMessageDialog(frame
, "At least one build target should be set for this platform.");
746 buildTargetTableModel
.removeRow(jTableBuildTargets
.getSelectedRow());
747 Vector
<Object
> v
= new Vector
<Object
>();
748 for (int i
= 0; i
< jTableBuildTargets
.getRowCount(); ++i
) {
749 v
.add(buildTargetTableModel
.getValueAt(i
, 0));
751 docConsole
.setSaved(false);
752 ffc
.setPlatformDefsBuildTargets(v
);
756 return jButtonDelBuildTarget
;
760 * This method initializes jScrollPane2
762 * @return javax.swing.JScrollPane
764 private JScrollPane
getJScrollPaneBuildTargets() {
765 if (jScrollPaneBuildTargets
== null) {
766 jScrollPaneBuildTargets
= new JScrollPane();
767 jScrollPaneBuildTargets
.setPreferredSize(new Dimension(tableWidth
- 20, tableHeight
- 20));
768 jScrollPaneBuildTargets
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowFour
, tableWidth
- 5,
770 jScrollPaneBuildTargets
.setLocation(new java
.awt
.Point(valueColumn
, rowFour
));
771 jScrollPaneBuildTargets
772 .setBorder(javax
.swing
.BorderFactory
773 .createEtchedBorder(javax
.swing
.border
.EtchedBorder
.RAISED
));
775 jScrollPaneBuildTargets
.setViewportView(getJTableBuildTargets());
777 return jScrollPaneBuildTargets
;
781 * This method initializes jTable
783 * @return javax.swing.JTable
785 private JTable
getJTableBuildTargets() {
786 if (jTableBuildTargets
== null) {
787 buildTargetTableModel
= new TargetTableModel();
789 jTableBuildTargets
= new JTable(buildTargetTableModel
);
790 jTableBuildTargets
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
791 jTableBuildTargets
.setRowHeight(oneRowHeight
);
792 jTableBuildTargets
.setToolTipText("<html>Select one of the Targets from the table and<br>"
793 + "click Delete to remove the target from the platform.</html>");
794 buildTargetTableModel
.addColumn("Build Target");
796 jTableBuildTargets
.getModel().addTableModelListener(new TableModelListener() {
797 public void tableChanged(TableModelEvent arg0
) {
798 // TODO Auto-generated method stub
799 selectedRow
= jTableBuildTargets
.getSelectedRow();
800 if (selectedRow
< 0) {
803 TableModel m
= (TableModel
) arg0
.getSource();
804 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
805 //ToDo Data Validition check.
806 Vector
<Object
> v
= new Vector
<Object
>();
807 for (int i
= 0; i
< jTableBuildTargets
.getRowCount(); ++i
) {
808 v
.add(m
.getValueAt(i
, 0));
810 docConsole
.setSaved(false);
811 ffc
.setPlatformDefsBuildTargets(v
);
817 return jTableBuildTargets
;
821 * This method initializes jTextField2
823 * @return javax.swing.JTextField
825 private JTextField
getJTextFieldSkuId() {
826 if (jTextFieldSkuId
== null) {
827 jTextFieldSkuId
= new JTextField();
828 jTextFieldSkuId
.setPreferredSize(new Dimension(40, oneRowHeight
));
829 jTextFieldSkuId
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowSix
, 40, oneRowHeight
));
830 jTextFieldSkuId
.setLocation(new java
.awt
.Point(valueColumn
, rowSix
));
831 jTextFieldSkuId
.setToolTipText("Enter a unique integer value.");
833 return jTextFieldSkuId
;
837 * This method initializes jTextField3
839 * @return javax.swing.JTextField
841 private JTextField
getJTextFieldSkuName() {
842 if (jTextFieldSkuName
== null) {
843 jTextFieldSkuName
= new JTextField();
844 jTextFieldSkuName
.setPreferredSize(new Dimension(valueWidth
, oneRowHeight
));
845 jTextFieldSkuName
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowSeven
, valueWidth
, oneRowHeight
));
846 jTextFieldSkuName
.setLocation(new java
.awt
.Point(valueColumn
, rowSeven
));
847 jTextFieldSkuName
.setToolTipText("<html>Enter a name to help identify this SKU.<br>"
848 + "This entry is not used by the build system, it is<br>"
849 + "used only by this user interface.</html>");
851 return jTextFieldSkuName
;
855 * This method initializes jButton
857 * @return javax.swing.JButton
859 private JButton
getJButtonSkuAdd() {
860 if (jButtonSkuAdd
== null) {
861 jButtonSkuAdd
= new JButton();
863 jButtonSkuAdd
.setPreferredSize(new Dimension(buttonWidth
, oneRowHeight
));
864 jButtonSkuAdd
.setBounds(new java
.awt
.Rectangle(valueCenter
- buttonWidth
- 5, rowEight
, buttonWidth
,
866 jButtonSkuAdd
.setLocation(new java
.awt
.Point(valueCenter
- buttonWidth
- 5, rowEight
));
867 jButtonSkuAdd
.setText("Add");
868 jButtonSkuAdd
.setVisible(true);
870 jButtonSkuAdd
.addActionListener(new java
.awt
.event
.ActionListener() {
871 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
872 if (jTextFieldSkuId
.getText().length() > 0) {
873 String
[] row
= { jTextFieldSkuId
.getText(), jTextFieldSkuName
.getText() };
874 skuInfoTableModel
.addRow(row
);
875 docConsole
.setSaved(false);
876 ffc
.genPlatformDefsSkuInfo(row
[0], row
[1]);
881 return jButtonSkuAdd
;
885 * This method initializes jButton1
887 * @return javax.swing.JButton
889 private JButton
getJButtonSkuDel() {
890 if (jButtonSkuDel
== null) {
891 jButtonSkuDel
= new JButton();
892 jButtonSkuDel
.setPreferredSize(new Dimension(buttonWidth
, oneRowHeight
));
893 jButtonSkuDel
.setBounds(new java
.awt
.Rectangle(valueCenter
+ 5, rowEight
, buttonWidth
, oneRowHeight
));
894 jButtonSkuDel
.setLocation(new java
.awt
.Point(valueCenter
+ 5, rowEight
));
895 jButtonSkuDel
.setText("Delete");
896 jButtonSkuDel
.setVisible(true);
897 jButtonSkuDel
.addActionListener(new java
.awt
.event
.ActionListener() {
898 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
899 if (jTableSkuInfo
.isEditing()) {
900 jTableSkuInfo
.getCellEditor().stopCellEditing();
902 if (jTableSkuInfo
.getSelectedRow() < 1) {
905 docConsole
.setSaved(false);
906 ffc
.removePlatformDefsSkuInfo(jTableSkuInfo
.getSelectedRow());
907 skuInfoTableModel
.removeRow(jTableSkuInfo
.getSelectedRow());
911 return jButtonSkuDel
;
915 * This method initializes jScrollPane3
917 * @return javax.swing.JScrollPane
919 private JScrollPane
getJScrollPaneSkuInfo() {
920 if (jScrollPaneSkuInfo
== null) {
921 jScrollPaneSkuInfo
= new JScrollPane();
922 jScrollPaneSkuInfo
.setPreferredSize(new Dimension(tableWidth
- 20, tableHeight
- 20));
923 jScrollPaneSkuInfo
.setBounds(new java
.awt
.Rectangle(valueColumn
, rowNine
, tableWidth
- 5, tableHeight
- 5));
924 jScrollPaneSkuInfo
.setLocation(new java
.awt
.Point(valueColumn
, rowNine
));
927 .setBorder(javax
.swing
.BorderFactory
928 .createEtchedBorder(javax
.swing
.border
.EtchedBorder
.RAISED
));
930 jScrollPaneSkuInfo
.setViewportView(getJTableSkuInfo());
932 return jScrollPaneSkuInfo
;
936 * This method initializes jTable2
938 * @return javax.swing.JTable
940 private JTable
getJTableSkuInfo() {
941 if (jTableSkuInfo
== null) {
942 skuInfoTableModel
= new SkuInfoTableModel();
943 skuInfoTableModel
.addColumn("SKU ID");
944 skuInfoTableModel
.addColumn("Name");
945 jTableSkuInfo
= new JTable(skuInfoTableModel
);
946 jTableSkuInfo
.setToolTipText("<html>SKU ID 0 must always be defined as the default.<br>"
947 + "0 can mean either SKU disabled, or it can be the<br>"
948 + "default value if more than one SKU is defined, and the<br>"
949 + "platform is not jumpered to use one of the other SKU values.</html>");
951 jTableSkuInfo
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
953 jTableSkuInfo
.getModel().addTableModelListener(new TableModelListener() {
954 public void tableChanged(TableModelEvent arg0
) {
955 // TODO Auto-generated method stub
956 int row
= arg0
.getFirstRow();
957 TableModel m
= (TableModel
) arg0
.getSource();
958 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
959 //ToDo Data Validition check.
960 String id
= m
.getValueAt(row
, 0) + "";
961 String name
= m
.getValueAt(row
, 1) + "";
962 docConsole
.setSaved(false);
963 ffc
.updatePlatformDefsSkuInfo(row
, id
, name
);
968 return jTableSkuInfo
;
972 * This method initializes jComboBox
974 * @return javax.swing.JComboBox
976 private JComboBox
getJComboBoxInterDir() {
977 if (jComboBoxInterDir
== null) {
978 jComboBoxInterDir
= new JComboBox();
979 jComboBoxInterDir
.setPreferredSize(new Dimension(75, oneRowHeight
));
980 jComboBoxInterDir
.setBounds(new java
.awt
.Rectangle(valueColumn
+ offsetWidth
, rowEleven
, 95, oneRowHeight
));
981 jComboBoxInterDir
.setLocation(new java
.awt
.Point(valueColumn
+ offsetWidth
, rowEleven
));
982 jComboBoxInterDir
.addItem("UNIFIED");
983 jComboBoxInterDir
.addItem("MODULE");
984 jComboBoxInterDir
.setSelectedIndex(0);
985 jComboBoxInterDir
.setToolTipText("<html>Select UNIFIED to generate intermediate directories under<br>"
986 + "under platform directory tree.<br>"
987 + "Select MODULE to generate intermediate directories under the<br>"
988 + "individual module directories.</html>");
989 jComboBoxInterDir
.addItemListener(new java
.awt
.event
.ItemListener() {
990 public void itemStateChanged(java
.awt
.event
.ItemEvent e
) {
991 if (docConsole
!= null) {
992 docConsole
.setSaved(false);
994 ffc
.setPlatformDefsInterDir(jComboBoxInterDir
.getSelectedItem() + "");
998 return jComboBoxInterDir
;
1002 * This method initializes jTextField
1004 * @return javax.swing.JTextField Row Twelve
1006 private JTextField
getJTextFieldOutputDir() {
1007 if (jTextFieldOutputDir
== null) {
1008 jTextFieldOutputDir
= new JTextField();
1009 jTextFieldOutputDir
.setPreferredSize(new java
.awt
.Dimension(290, 20));
1010 jTextFieldOutputDir
.setBounds(new java
.awt
.Rectangle(valueColumn
+ offsetWidth
, rowTwelve
, valueWidth
- 30,
1012 jTextFieldOutputDir
.setLocation(new java
.awt
.Point(valueColumn
+ offsetWidth
, rowTwelve
));
1013 jTextFieldOutputDir
.setToolTipText("Select the name or URL for the output directory tree.");
1014 jTextFieldOutputDir
.addFocusListener(new java
.awt
.event
.FocusAdapter() {
1015 public void focusLost(java
.awt
.event
.FocusEvent e
) {
1016 docConsole
.setSaved(false);
1017 ffc
.setPlatformDefsOutputDir(jTextFieldOutputDir
.getText());
1021 return jTextFieldOutputDir
;
1024 } // @jve:decl-index=0:visual-constraint="10,10"
1026 class SkuInfoTableModel
extends DefaultTableModel
{
1027 private static final long serialVersionUID
= 1L;
1029 public boolean isCellEditable(int row
, int column
) {
1037 class TargetTableModel
extends DefaultTableModel
{
1038 private static final long serialVersionUID
= 1L;
1040 public boolean isCellEditable(int row
, int column
) {