3 The file is used to create, update BuildOptions of Fpd file
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 package org
.tianocore
.frameworkwizard
.platform
.ui
;
17 import java
.awt
.BorderLayout
;
18 import java
.awt
.Dimension
;
20 import javax
.swing
.JPanel
;
21 import javax
.swing
.JDialog
;
22 import javax
.swing
.JTabbedPane
;
23 import javax
.swing
.JCheckBox
;
24 import javax
.swing
.JLabel
;
25 import java
.awt
.FlowLayout
;
26 import javax
.swing
.AbstractAction
;
27 import java
.awt
.event
.ActionEvent
;
28 import java
.awt
.event
.ActionListener
;
29 import java
.awt
.event
.ItemEvent
;
30 import java
.awt
.event
.ItemListener
;
32 import javax
.swing
.ButtonGroup
;
33 import javax
.swing
.DefaultCellEditor
;
34 import javax
.swing
.DefaultListModel
;
35 import javax
.swing
.JTextField
;
36 import javax
.swing
.JButton
;
37 import javax
.swing
.JScrollPane
;
38 import javax
.swing
.JTable
;
39 import javax
.swing
.JComboBox
;
40 import javax
.swing
.JRadioButton
;
41 import javax
.swing
.ListSelectionModel
;
42 import javax
.swing
.event
.InternalFrameAdapter
;
43 import javax
.swing
.event
.InternalFrameEvent
;
44 import javax
.swing
.event
.ListSelectionEvent
;
45 import javax
.swing
.event
.ListSelectionListener
;
46 import javax
.swing
.event
.TableModelEvent
;
47 import javax
.swing
.event
.TableModelListener
;
48 import javax
.swing
.table
.DefaultTableModel
;
49 import javax
.swing
.table
.TableColumn
;
50 import javax
.swing
.table
.TableModel
;
52 import org
.tianocore
.PlatformSurfaceAreaDocument
;
53 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
54 import java
.awt
.CardLayout
;
55 import java
.util
.ArrayList
;
56 import java
.util
.Iterator
;
57 import java
.util
.LinkedHashMap
;
60 public class FpdBuildOptions
extends IInternalFrame
{
62 private static final long serialVersionUID
= 1L;
63 private JPanel jContentPane
= null;
64 private JPanel jPanel
= null;
65 private JPanel jPanel1
= null;
66 private JPanel jPanel2
= null;
67 private JPanel jPanel3
= null;
68 private JTabbedPane jTabbedPane
= null;
69 private JPanel jPanel8
= null;
70 private JPanel jPanel9
= null;
71 private JPanel jPanel10
= null;
72 private JPanel jPanel11
= null;
73 private JTextField jTextField2
= null;
74 private JLabel jLabel3
= null;
75 private JTextField jTextField3
= null;
76 private JButton jButton4
= null;
77 private JButton jButton5
= null;
78 private JTextField jTextField4
= null;
79 private JScrollPane jScrollPane2
= null;
80 private JTable jTable2
= null;
81 private DefaultTableModel ffsTableModel
= null;
82 private DefaultTableModel sectionsTableModel
= null;
83 private DefaultTableModel sectionTableModel
= null;
84 private DefaultTableModel subsectionsTableModel
= null;
85 private DefaultTableModel antTaskTableModel
= null;
86 private DefaultTableModel ffsAttributesTableModel
= null;
87 private DefaultTableModel optionsTableModel
= null;
88 private JPanel jPanel13
= null;
89 private JPanel jPanel18
= null;
90 private JPanel jPanel15
= null;
91 private JPanel jPanel16
= null;
92 private JPanel jPanel17
= null;
93 private JLabel jLabel7
= null;
94 private JTextField jTextField6
= null;
95 private JButton jButton8
= null;
96 private JButton jButton9
= null;
97 private JScrollPane jScrollPane5
= null;
98 private JTable jTable4
= null;
99 private JPanel jPanel19
= null;
100 private JPanel jPanel20
= null;
101 private JLabel jLabel9
= null;
102 private JTextField jTextField7
= null;
103 private JLabel jLabel10
= null;
104 private JComboBox jComboBox2
= null;
105 private JLabel jLabel11
= null;
106 private JLabel jLabel12
= null;
107 private JTextField jTextField8
= null;
108 private JScrollPane jScrollPane6
= null;
109 private JTable jTable5
= null;
110 private JButton jButton10
= null;
111 private JButton jButton11
= null;
112 private DefaultListModel listModel
= new DefaultListModel();
113 private JButton jButton17
= null;
114 private JButton jButton18
= null;
115 private FpdFileContents ffc
= null;
116 private JButton jButton19
= null;
117 private JCheckBox jCheckBox9
= null;
118 private JCheckBox jCheckBox10
= null;
119 private JCheckBox jCheckBox11
= null;
120 private JCheckBox jCheckBox12
= null;
121 private JCheckBox jCheckBox13
= null;
122 private JCheckBox jCheckBox14
= null;
123 private JLabel jLabel14
= null;
124 private JTextField jTextField12
= null;
125 private JTextField jTextField13
= null;
126 private JLabel jLabel15
= null;
127 private int selectedRow
= -1;
128 private JLabel jLabel
= null;
129 private JLabel jLabel1
= null;
130 private JScrollPane jScrollPane
= null;
131 private JTable jTable
= null;
132 private JLabel jLabel2
= null;
133 private JScrollPane jScrollPane1
= null;
134 private JTable jTable1
= null;
135 private JLabel jLabel4
= null;
136 private JScrollPane jScrollPane3
= null;
137 private JTable jTable3
= null;
138 private JLabel jLabel5
= null;
139 private JTextField jTextField
= null;
140 private JPanel jPanel4
= null;
141 private JLabel jLabel6
= null;
142 private JButton jButton
= null;
143 private JButton jButton1
= null;
144 private JButton jButton2
= null;
145 private JButton jButton3
= null;
146 private JLabel jLabel8
= null;
147 private JButton jButton6
= null;
148 private JButton jButton7
= null;
149 private JScrollPane jScrollPane4
= null;
150 private JTable jTable6
= null;
152 * This method initializes jPanel
154 * @return javax.swing.JPanel
156 private JPanel
getJPanel() {
157 if (jPanel
== null) {
158 jPanel
= new JPanel();
164 * This method initializes jPanel1
166 * @return javax.swing.JPanel
168 private JPanel
getJPanel1() {
169 if (jPanel1
== null) {
170 jPanel1
= new JPanel();
176 * This method initializes jPanel2
178 * @return javax.swing.JPanel
180 private JPanel
getJPanel2() {
181 if (jPanel2
== null) {
182 jPanel2
= new JPanel();
188 * This method initializes jPanel3
190 * @return javax.swing.JPanel
192 private JPanel
getJPanel3() {
193 if (jPanel3
== null) {
194 jPanel3
= new JPanel();
200 * This method initializes jTabbedPane
202 * @return javax.swing.JTabbedPane
204 private JTabbedPane
getJTabbedPane() {
205 if (jTabbedPane
== null) {
206 jTabbedPane
= new JTabbedPane();
207 jTabbedPane
.addTab("FFS", null, getJPanel13(), null);
208 jTabbedPane
.addTab("Options", null, getJPanel20(), null);
209 jTabbedPane
.addTab("User Defined ANT Tasks", null, getJPanel8(), null);
216 * This method initializes jPanel8
218 * @return javax.swing.JPanel
220 private JPanel
getJPanel8() {
221 if (jPanel8
== null) {
222 jPanel8
= new JPanel();
223 jPanel8
.setLayout(new BorderLayout());
224 jPanel8
.add(getJPanel9(), java
.awt
.BorderLayout
.NORTH
);
225 jPanel8
.add(getJPanel10(), java
.awt
.BorderLayout
.SOUTH
);
226 jPanel8
.add(getJPanel11(), java
.awt
.BorderLayout
.CENTER
);
233 * This method initializes jPanel9
235 * @return javax.swing.JPanel
237 private JPanel
getJPanel9() {
238 if (jPanel9
== null) {
239 jLabel
= new JLabel();
240 jLabel
.setText("ANT Task File");
241 jLabel
.setPreferredSize(new java
.awt
.Dimension(80,20));
242 FlowLayout flowLayout8
= new FlowLayout();
243 flowLayout8
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
244 jLabel3
= new JLabel();
245 jLabel3
.setText("ID");
246 jPanel9
= new JPanel();
247 jPanel9
.setLayout(flowLayout8
);
248 jPanel9
.add(jLabel
, null);
249 jPanel9
.add(getJTextField2(), null);
250 jPanel9
.add(jLabel3
, null);
251 jPanel9
.add(getJTextField3(), null);
257 * This method initializes jPanel10
259 * @return javax.swing.JPanel
261 private JPanel
getJPanel10() {
262 if (jPanel10
== null) {
263 jPanel10
= new JPanel();
269 * This method initializes jPanel11
271 * @return javax.swing.JPanel
273 private JPanel
getJPanel11() {
274 if (jPanel11
== null) {
275 jLabel1
= new JLabel();
276 jLabel1
.setText("ANT Command Options");
277 jLabel1
.setPreferredSize(new java
.awt
.Dimension(131,20));
278 FlowLayout flowLayout3
= new FlowLayout();
279 flowLayout3
.setHgap(5);
280 flowLayout3
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
281 jPanel11
= new JPanel();
282 jPanel11
.setLayout(flowLayout3
);
283 jPanel11
.add(jLabel1
, null);
284 jPanel11
.add(getJTextField4(), null);
285 jPanel11
.add(getJButton4(), null);
286 jPanel11
.add(getJButton5(), null);
287 jPanel11
.add(getJScrollPane2(), null);
293 * This method initializes jTextField2
295 * @return javax.swing.JTextField
297 private JTextField
getJTextField2() {
298 if (jTextField2
== null) {
299 jTextField2
= new JTextField();
300 jTextField2
.setPreferredSize(new java
.awt
.Dimension(200,20));
306 * This method initializes jTextField3
308 * @return javax.swing.JTextField
310 private JTextField
getJTextField3() {
311 if (jTextField3
== null) {
312 jTextField3
= new JTextField();
313 jTextField3
.setPreferredSize(new java
.awt
.Dimension(100,20));
319 * This method initializes jButton4
321 * @return javax.swing.JButton
323 private JButton
getJButton4() {
324 if (jButton4
== null) {
325 jButton4
= new JButton();
326 jButton4
.setPreferredSize(new java
.awt
.Dimension(90,20));
327 jButton4
.setText("Add");
328 jButton4
.addActionListener(new ActionListener() {
329 public void actionPerformed(ActionEvent e
) {
330 Object
[] o
= {jTextField3
.getText(), null, null};
331 o
[1] = jTextField2
.getText();
332 o
[2] = jTextField4
.getText();
333 ffc
.genBuildOptionsUserDefAntTask(o
[0]+"", null, o
[2]+"");
334 antTaskTableModel
.addRow(o
);
343 * This method initializes jButton5
345 * @return javax.swing.JButton
347 private JButton
getJButton5() {
348 if (jButton5
== null) {
349 jButton5
= new JButton();
350 jButton5
.setPreferredSize(new java
.awt
.Dimension(90,20));
351 jButton5
.setText("Delete");
352 jButton5
.addActionListener(new ActionListener() {
353 public void actionPerformed(ActionEvent e
) {
354 if (selectedRow
>= 0) {
355 antTaskTableModel
.removeRow(selectedRow
);
356 ffc
.removeBuildOptionsUserDefAntTask(selectedRow
);
365 * This method initializes jTextField4
367 * @return javax.swing.JTextField
369 private JTextField
getJTextField4() {
370 if (jTextField4
== null) {
371 jTextField4
= new JTextField();
372 jTextField4
.setPreferredSize(new java
.awt
.Dimension(270,20));
373 jTextField4
.setEnabled(true);
379 * This method initializes jScrollPane2
381 * @return javax.swing.JScrollPane
383 private JScrollPane
getJScrollPane2() {
384 if (jScrollPane2
== null) {
385 jScrollPane2
= new JScrollPane();
386 jScrollPane2
.setPreferredSize(new java
.awt
.Dimension(600,100));
387 jScrollPane2
.setViewportView(getJTable2());
393 * This method initializes jTable2
395 * @return javax.swing.JTable
397 private JTable
getJTable2() {
398 if (jTable2
== null) {
399 antTaskTableModel
= new DefaultTableModel();
400 jTable2
= new JTable(antTaskTableModel
);
401 antTaskTableModel
.addColumn("ID");
402 antTaskTableModel
.addColumn("Filename");
403 antTaskTableModel
.addColumn("ANT Command Options");
405 jTable2
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
406 jTable2
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
407 public void valueChanged(ListSelectionEvent e
) {
409 if (e
.getValueIsAdjusting()){
412 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
413 if (lsm
.isSelectionEmpty()) {
417 selectedRow
= lsm
.getMinSelectionIndex();
422 jTable2
.getModel().addTableModelListener(new TableModelListener() {
423 public void tableChanged(TableModelEvent arg0
) {
424 // TODO Auto-generated method stub
425 int row
= arg0
.getFirstRow();
426 TableModel m
= (TableModel
)arg0
.getSource();
427 if (arg0
.getType() == TableModelEvent
.UPDATE
){
428 //ToDo Data Validition check.
429 String id
= m
.getValueAt(row
, 0) + "";
430 String file
= m
.getValueAt(row
, 1) + "";
431 String execOrder
= m
.getValueAt(row
, 2) + "";
432 if (id
.length() == 0) {
435 if (file
.length() == 0 && execOrder
.length() == 0){
438 if (file
.length() == 0) {
441 if (execOrder
.length() == 0) {
444 ffc
.updateBuildOptionsUserDefAntTask(row
, id
, file
, execOrder
);
454 * This method initializes jPanel13
456 * @return javax.swing.JPanel
458 private JPanel
getJPanel13() {
459 if (jPanel13
== null) {
460 jPanel13
= new JPanel();
461 jPanel13
.setLayout(new BorderLayout());
462 jPanel13
.add(getJPanel18(), java
.awt
.BorderLayout
.CENTER
);
463 jPanel13
.add(getJScrollPane(), java
.awt
.BorderLayout
.WEST
);
469 * This method initializes jPanel18
471 * @return javax.swing.JPanel
473 private JPanel
getJPanel18() {
474 if (jPanel18
== null) {
475 jPanel18
= new JPanel();
476 jPanel18
.setLayout(new BorderLayout());
477 jPanel18
.add(getJPanel15(), java
.awt
.BorderLayout
.NORTH
);
478 jPanel18
.add(getJPanel16(), java
.awt
.BorderLayout
.SOUTH
);
479 jPanel18
.add(getJPanel17(), java
.awt
.BorderLayout
.EAST
);
480 jPanel18
.add(getJPanel19(), java
.awt
.BorderLayout
.CENTER
);
486 * This method initializes jPanel15
488 * @return javax.swing.JPanel
490 private JPanel
getJPanel15() {
491 if (jPanel15
== null) {
492 jLabel5
= new JLabel();
493 jLabel5
.setText("Encapsulation Type");
494 FlowLayout flowLayout5
= new FlowLayout();
495 flowLayout5
.setAlignment(java
.awt
.FlowLayout
.RIGHT
);
496 jLabel7
= new JLabel();
497 jLabel7
.setText("FFS Key");
498 jPanel15
= new JPanel();
499 jPanel15
.setLayout(flowLayout5
);
500 jPanel15
.add(jLabel7
, null);
501 jPanel15
.add(getJTextField6(), null);
502 jPanel15
.add(jLabel5
, null);
503 jPanel15
.add(getJTextField(), null);
504 jPanel15
.add(getJButton8(), null);
505 jPanel15
.add(getJButton9(), null);
511 * This method initializes jPanel16
513 * @return javax.swing.JPanel
515 private JPanel
getJPanel16() {
516 if (jPanel16
== null) {
517 jLabel6
= new JLabel();
518 jLabel6
.setText("Attributes");
519 FlowLayout flowLayout6
= new FlowLayout();
520 flowLayout6
.setHgap(5);
521 flowLayout6
.setVgap(20);
522 flowLayout6
.setAlignment(java
.awt
.FlowLayout
.CENTER
);
523 jPanel16
= new JPanel();
524 jPanel16
.setPreferredSize(new java
.awt
.Dimension(491,130));
525 jPanel16
.setLayout(flowLayout6
);
526 jPanel16
.add(jLabel6
, null);
527 jPanel16
.add(getJScrollPane5(), null);
528 jPanel16
.add(getJPanel4(), null);
534 * This method initializes jPanel17
536 * @return javax.swing.JPanel
538 private JPanel
getJPanel17() {
539 if (jPanel17
== null) {
540 jPanel17
= new JPanel();
546 * This method initializes jTextField6
548 * @return javax.swing.JTextField
550 private JTextField
getJTextField6() {
551 if (jTextField6
== null) {
552 jTextField6
= new JTextField();
553 jTextField6
.setPreferredSize(new java
.awt
.Dimension(100,20));
559 * This method initializes jButton8
561 * @return javax.swing.JButton
563 private JButton
getJButton8() {
564 if (jButton8
== null) {
565 jButton8
= new JButton();
566 jButton8
.setPreferredSize(new java
.awt
.Dimension(70,20));
567 jButton8
.setText("Add");
568 jButton8
.addActionListener(new AbstractAction() {
572 private static final long serialVersionUID
= -2923720717273384221L;
574 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
575 if (jTextField6
.getText().length() > 0) {
576 String
[] row
= {jTextField6
.getText()};
577 ffsTableModel
.addRow(row
);
578 ffc
.genBuildOptionsFfs(jTextField6
.getText(), jTextField
.getText());
587 * This method initializes jButton9
589 * @return javax.swing.JButton
591 private JButton
getJButton9() {
592 if (jButton9
== null) {
593 jButton9
= new JButton();
594 jButton9
.setPreferredSize(new java
.awt
.Dimension(70,20));
595 jButton9
.setText("Delete");
596 jButton9
.addActionListener(new AbstractAction() {
600 private static final long serialVersionUID
= -4002678939178194476L;
602 public void actionPerformed(ActionEvent arg0
){
603 if (jTable
.getSelectedRow() < 0) {
606 ffc
.removeBuildOptionsFfs(jTable
.getSelectedRow());
614 * This method initializes jScrollPane5
616 * @return javax.swing.JScrollPane
618 private JScrollPane
getJScrollPane5() {
619 if (jScrollPane5
== null) {
620 jScrollPane5
= new JScrollPane();
621 jScrollPane5
.setPreferredSize(new java
.awt
.Dimension(350,100));
622 jScrollPane5
.setViewportView(getJTable4());
628 * This method initializes jTable4
630 * @return javax.swing.JTable
632 private JTable
getJTable4() {
633 if (jTable4
== null) {
634 ffsAttributesTableModel
= new DefaultTableModel();
635 jTable4
= new JTable(ffsAttributesTableModel
);
636 jTable4
.setPreferredSize(new java
.awt
.Dimension(400,80));
637 ffsAttributesTableModel
.addColumn("Name");
638 ffsAttributesTableModel
.addColumn("Value");
640 jTable4
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
641 jTable4
.getModel().addTableModelListener(new TableModelListener() {
642 public void tableChanged(TableModelEvent arg0
) {
643 // TODO Auto-generated method stub
644 int row
= arg0
.getFirstRow();
645 TableModel m
= (TableModel
)arg0
.getSource();
646 if (arg0
.getType() == TableModelEvent
.UPDATE
){
647 //ToDo Data Validition check.
648 String name
= m
.getValueAt(row
, 0) + "";
649 String value
= m
.getValueAt(row
, 1) + "";
651 if (name
.length() == 0) {
654 if (value
.length() == 0){
657 ffc
.updateBuildOptionsFfsAttribute(jTable
.getSelectedRow(), row
, name
, value
);
666 * This method initializes jPanel19
668 * @return javax.swing.JPanel
670 private JPanel
getJPanel19() {
671 if (jPanel19
== null) {
672 jLabel8
= new JLabel();
673 jLabel8
.setText("Sections");
674 jLabel4
= new JLabel();
675 jLabel4
.setText("Sub-Sections");
676 jLabel2
= new JLabel();
677 jLabel2
.setText("Section");
678 jPanel19
= new JPanel();
679 jPanel19
.setLayout(new FlowLayout());
680 jPanel19
.add(jLabel2
, null);
681 jPanel19
.add(getJButton(), null);
682 jPanel19
.add(getJButton1(), null);
683 jPanel19
.add(getJScrollPane1(), null);
684 jPanel19
.add(jLabel8
, null);
685 jPanel19
.add(getJButton6(), null);
686 jPanel19
.add(getJButton7(), null);
687 jPanel19
.add(getJScrollPane4(), null);
688 jPanel19
.add(jLabel4
, null);
689 jPanel19
.add(getJButton2(), null);
690 jPanel19
.add(getJButton3(), null);
691 jPanel19
.add(getJScrollPane3(), null);
697 * This method initializes jPanel20
699 * @return javax.swing.JPanel
701 private JPanel
getJPanel20() {
702 if (jPanel20
== null) {
703 jLabel15
= new JLabel();
704 jLabel15
.setText("Tag Name");
705 FlowLayout flowLayout9
= new FlowLayout();
706 flowLayout9
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
707 jLabel14
= new JLabel();
708 jLabel14
.setText("Build Targets");
709 jLabel12
= new JLabel();
710 jLabel12
.setText("Tool Command");
711 jLabel11
= new JLabel();
712 jLabel11
.setText("Supported Arch");
713 jLabel10
= new JLabel();
714 jLabel10
.setText("Tool Chain Family");
715 jLabel9
= new JLabel();
716 jLabel9
.setText("Option Contents");
717 jPanel20
= new JPanel();
718 jPanel20
.setLayout(flowLayout9
);
719 jPanel20
.add(jLabel14
, null);
720 jPanel20
.add(getJTextField12(), null);
721 jPanel20
.add(jLabel10
, null);
722 jPanel20
.add(getJComboBox2(), null);
723 jPanel20
.add(jLabel12
, null);
724 jPanel20
.add(getJTextField8(), null);
725 jPanel20
.add(jLabel11
, null);
726 jPanel20
.add(getJCheckBox9(), null);
727 jPanel20
.add(getJCheckBox10(), null);
728 jPanel20
.add(getJCheckBox11(), null);
729 jPanel20
.add(getJCheckBox12(), null);
730 jPanel20
.add(getJCheckBox13(), null);
731 jPanel20
.add(getJCheckBox14(), null);
732 jPanel20
.add(jLabel15
, null);
733 jPanel20
.add(getJTextField13(), null);
734 jPanel20
.add(jLabel9
, null);
735 jPanel20
.add(getJTextField7(), null);
736 jPanel20
.add(getJButton10(), null);
737 jPanel20
.add(getJButton11(), null);
738 jPanel20
.add(getJButton19(), null);
739 jPanel20
.add(getJScrollPane6(), null);
745 * This method initializes jTextField7
747 * @return javax.swing.JTextField
749 private JTextField
getJTextField7() {
750 if (jTextField7
== null) {
751 jTextField7
= new JTextField();
752 jTextField7
.setPreferredSize(new java
.awt
.Dimension(300,20));
758 * This method initializes jComboBox2
760 * @return javax.swing.JComboBox
762 private JComboBox
getJComboBox2() {
763 if (jComboBox2
== null) {
764 jComboBox2
= new JComboBox();
765 jComboBox2
.setPreferredSize(new java
.awt
.Dimension(80,20));
766 jComboBox2
.addItem("MSFT");
767 jComboBox2
.addItem("GCC");
768 jComboBox2
.addItem("CYGWIN");
769 jComboBox2
.addItem("INTEL");
770 jComboBox2
.setSelectedIndex(0);
776 * This method initializes jTextField8
778 * @return javax.swing.JTextField
780 private JTextField
getJTextField8() {
781 if (jTextField8
== null) {
782 jTextField8
= new JTextField();
783 jTextField8
.setPreferredSize(new java
.awt
.Dimension(110,20));
789 * This method initializes jScrollPane6
791 * @return javax.swing.JScrollPane
793 private JScrollPane
getJScrollPane6() {
794 if (jScrollPane6
== null) {
795 jScrollPane6
= new JScrollPane();
796 jScrollPane6
.setPreferredSize(new java
.awt
.Dimension(630,200));
797 jScrollPane6
.setViewportView(getJTable5());
803 * This method initializes jTable5
805 * @return javax.swing.JTable
807 private JTable
getJTable5() {
808 if (jTable5
== null) {
809 optionsTableModel
= new DefaultTableModel();
810 jTable5
= new JTable(optionsTableModel
);
811 optionsTableModel
.addColumn("BuildTargets");
812 optionsTableModel
.addColumn("ToolChainFamily");
813 optionsTableModel
.addColumn("SupportedArch");
814 optionsTableModel
.addColumn("ToolCommand");
815 optionsTableModel
.addColumn("TagName");
816 optionsTableModel
.addColumn("Contents");
818 TableColumn toolFamilyCol
= jTable5
.getColumnModel().getColumn(1);
819 JComboBox cb
= new JComboBox();
822 cb
.addItem("CYGWIN");
824 toolFamilyCol
.setCellEditor(new DefaultCellEditor(cb
));
826 jTable5
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
827 jTable5
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
828 public void valueChanged(ListSelectionEvent e
) {
830 if (e
.getValueIsAdjusting()){
833 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
834 if (lsm
.isSelectionEmpty()) {
838 selectedRow
= lsm
.getMinSelectionIndex();
843 jTable5
.getModel().addTableModelListener(new TableModelListener() {
844 public void tableChanged(TableModelEvent arg0
) {
845 // TODO Auto-generated method stub
846 int row
= arg0
.getFirstRow();
847 TableModel m
= (TableModel
)arg0
.getSource();
848 if (arg0
.getType() == TableModelEvent
.UPDATE
){
849 //ToDo Data Validition check.
850 String targetName
= m
.getValueAt(row
, 0) + "";
851 String toolChain
= m
.getValueAt(row
, 1) + "";
852 String supArch
= m
.getValueAt(row
, 2) + "";
853 String toolCmd
= m
.getValueAt(row
, 3) + "";
854 String tagName
= m
.getValueAt(row
, 4) + "";
855 String contents
= m
.getValueAt(row
, 5) + "";
856 ffc
.updateBuildOptionsOpt(row
, targetName
, toolChain
, tagName
, toolCmd
, supArch
, contents
);
865 * This method initializes jButton10
867 * @return javax.swing.JButton
869 private JButton
getJButton10() {
870 if (jButton10
== null) {
871 jButton10
= new JButton();
872 jButton10
.setText("Add");
873 jButton10
.setPreferredSize(new java
.awt
.Dimension(70,20));
874 jButton10
.addActionListener(new AbstractAction() {
878 private static final long serialVersionUID
= 1L;
880 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
881 boolean[] boolArray
= {jCheckBox9
.isSelected(),jCheckBox10
.isSelected(),jCheckBox11
.isSelected(),
882 jCheckBox12
.isSelected(),jCheckBox13
.isSelected(),jCheckBox14
.isSelected()};
883 String s
= boolToList(boolArray
);
884 Object
[] o
= {jTextField12
.getText(), jComboBox2
.getSelectedItem(), s
,
885 jTextField8
.getText(), jTextField13
.getText(), jTextField7
.getText()};
886 optionsTableModel
.addRow(o
);
887 ffc
.genBuildOptionsOpt(jTextField12
.getText(), jComboBox2
.getSelectedItem()+"", jTextField13
.getText(), jTextField8
.getText(), s
, jTextField7
.getText());
894 private String
boolToList (boolean[] bool
) {
919 * This method initializes jButton11
921 * @return javax.swing.JButton
923 private JButton
getJButton11() {
924 if (jButton11
== null) {
925 jButton11
= new JButton();
926 jButton11
.setText("Delete");
927 jButton11
.setPreferredSize(new java
.awt
.Dimension(70,20));
928 jButton11
.addActionListener(new AbstractAction() {
932 private static final long serialVersionUID
= 1L;
934 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
935 if (selectedRow
>= 0) {
936 optionsTableModel
.removeRow(selectedRow
);
937 ffc
.removeBuildOptionsOpt(selectedRow
);
946 * This method initializes jButton17
948 * @return javax.swing.JButton
950 private JButton
getJButton17() {
951 if (jButton17
== null) {
952 jButton17
= new JButton();
953 jButton17
.setPreferredSize(new java
.awt
.Dimension(80,20));
954 jButton17
.setText("New");
955 jButton17
.addActionListener(new AbstractAction() {
959 private static final long serialVersionUID
= 1L;
961 public void actionPerformed(ActionEvent arg0
){
962 if (jTable
.getSelectedRow() < 0) {
965 Object
[] o
= {"", ""};
966 ffsAttributesTableModel
.addRow(o
);
967 ffc
.genBuildOptionsFfsAttribute(jTable
.getSelectedRow(), "", "");
975 * This method initializes jButton18
977 * @return javax.swing.JButton
979 private JButton
getJButton18() {
980 if (jButton18
== null) {
981 jButton18
= new JButton();
982 jButton18
.setPreferredSize(new java
.awt
.Dimension(80,20));
983 jButton18
.setText("Remove");
984 jButton18
.addActionListener(new AbstractAction(){
988 private static final long serialVersionUID
= 1L;
990 public void actionPerformed(ActionEvent arg0
){
991 if (jTable
.getSelectedRow() < 0) {
994 if (jTable4
.getSelectedRow() >= 0){
995 ffsAttributesTableModel
.removeRow(jTable4
.getSelectedRow());
996 ffc
.removeBuildOptionsFfsAttribute(jTable
.getSelectedRow(), jTable4
.getSelectedRow());
1005 * This method initializes jButton19
1007 * @return javax.swing.JButton
1009 private JButton
getJButton19() {
1010 if (jButton19
== null) {
1011 jButton19
= new JButton();
1012 jButton19
.setPreferredSize(new java
.awt
.Dimension(75,20));
1013 jButton19
.setEnabled(false);
1014 jButton19
.setText("Update");
1020 * This method initializes jCheckBox9
1022 * @return javax.swing.JCheckBox
1024 private JCheckBox
getJCheckBox9() {
1025 if (jCheckBox9
== null) {
1026 jCheckBox9
= new JCheckBox();
1027 jCheckBox9
.setPreferredSize(new java
.awt
.Dimension(50,20));
1028 jCheckBox9
.setText("IA32");
1034 * This method initializes jCheckBox10
1036 * @return javax.swing.JCheckBox
1038 private JCheckBox
getJCheckBox10() {
1039 if (jCheckBox10
== null) {
1040 jCheckBox10
= new JCheckBox();
1041 jCheckBox10
.setPreferredSize(new java
.awt
.Dimension(50,20));
1042 jCheckBox10
.setText("IPF");
1048 * This method initializes jCheckBox11
1050 * @return javax.swing.JCheckBox
1052 private JCheckBox
getJCheckBox11() {
1053 if (jCheckBox11
== null) {
1054 jCheckBox11
= new JCheckBox();
1055 jCheckBox11
.setText("X64");
1056 jCheckBox11
.setPreferredSize(new java
.awt
.Dimension(47,20));
1062 * This method initializes jCheckBox12
1064 * @return javax.swing.JCheckBox
1066 private JCheckBox
getJCheckBox12() {
1067 if (jCheckBox12
== null) {
1068 jCheckBox12
= new JCheckBox();
1069 jCheckBox12
.setPreferredSize(new java
.awt
.Dimension(50,20));
1070 jCheckBox12
.setText("EBC");
1076 * This method initializes jCheckBox13
1078 * @return javax.swing.JCheckBox
1080 private JCheckBox
getJCheckBox13() {
1081 if (jCheckBox13
== null) {
1082 jCheckBox13
= new JCheckBox();
1083 jCheckBox13
.setPreferredSize(new java
.awt
.Dimension(55,20));
1084 jCheckBox13
.setText("ARM");
1090 * This method initializes jCheckBox14
1092 * @return javax.swing.JCheckBox
1094 private JCheckBox
getJCheckBox14() {
1095 if (jCheckBox14
== null) {
1096 jCheckBox14
= new JCheckBox();
1097 jCheckBox14
.setPreferredSize(new java
.awt
.Dimension(50,20));
1098 jCheckBox14
.setText("PPC");
1104 * This method initializes jTextField12
1106 * @return javax.swing.JTextField
1108 private JTextField
getJTextField12() {
1109 if (jTextField12
== null) {
1110 jTextField12
= new JTextField();
1111 jTextField12
.setPreferredSize(new java
.awt
.Dimension(150,20));
1113 return jTextField12
;
1117 * This method initializes jTextField13
1119 * @return javax.swing.JTextField
1121 private JTextField
getJTextField13() {
1122 if (jTextField13
== null) {
1123 jTextField13
= new JTextField();
1124 jTextField13
.setPreferredSize(new java
.awt
.Dimension(140,20));
1126 return jTextField13
;
1130 * This method initializes jScrollPane
1132 * @return javax.swing.JScrollPane
1134 private JScrollPane
getJScrollPane() {
1135 if (jScrollPane
== null) {
1136 jScrollPane
= new JScrollPane();
1137 jScrollPane
.setPreferredSize(new java
.awt
.Dimension(150,419));
1138 jScrollPane
.setViewportView(getJTable());
1144 * This method initializes jTable
1146 * @return javax.swing.JTable
1148 private JTable
getJTable() {
1149 if (jTable
== null) {
1150 ffsTableModel
= new DefaultTableModel();
1151 ffsTableModel
.addColumn("FFS Type");
1152 jTable
= new JTable(ffsTableModel
);
1153 jTable
.setShowGrid(false);
1154 jTable
.setRowHeight(20);
1156 jTable
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1157 jTable
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1158 public void valueChanged(ListSelectionEvent e
) {
1160 if (e
.getValueIsAdjusting()){
1163 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
1164 if (lsm
.isSelectionEmpty()) {
1168 int row
= lsm
.getMinSelectionIndex();
1169 sectionTableModel
.setRowCount(0);
1170 sectionsTableModel
.setRowCount(0);
1171 subsectionsTableModel
.setRowCount(0);
1172 ffsAttributesTableModel
.setRowCount(0);
1173 String
[] sArray
= {"", ""};
1174 LinkedHashMap
<String
, String
> lhm
= new LinkedHashMap
<String
, String
>();
1175 ArrayList
<String
> alSections
= new ArrayList
<String
>();
1176 ArrayList
<String
> alSection
= new ArrayList
<String
>();
1177 ffc
.getBuildOptionsFfs(row
, sArray
, lhm
, alSections
, alSection
);
1178 jTextField6
.setText(sArray
[0]);
1179 jTextField
.setText(sArray
[1]);
1180 for (int i
= 0; i
< alSection
.size(); ++i
) {
1181 String
[] sectionRow
= {alSection
.get(i
)};
1182 sectionTableModel
.addRow(sectionRow
);
1184 for (int j
= 0; j
< alSections
.size(); ++j
) {
1185 String
[] sectionsRow
= {alSections
.get(j
)};
1186 sectionsTableModel
.addRow(sectionsRow
);
1188 if (lhm
.size() <= 0 ) {
1191 Set
<String
> keySet
= lhm
.keySet();
1192 Iterator
<String
> is
= keySet
.iterator();
1193 while(is
.hasNext()) {
1194 String key
= is
.next();
1195 String
[] attribRow
= {key
, lhm
.get(key
)};
1196 ffsAttributesTableModel
.addRow(attribRow
);
1202 jTable
.getModel().addTableModelListener(new TableModelListener() {
1203 public void tableChanged(TableModelEvent arg0
) {
1204 // TODO Auto-generated method stub
1205 int row
= arg0
.getFirstRow();
1206 TableModel m
= (TableModel
)arg0
.getSource();
1207 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1208 //ToDo Data Validition check.
1209 String id
= m
.getValueAt(row
, 0) + "";
1211 if (id
.length() == 0) {
1215 // ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);
1225 * This method initializes jScrollPane1
1227 * @return javax.swing.JScrollPane
1229 private JScrollPane
getJScrollPane1() {
1230 if (jScrollPane1
== null) {
1231 jScrollPane1
= new JScrollPane();
1232 jScrollPane1
.setPreferredSize(new java
.awt
.Dimension(500,80));
1233 jScrollPane1
.setViewportView(getJTable1());
1235 return jScrollPane1
;
1239 * This method initializes jTable1
1241 * @return javax.swing.JTable
1243 private JTable
getJTable1() {
1244 if (jTable1
== null) {
1245 sectionTableModel
= new DefaultTableModel();
1246 sectionTableModel
.addColumn("SectionType");
1248 jTable1
= new JTable(sectionsTableModel
);
1254 * This method initializes jScrollPane3
1256 * @return javax.swing.JScrollPane
1258 private JScrollPane
getJScrollPane3() {
1259 if (jScrollPane3
== null) {
1260 jScrollPane3
= new JScrollPane();
1261 jScrollPane3
.setPreferredSize(new java
.awt
.Dimension(500,90));
1262 jScrollPane3
.setViewportView(getJTable3());
1264 return jScrollPane3
;
1268 * This method initializes jTable3
1270 * @return javax.swing.JTable
1272 private JTable
getJTable3() {
1273 if (jTable3
== null) {
1274 subsectionsTableModel
= new DefaultTableModel();
1275 subsectionsTableModel
.addColumn("SectionType");
1276 jTable3
= new JTable(subsectionsTableModel
);
1282 * This method initializes jTextField
1284 * @return javax.swing.JTextField
1286 private JTextField
getJTextField() {
1287 if (jTextField
== null) {
1288 jTextField
= new JTextField();
1289 jTextField
.setPreferredSize(new java
.awt
.Dimension(100,20));
1295 * This method initializes jPanel4
1297 * @return javax.swing.JPanel
1299 private JPanel
getJPanel4() {
1300 if (jPanel4
== null) {
1301 jPanel4
= new JPanel();
1302 jPanel4
.setPreferredSize(new java
.awt
.Dimension(100,100));
1303 jPanel4
.add(getJButton17(), null);
1304 jPanel4
.add(getJButton18(), null);
1310 * This method initializes jButton
1312 * @return javax.swing.JButton
1314 private JButton
getJButton() {
1315 if (jButton
== null) {
1316 jButton
= new JButton();
1317 jButton
.setPreferredSize(new java
.awt
.Dimension(80,20));
1318 jButton
.setText("New");
1324 * This method initializes jButton1
1326 * @return javax.swing.JButton
1328 private JButton
getJButton1() {
1329 if (jButton1
== null) {
1330 jButton1
= new JButton();
1331 jButton1
.setPreferredSize(new java
.awt
.Dimension(80,20));
1332 jButton1
.setText("Remove");
1338 * This method initializes jButton2
1340 * @return javax.swing.JButton
1342 private JButton
getJButton2() {
1343 if (jButton2
== null) {
1344 jButton2
= new JButton();
1345 jButton2
.setPreferredSize(new java
.awt
.Dimension(80,20));
1346 jButton2
.setText("New");
1352 * This method initializes jButton3
1354 * @return javax.swing.JButton
1356 private JButton
getJButton3() {
1357 if (jButton3
== null) {
1358 jButton3
= new JButton();
1359 jButton3
.setPreferredSize(new java
.awt
.Dimension(80,20));
1360 jButton3
.setText("Remove");
1366 * This method initializes jButton6
1368 * @return javax.swing.JButton
1370 private JButton
getJButton6() {
1371 if (jButton6
== null) {
1372 jButton6
= new JButton();
1373 jButton6
.setPreferredSize(new java
.awt
.Dimension(80,20));
1374 jButton6
.setText("New");
1380 * This method initializes jButton7
1382 * @return javax.swing.JButton
1384 private JButton
getJButton7() {
1385 if (jButton7
== null) {
1386 jButton7
= new JButton();
1387 jButton7
.setPreferredSize(new java
.awt
.Dimension(80,20));
1388 jButton7
.setText("Remove");
1394 * This method initializes jScrollPane4
1396 * @return javax.swing.JScrollPane
1398 private JScrollPane
getJScrollPane4() {
1399 if (jScrollPane4
== null) {
1400 jScrollPane4
= new JScrollPane();
1401 jScrollPane4
.setPreferredSize(new java
.awt
.Dimension(500,80));
1402 jScrollPane4
.setViewportView(getJTable6());
1404 return jScrollPane4
;
1408 * This method initializes jTable6
1410 * @return javax.swing.JTable
1412 private JTable
getJTable6() {
1413 if (jTable6
== null) {
1414 sectionsTableModel
= new DefaultTableModel();
1415 sectionsTableModel
.addColumn("EncapsulationType");
1416 jTable6
= new JTable(sectionsTableModel
);
1418 jTable6
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1419 jTable6
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1420 public void valueChanged(ListSelectionEvent e
) {
1421 if (e
.getValueIsAdjusting()){
1424 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
1425 if (lsm
.isSelectionEmpty()) {
1429 int sectionsRow
= lsm
.getMinSelectionIndex();
1430 if (jTable
.getSelectedRow() < 0) {
1433 subsectionsTableModel
.setRowCount(0);
1434 ArrayList
<String
> al
= new ArrayList
<String
>();
1435 ffc
.getBuildOptionsFfsSectionsSectionsSection(jTable
.getSelectedRow(), sectionsRow
, al
);
1436 for (int i
= 0; i
< al
.size(); ++i
) {
1437 String
[] subsectionRow
= {al
.get(i
)};
1438 subsectionsTableModel
.addRow(subsectionRow
);
1444 jTable6
.getModel().addTableModelListener(new TableModelListener() {
1445 public void tableChanged(TableModelEvent arg0
) {
1446 // TODO Auto-generated method stub
1447 int row
= arg0
.getFirstRow();
1448 TableModel m
= (TableModel
)arg0
.getSource();
1449 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1450 //ToDo Data Validition check.
1451 // String targetName = m.getValueAt(row, 0) + "";
1452 // String toolChain = m.getValueAt(row, 1) + "";
1453 // String supArch = m.getValueAt(row, 2) + "";
1454 // String toolCmd = m.getValueAt(row, 3) + "";
1455 // String tagName = m.getValueAt(row, 4) + "";
1456 // String contents = m.getValueAt(row, 5) + "";
1457 // ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);
1468 public static void main(String
[] args
) {
1469 // TODO Auto-generated method stub
1470 new FpdBuildOptions().setVisible(true);
1474 * This is the default constructor
1476 public FpdBuildOptions() {
1479 this.setVisible(true);
1482 public FpdBuildOptions(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
) {
1484 ffc
= new FpdFileContents(fpd
);
1488 private void init(FpdFileContents ffc
) {
1492 this.addInternalFrameListener(new InternalFrameAdapter(){
1493 public void internalFrameDeactivated(InternalFrameEvent e
){
1494 if (jTable
.isEditing()) {
1495 jTable
.getCellEditor().stopCellEditing();
1497 if (jTable1
.isEditing()) {
1498 jTable1
.getCellEditor().stopCellEditing();
1500 if (jTable2
.isEditing()) {
1501 jTable2
.getCellEditor().stopCellEditing();
1503 if (jTable3
.isEditing()) {
1504 jTable3
.getCellEditor().stopCellEditing();
1506 if (jTable4
.isEditing()) {
1507 jTable4
.getCellEditor().stopCellEditing();
1509 if (jTable5
.isEditing()) {
1510 jTable5
.getCellEditor().stopCellEditing();
1516 private void initOptionTable() {
1517 if (ffc
.getBuildOptionsOptCount() == 0) {
1518 //ToDo get default options from *.txt file
1521 String
[][] saa
= new String
[ffc
.getBuildOptionsOptCount()][6];
1522 ffc
.getBuildOptionsOpts(saa
);
1523 for (int i
= 0; i
< saa
.length
; ++i
) {
1524 optionsTableModel
.addRow(saa
[i
]);
1528 private void initAntTaskTable() {
1529 if (ffc
.getBuildOptionsUserDefAntTaskCount() == 0) {
1532 String
[][] saa
= new String
[ffc
.getBuildOptionsUserDefAntTaskCount()][3];
1533 ffc
.getBuildOptionsUserDefAntTasks(saa
);
1534 for (int i
= 0; i
< saa
.length
; ++i
) {
1535 antTaskTableModel
.addRow(saa
[i
]);
1539 private void initFfsTable(){
1540 int ffsCount
= ffc
.getBuildOptionsFfsCount();
1544 String
[][] saa
= new String
[ffsCount
][1];
1545 ffc
.getBuildOptionsFfsKey(saa
);
1546 for (int i
= 0; i
< saa
.length
; ++i
) {
1547 ffsTableModel
.addRow(saa
[i
]);
1551 * This method initializes this
1555 private void initialize() {
1556 this.setSize(722, 577);
1557 this.setTitle("FPD Build Options");
1558 this.setContentPane(getJContentPane());
1562 * This method initializes jContentPane
1564 * @return javax.swing.JPanel
1566 private JPanel
getJContentPane() {
1567 if (jContentPane
== null) {
1568 jContentPane
= new JPanel();
1569 jContentPane
.setLayout(new BorderLayout());
1570 jContentPane
.add(getJPanel(), java
.awt
.BorderLayout
.SOUTH
);
1571 jContentPane
.add(getJPanel1(), java
.awt
.BorderLayout
.NORTH
);
1572 jContentPane
.add(getJPanel2(), java
.awt
.BorderLayout
.WEST
);
1573 jContentPane
.add(getJPanel3(), java
.awt
.BorderLayout
.EAST
);
1574 jContentPane
.add(getJTabbedPane(), java
.awt
.BorderLayout
.CENTER
);
1576 return jContentPane
;
1579 } // @jve:decl-index=0:visual-constraint="10,10"