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
;
19 import javax
.swing
.JPanel
;
20 import javax
.swing
.JTabbedPane
;
21 import javax
.swing
.JCheckBox
;
22 import javax
.swing
.JLabel
;
23 import java
.awt
.FlowLayout
;
24 import javax
.swing
.AbstractAction
;
25 import java
.awt
.event
.ActionEvent
;
26 import java
.awt
.event
.ActionListener
;
28 import javax
.swing
.DefaultCellEditor
;
29 import javax
.swing
.JFileChooser
;
30 import javax
.swing
.JFrame
;
31 import javax
.swing
.JOptionPane
;
32 import javax
.swing
.JTextField
;
33 import javax
.swing
.JButton
;
34 import javax
.swing
.JScrollPane
;
35 import javax
.swing
.JTable
;
36 import javax
.swing
.JComboBox
;
37 import javax
.swing
.ListSelectionModel
;
38 import javax
.swing
.event
.InternalFrameAdapter
;
39 import javax
.swing
.event
.InternalFrameEvent
;
40 import javax
.swing
.event
.ListSelectionEvent
;
41 import javax
.swing
.event
.ListSelectionListener
;
42 import javax
.swing
.event
.TableModelEvent
;
43 import javax
.swing
.event
.TableModelListener
;
44 import javax
.swing
.table
.DefaultTableModel
;
45 import javax
.swing
.table
.TableModel
;
47 import org
.tianocore
.PlatformSurfaceAreaDocument
;
48 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
49 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
50 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
53 import java
.util
.ArrayList
;
54 import java
.util
.Iterator
;
55 import java
.util
.LinkedHashMap
;
57 import java
.util
.Vector
;
58 import java
.awt
.Dimension
;
60 public class FpdBuildOptions
extends IInternalFrame
{
62 private static final long serialVersionUID
= 1L;
64 private JPanel jContentPane
= null;
65 private JPanel jPanelContentSouth
= null;
66 private JPanel jPanelContentNorth
= null;
67 private JPanel jPanelContentWest
= null;
68 private JPanel jPanelContentEast
= null;
69 private JTabbedPane jTabbedPane
= null;
70 private JPanel jPanelUserDef
= null;
71 private JPanel jPanelUserDefNorth
= null;
72 private JPanel jPanelUserDefCenter
= null;
73 private JTextField jTextFieldAntTaskFile
= null;
74 private JLabel jLabelAntTaskId
= null;
75 private JTextField jTextFieldAntTaskId
= null;
76 private JButton jButtonAntTaskAdd
= null;
77 private JButton jButtonAntTaskDel
= null;
78 private JTextField jTextFieldAntCmdOpts
= null;
79 private JScrollPane jScrollPaneAntTasks
= null;
80 private JTable jTableAntTasks
= 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 jPanelFfsTab
= null;
89 private JPanel jPanelFfsTabCenter
= null;
90 private JPanel jPanelFfsTabCenterN
= null;
91 private JPanel jPanelFfsTabCenterS
= null;
92 private JPanel jPanelFfsTabCenterE
= null;
93 private JLabel jLabelFfsKey
= null;
94 private JTextField jTextFieldFfsKey
= null;
95 private JButton jButtonFfsAdd
= null;
96 private JButton jButtonFfsDel
= null;
97 private JScrollPane jScrollPaneFfsAttribs
= null;
98 private JTable jTableFfsAttribs
= null;
99 private JPanel jPanelFfsTabCenterC
= null;
100 private JPanel jPanelOptionsTab
= null;
101 private JLabel jLabelOptionContents
= null;
102 private JTextField jTextFieldOptionContents
= null;
103 private JLabel jLabelToolChainFamily
= null;
104 private JLabel jLabelSupArch
= null;
105 private JLabel jLabelToolCmd
= null;
106 private JTextField jTextFieldToolCmd
= null;
107 private JScrollPane jScrollPaneOptions
= null;
108 private JTable jTableOptions
= null;
109 private JButton jButtonOptionsAdd
= null;
110 private JButton jButtonOptionsDel
= null;
111 private JButton jButtonFfsAttribNew
= null;
112 private JButton jButtonFfsAttribRemove
= null;
113 private FpdFileContents ffc
= null;
114 private OpeningPlatformType docConsole
= null;
115 private JCheckBox jCheckBoxIA32
= null;
116 private JCheckBox jCheckBoxIpf
= null;
117 private JCheckBox jCheckBoxX64
= null;
118 private JCheckBox jCheckBoxEBC
= null;
119 private JCheckBox jCheckBoxARM
= null;
120 private JCheckBox jCheckBoxPPC
= null;
121 private JLabel jLabelBuildTargets
= null;
122 private JTextField jTextFieldBuildTargets
= null;
123 private JTextField jTextFieldTagName
= null;
124 private JLabel jLabelTagName
= null;
125 private int selectedRow
= -1;
126 private JLabel jLabelAntTaskFile
= null;
127 private JLabel jLabelAntCmdOpts
= null;
128 private JScrollPane jScrollPaneFfs
= null;
129 private JTable jTableFfs
= null;
130 private JLabel jLabelFfsSection
= null;
131 private JScrollPane jScrollPaneFfsSection
= null;
132 private JTable jTableFfsSection
= null;
133 private JLabel jLabelFfsSubSections
= null;
134 private JScrollPane jScrollPaneFfsSubSection
= null;
135 private JTable jTableFfsSubSection
= null;
136 private JLabel jLabelEncapType
= null;
137 private JTextField jTextFieldEncapType
= null;
138 private JPanel jPanelFfsAttribButtonGroup
= null;
139 private JLabel jLabelFfsAttribs
= null;
140 private JButton jButtonFfsSectionNew
= null;
141 private JButton jButtonFfsSectionRemove
= null;
142 private JButton jButtonFfsSubSectionNew
= null;
143 private JButton jButtonFfsSubSectionRemove
= null;
144 private JLabel jLabelFfsSections
= null;
145 private JButton jButtonFfsSectionsNew
= null;
146 private JButton jButtonFfsSectionsRemove
= null;
147 private JScrollPane jScrollPaneFfsSections
= null;
148 private JTable jTableFfsSections
= null;
149 private JButton jButtonAntTaskFileBrowse
= null;
150 private JTextField jTextFieldToolChainFamily
= null;
152 * This method initializes jPanel
154 * @return javax.swing.JPanel
156 private JPanel
getJPanelContentSouth() {
157 if (jPanelContentSouth
== null) {
158 jPanelContentSouth
= new JPanel();
160 return jPanelContentSouth
;
164 * This method initializes jPanel1
166 * @return javax.swing.JPanel
168 private JPanel
getJPanelContentNorth() {
169 if (jPanelContentNorth
== null) {
170 jPanelContentNorth
= new JPanel();
172 return jPanelContentNorth
;
176 * This method initializes jPanel2
178 * @return javax.swing.JPanel
180 private JPanel
getJPanelContentWest() {
181 if (jPanelContentWest
== null) {
182 jPanelContentWest
= new JPanel();
184 return jPanelContentWest
;
188 * This method initializes jPanel3
190 * @return javax.swing.JPanel
192 private JPanel
getJPanelContentEast() {
193 if (jPanelContentEast
== null) {
194 jPanelContentEast
= new JPanel();
196 return jPanelContentEast
;
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, getJPanelFfsTab(), null);
208 jTabbedPane
.addTab("Options", null, getJPanelOptionsTab(), null);
209 jTabbedPane
.addTab("User Defined ANT Tasks", null, getJPanelUserDef(), null);
216 * This method initializes jPanel8
218 * @return javax.swing.JPanel
220 private JPanel
getJPanelUserDef() {
221 if (jPanelUserDef
== null) {
222 jPanelUserDef
= new JPanel();
223 jPanelUserDef
.setLayout(new BorderLayout());
224 jPanelUserDef
.add(getJPanelUserDefNorth(), java
.awt
.BorderLayout
.NORTH
);
225 jPanelUserDef
.add(getJPanelUserDefCenter(), java
.awt
.BorderLayout
.CENTER
);
228 return jPanelUserDef
;
232 * This method initializes jPanel9
234 * @return javax.swing.JPanel
236 private JPanel
getJPanelUserDefNorth() {
237 if (jPanelUserDefNorth
== null) {
238 jLabelAntTaskFile
= new JLabel();
239 jLabelAntTaskFile
.setText("ANT Task File");
240 jLabelAntTaskFile
.setPreferredSize(new java
.awt
.Dimension(80,20));
241 FlowLayout flowLayout8
= new FlowLayout();
242 flowLayout8
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
243 jLabelAntTaskId
= new JLabel();
244 jLabelAntTaskId
.setText("ID");
245 jPanelUserDefNorth
= new JPanel();
246 jPanelUserDefNorth
.setLayout(flowLayout8
);
247 jPanelUserDefNorth
.add(jLabelAntTaskFile
, null);
248 jPanelUserDefNorth
.add(getJTextFieldAntTaskFile(), null);
249 jPanelUserDefNorth
.add(getJButtonAntTaskFileBrowse(), null);
250 jPanelUserDefNorth
.add(jLabelAntTaskId
, null);
251 jPanelUserDefNorth
.add(getJTextFieldAntTaskId(), null);
253 return jPanelUserDefNorth
;
257 * This method initializes jPanel11
259 * @return javax.swing.JPanel
261 private JPanel
getJPanelUserDefCenter() {
262 if (jPanelUserDefCenter
== null) {
263 jLabelAntCmdOpts
= new JLabel();
264 jLabelAntCmdOpts
.setText("ANT Command Options");
265 jLabelAntCmdOpts
.setPreferredSize(new java
.awt
.Dimension(131,20));
266 FlowLayout flowLayout3
= new FlowLayout();
267 flowLayout3
.setHgap(5);
268 flowLayout3
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
269 jPanelUserDefCenter
= new JPanel();
270 jPanelUserDefCenter
.setLayout(flowLayout3
);
271 jPanelUserDefCenter
.add(jLabelAntCmdOpts
, null);
272 jPanelUserDefCenter
.add(getJTextField4(), null);
273 jPanelUserDefCenter
.add(getJButtonAntTaskAdd(), null);
274 jPanelUserDefCenter
.add(getJButtonAntTaskDel(), null);
275 jPanelUserDefCenter
.add(getJScrollPaneAntTasks(), null);
277 return jPanelUserDefCenter
;
281 * This method initializes jTextField2
283 * @return javax.swing.JTextField
285 private JTextField
getJTextFieldAntTaskFile() {
286 if (jTextFieldAntTaskFile
== null) {
287 jTextFieldAntTaskFile
= new JTextField();
288 jTextFieldAntTaskFile
.setPreferredSize(new java
.awt
.Dimension(200,20));
290 return jTextFieldAntTaskFile
;
294 * This method initializes jTextField3
296 * @return javax.swing.JTextField
298 private JTextField
getJTextFieldAntTaskId() {
299 if (jTextFieldAntTaskId
== null) {
300 jTextFieldAntTaskId
= new JTextField();
301 jTextFieldAntTaskId
.setPreferredSize(new java
.awt
.Dimension(100,20));
303 return jTextFieldAntTaskId
;
307 * This method initializes jButton4
309 * @return javax.swing.JButton
311 private JButton
getJButtonAntTaskAdd() {
312 if (jButtonAntTaskAdd
== null) {
313 jButtonAntTaskAdd
= new JButton();
314 jButtonAntTaskAdd
.setPreferredSize(new java
.awt
.Dimension(90,20));
315 jButtonAntTaskAdd
.setText("Add");
316 jButtonAntTaskAdd
.addActionListener(new ActionListener() {
317 public void actionPerformed(ActionEvent e
) {
318 if (!DataValidation
.isInt(jTextFieldAntTaskId
.getText()) || jTextFieldAntTaskId
.getText().length() != 8) {
319 JOptionPane
.showMessageDialog(frame
, "ID must be an 8-digit integer.");
322 Object
[] o
= {jTextFieldAntTaskId
.getText(), null, null};
323 o
[1] = jTextFieldAntTaskFile
.getText();
324 o
[2] = jTextFieldAntCmdOpts
.getText();
325 ffc
.genBuildOptionsUserDefAntTask(o
[0]+"", o
[1]+"", o
[2]+"");
326 antTaskTableModel
.addRow(o
);
327 docConsole
.setSaved(false);
331 return jButtonAntTaskAdd
;
335 * This method initializes jButton5
337 * @return javax.swing.JButton
339 private JButton
getJButtonAntTaskDel() {
340 if (jButtonAntTaskDel
== null) {
341 jButtonAntTaskDel
= new JButton();
342 jButtonAntTaskDel
.setPreferredSize(new java
.awt
.Dimension(90,20));
343 jButtonAntTaskDel
.setText("Delete");
344 jButtonAntTaskDel
.addActionListener(new ActionListener() {
345 public void actionPerformed(ActionEvent e
) {
346 if (selectedRow
>= 0) {
347 docConsole
.setSaved(false);
348 antTaskTableModel
.removeRow(selectedRow
);
349 ffc
.removeBuildOptionsUserDefAntTask(selectedRow
);
354 return jButtonAntTaskDel
;
358 * This method initializes jTextField4
360 * @return javax.swing.JTextField
362 private JTextField
getJTextField4() {
363 if (jTextFieldAntCmdOpts
== null) {
364 jTextFieldAntCmdOpts
= new JTextField();
365 jTextFieldAntCmdOpts
.setPreferredSize(new java
.awt
.Dimension(270,20));
366 jTextFieldAntCmdOpts
.setEnabled(true);
368 return jTextFieldAntCmdOpts
;
372 * This method initializes jScrollPane2
374 * @return javax.swing.JScrollPane
376 private JScrollPane
getJScrollPaneAntTasks() {
377 if (jScrollPaneAntTasks
== null) {
378 jScrollPaneAntTasks
= new JScrollPane();
379 jScrollPaneAntTasks
.setPreferredSize(new java
.awt
.Dimension(600,100));
380 jScrollPaneAntTasks
.setViewportView(getJTableAntTasks());
382 return jScrollPaneAntTasks
;
386 * This method initializes jTable2
388 * @return javax.swing.JTable
390 private JTable
getJTableAntTasks() {
391 if (jTableAntTasks
== null) {
392 antTaskTableModel
= new DefaultTableModel();
393 jTableAntTasks
= new JTable(antTaskTableModel
);
394 jTableAntTasks
.setRowHeight(20);
395 antTaskTableModel
.addColumn("ID");
396 antTaskTableModel
.addColumn("Filename");
397 antTaskTableModel
.addColumn("ANT Command Options");
399 jTableAntTasks
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
400 jTableAntTasks
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
401 public void valueChanged(ListSelectionEvent e
) {
403 if (e
.getValueIsAdjusting()){
406 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
407 if (lsm
.isSelectionEmpty()) {
411 selectedRow
= lsm
.getMinSelectionIndex();
416 jTableAntTasks
.getModel().addTableModelListener(new TableModelListener() {
417 public void tableChanged(TableModelEvent arg0
) {
418 // TODO Auto-generated method stub
419 int row
= arg0
.getFirstRow();
420 TableModel m
= (TableModel
)arg0
.getSource();
421 if (arg0
.getType() == TableModelEvent
.UPDATE
){
422 //ToDo Data Validition check.
423 String id
= m
.getValueAt(row
, 0) + "";
424 String file
= m
.getValueAt(row
, 1) + "";
425 String execOrder
= m
.getValueAt(row
, 2) + "";
426 if (id
.length() == 0) {
429 if (file
.length() == 0 && execOrder
.length() == 0){
432 if (file
.length() == 0) {
435 if (execOrder
.length() == 0) {
438 ffc
.updateBuildOptionsUserDefAntTask(row
, id
, file
, execOrder
);
444 return jTableAntTasks
;
448 * This method initializes jPanel13
450 * @return javax.swing.JPanel
452 private JPanel
getJPanelFfsTab() {
453 if (jPanelFfsTab
== null) {
454 jPanelFfsTab
= new JPanel();
455 jPanelFfsTab
.setLayout(new BorderLayout());
456 jPanelFfsTab
.add(getJPanelFfsTabCenter(), java
.awt
.BorderLayout
.CENTER
);
457 jPanelFfsTab
.add(getJScrollPaneFfs(), java
.awt
.BorderLayout
.WEST
);
463 * This method initializes jPanel18
465 * @return javax.swing.JPanel
467 private JPanel
getJPanelFfsTabCenter() {
468 if (jPanelFfsTabCenter
== null) {
469 jPanelFfsTabCenter
= new JPanel();
470 jPanelFfsTabCenter
.setLayout(new BorderLayout());
471 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterN(), java
.awt
.BorderLayout
.NORTH
);
472 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterS(), java
.awt
.BorderLayout
.SOUTH
);
473 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterE(), java
.awt
.BorderLayout
.EAST
);
474 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterC(), java
.awt
.BorderLayout
.CENTER
);
476 return jPanelFfsTabCenter
;
480 * This method initializes jPanel15
482 * @return javax.swing.JPanel
484 private JPanel
getJPanelFfsTabCenterN() {
485 if (jPanelFfsTabCenterN
== null) {
486 jLabelEncapType
= new JLabel();
487 jLabelEncapType
.setText("Encapsulation Type");
488 FlowLayout flowLayout5
= new FlowLayout();
489 flowLayout5
.setAlignment(java
.awt
.FlowLayout
.RIGHT
);
490 jLabelFfsKey
= new JLabel();
491 jLabelFfsKey
.setText("FFS Key");
492 jPanelFfsTabCenterN
= new JPanel();
493 jPanelFfsTabCenterN
.setLayout(flowLayout5
);
494 jPanelFfsTabCenterN
.add(jLabelFfsKey
, null);
495 jPanelFfsTabCenterN
.add(getJTextFieldFfsKey(), null);
496 jPanelFfsTabCenterN
.add(jLabelEncapType
, null);
497 jPanelFfsTabCenterN
.add(getJTextFieldEncapType(), null);
498 jPanelFfsTabCenterN
.add(getJButtonFfsAdd(), null);
499 jPanelFfsTabCenterN
.add(getJButtonFfsDel(), null);
501 return jPanelFfsTabCenterN
;
505 * This method initializes jPanel16
507 * @return javax.swing.JPanel
509 private JPanel
getJPanelFfsTabCenterS() {
510 if (jPanelFfsTabCenterS
== null) {
511 jLabelFfsAttribs
= new JLabel();
512 jLabelFfsAttribs
.setText("Attributes");
513 FlowLayout flowLayout6
= new FlowLayout();
514 flowLayout6
.setHgap(5);
515 flowLayout6
.setVgap(20);
516 flowLayout6
.setAlignment(java
.awt
.FlowLayout
.CENTER
);
517 jPanelFfsTabCenterS
= new JPanel();
518 jPanelFfsTabCenterS
.setPreferredSize(new java
.awt
.Dimension(491,130));
519 jPanelFfsTabCenterS
.setLayout(flowLayout6
);
520 jPanelFfsTabCenterS
.add(jLabelFfsAttribs
, null);
521 jPanelFfsTabCenterS
.add(getJScrollPaneFfsAttribs(), null);
522 jPanelFfsTabCenterS
.add(getJPanelFfsAttribButtonGroup(), null);
524 return jPanelFfsTabCenterS
;
528 * This method initializes jPanel17
530 * @return javax.swing.JPanel
532 private JPanel
getJPanelFfsTabCenterE() {
533 if (jPanelFfsTabCenterE
== null) {
534 jPanelFfsTabCenterE
= new JPanel();
536 return jPanelFfsTabCenterE
;
540 * This method initializes jTextField6
542 * @return javax.swing.JTextField
544 private JTextField
getJTextFieldFfsKey() {
545 if (jTextFieldFfsKey
== null) {
546 jTextFieldFfsKey
= new JTextField();
547 jTextFieldFfsKey
.setPreferredSize(new java
.awt
.Dimension(100,20));
548 jTextFieldFfsKey
.setEditable(true);
549 jTextFieldFfsKey
.addFocusListener(new java
.awt
.event
.FocusAdapter() {
550 public void focusLost(java
.awt
.event
.FocusEvent e
) {
551 if (jTableFfs
.getSelectedRow() < 0) {
554 // ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());
558 return jTextFieldFfsKey
;
562 * This method initializes jButton8
564 * @return javax.swing.JButton
566 private JButton
getJButtonFfsAdd() {
567 if (jButtonFfsAdd
== null) {
568 jButtonFfsAdd
= new JButton();
569 jButtonFfsAdd
.setPreferredSize(new java
.awt
.Dimension(70,20));
570 jButtonFfsAdd
.setText("Add");
571 jButtonFfsAdd
.addActionListener(new AbstractAction() {
575 private static final long serialVersionUID
= -2923720717273384221L;
577 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
578 if (jTextFieldFfsKey
.getText().length() > 0) {
579 String
[] row
= {jTextFieldFfsKey
.getText()};
580 ffsTableModel
.addRow(row
);
581 docConsole
.setSaved(false);
582 ffc
.genBuildOptionsFfs(jTextFieldFfsKey
.getText(), jTextFieldEncapType
.getText());
587 return jButtonFfsAdd
;
591 * This method initializes jButton9
593 * @return javax.swing.JButton
595 private JButton
getJButtonFfsDel() {
596 if (jButtonFfsDel
== null) {
597 jButtonFfsDel
= new JButton();
598 jButtonFfsDel
.setPreferredSize(new java
.awt
.Dimension(70,20));
599 jButtonFfsDel
.setText("Delete");
600 jButtonFfsDel
.addActionListener(new AbstractAction() {
604 private static final long serialVersionUID
= -4002678939178194476L;
606 public void actionPerformed(ActionEvent arg0
){
607 if (jTableFfs
.getSelectedRow() < 0) {
610 docConsole
.setSaved(false);
611 ffc
.removeBuildOptionsFfs(jTableFfs
.getSelectedRow());
615 return jButtonFfsDel
;
619 * This method initializes jScrollPane5
621 * @return javax.swing.JScrollPane
623 private JScrollPane
getJScrollPaneFfsAttribs() {
624 if (jScrollPaneFfsAttribs
== null) {
625 jScrollPaneFfsAttribs
= new JScrollPane();
626 jScrollPaneFfsAttribs
.setPreferredSize(new java
.awt
.Dimension(350,100));
627 jScrollPaneFfsAttribs
.setViewportView(getJTableFfsAttribs());
629 return jScrollPaneFfsAttribs
;
633 * This method initializes jTable4
635 * @return javax.swing.JTable
637 private JTable
getJTableFfsAttribs() {
638 if (jTableFfsAttribs
== null) {
639 ffsAttributesTableModel
= new DefaultTableModel();
640 jTableFfsAttribs
= new JTable(ffsAttributesTableModel
);
641 jTableFfsAttribs
.setPreferredSize(new java
.awt
.Dimension(400,80));
642 jTableFfsAttribs
.setRowHeight(20);
643 ffsAttributesTableModel
.addColumn("Name");
644 ffsAttributesTableModel
.addColumn("Value");
646 jTableFfsAttribs
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
647 jTableFfsAttribs
.getModel().addTableModelListener(new TableModelListener() {
648 public void tableChanged(TableModelEvent arg0
) {
649 // TODO Auto-generated method stub
650 int row
= arg0
.getFirstRow();
651 TableModel m
= (TableModel
)arg0
.getSource();
652 if (arg0
.getType() == TableModelEvent
.UPDATE
){
653 //ToDo Data Validition check.
654 String name
= m
.getValueAt(row
, 0) + "";
655 String value
= m
.getValueAt(row
, 1) + "";
657 if (name
.length() == 0) {
660 if (value
.length() == 0){
663 docConsole
.setSaved(false);
664 ffc
.updateBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(), row
, name
, value
);
669 return jTableFfsAttribs
;
673 * This method initializes jPanel19
675 * @return javax.swing.JPanel
677 private JPanel
getJPanelFfsTabCenterC() {
678 if (jPanelFfsTabCenterC
== null) {
679 jLabelFfsSections
= new JLabel();
680 jLabelFfsSections
.setText("Sections");
681 jLabelFfsSubSections
= new JLabel();
682 jLabelFfsSubSections
.setText("Sub-Sections");
683 jLabelFfsSection
= new JLabel();
684 jLabelFfsSection
.setText("Section");
685 jPanelFfsTabCenterC
= new JPanel();
686 jPanelFfsTabCenterC
.setLayout(new FlowLayout());
687 jPanelFfsTabCenterC
.add(jLabelFfsSection
, null);
688 jPanelFfsTabCenterC
.add(getJButtonFfsSectionNew(), null);
689 jPanelFfsTabCenterC
.add(getJButtonFfsSectionRemove(), null);
690 jPanelFfsTabCenterC
.add(getJScrollPaneFfsSection(), null);
691 jPanelFfsTabCenterC
.add(jLabelFfsSections
, null);
692 jPanelFfsTabCenterC
.add(getJButtonFfsSectionsNew(), null);
693 jPanelFfsTabCenterC
.add(getJButtonFfsSectionsRemove(), null);
694 jPanelFfsTabCenterC
.add(getJScrollPaneFfsSections(), null);
695 jPanelFfsTabCenterC
.add(jLabelFfsSubSections
, null);
696 jPanelFfsTabCenterC
.add(getJButtonFfsSubSectionNew(), null);
697 jPanelFfsTabCenterC
.add(getJButtonFfsSubSectionRemove(), null);
698 jPanelFfsTabCenterC
.add(getJScrollPaneFfsSubSection(), null);
700 return jPanelFfsTabCenterC
;
704 * This method initializes jPanel20
706 * @return javax.swing.JPanel
708 private JPanel
getJPanelOptionsTab() {
709 if (jPanelOptionsTab
== null) {
710 jLabelTagName
= new JLabel();
711 jLabelTagName
.setText("Tag Name");
712 FlowLayout flowLayout9
= new FlowLayout();
713 flowLayout9
.setAlignment(java
.awt
.FlowLayout
.LEFT
);
714 jLabelBuildTargets
= new JLabel();
715 jLabelBuildTargets
.setText("Build Targets");
716 jLabelToolCmd
= new JLabel();
717 jLabelToolCmd
.setText("Tool Command");
718 jLabelSupArch
= new JLabel();
719 jLabelSupArch
.setText("Supported Arch");
720 jLabelToolChainFamily
= new JLabel();
721 jLabelToolChainFamily
.setText("Tool Chain Family");
722 jLabelOptionContents
= new JLabel();
723 jLabelOptionContents
.setText("Option Contents");
724 jPanelOptionsTab
= new JPanel();
725 jPanelOptionsTab
.setLayout(flowLayout9
);
726 jPanelOptionsTab
.add(jLabelBuildTargets
, null);
727 jPanelOptionsTab
.add(getJTextFieldBuildTargets(), null);
728 jPanelOptionsTab
.add(jLabelToolChainFamily
, null);
729 jPanelOptionsTab
.add(getJTextFieldToolChainFamily(), null);
730 jPanelOptionsTab
.add(jLabelToolCmd
, null);
731 jPanelOptionsTab
.add(getJTextFieldToolCmd(), null);
732 jPanelOptionsTab
.add(jLabelSupArch
, null);
733 jPanelOptionsTab
.add(getJCheckBoxIA32(), null);
734 jPanelOptionsTab
.add(getJCheckBoxIpf(), null);
735 jPanelOptionsTab
.add(getJCheckBoxX64(), null);
736 jPanelOptionsTab
.add(getJCheckBoxEBC(), null);
737 jPanelOptionsTab
.add(getJCheckBoxARM(), null);
738 jPanelOptionsTab
.add(getJCheckBoxPPC(), null);
739 jPanelOptionsTab
.add(jLabelTagName
, null);
740 jPanelOptionsTab
.add(getJTextFieldTagName(), null);
741 jPanelOptionsTab
.add(jLabelOptionContents
, null);
742 jPanelOptionsTab
.add(getJTextFieldOptionContents(), null);
743 jPanelOptionsTab
.add(getJButtonOptionsAdd(), null);
744 jPanelOptionsTab
.add(getJButtonOptionsDel(), null);
745 jPanelOptionsTab
.add(getJScrollPaneOptions(), null);
747 return jPanelOptionsTab
;
751 * This method initializes jTextField7
753 * @return javax.swing.JTextField
755 private JTextField
getJTextFieldOptionContents() {
756 if (jTextFieldOptionContents
== null) {
757 jTextFieldOptionContents
= new JTextField();
758 jTextFieldOptionContents
.setPreferredSize(new java
.awt
.Dimension(300,20));
760 return jTextFieldOptionContents
;
764 * This method initializes jTextField8
766 * @return javax.swing.JTextField
768 private JTextField
getJTextFieldToolCmd() {
769 if (jTextFieldToolCmd
== null) {
770 jTextFieldToolCmd
= new JTextField();
771 jTextFieldToolCmd
.setPreferredSize(new java
.awt
.Dimension(110,20));
773 return jTextFieldToolCmd
;
777 * This method initializes jScrollPane6
779 * @return javax.swing.JScrollPane
781 private JScrollPane
getJScrollPaneOptions() {
782 if (jScrollPaneOptions
== null) {
783 jScrollPaneOptions
= new JScrollPane();
784 jScrollPaneOptions
.setPreferredSize(new java
.awt
.Dimension(630,200));
785 jScrollPaneOptions
.setViewportView(getJTableOptions());
787 return jScrollPaneOptions
;
791 * This method initializes jTable5
793 * @return javax.swing.JTable
795 private JTable
getJTableOptions() {
796 if (jTableOptions
== null) {
797 optionsTableModel
= new DefaultTableModel();
798 jTableOptions
= new JTable(optionsTableModel
);
799 jTableOptions
.setRowHeight(20);
800 optionsTableModel
.addColumn("BuildTargets");
801 optionsTableModel
.addColumn("ToolChainFamily");
802 optionsTableModel
.addColumn("SupportedArch");
803 optionsTableModel
.addColumn("ToolCommand");
804 optionsTableModel
.addColumn("TagName");
805 optionsTableModel
.addColumn("Contents");
807 // TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);
808 // JComboBox cb = new JComboBox();
809 // cb.addItem("MSFT");
810 // cb.addItem("GCC");
811 // cb.addItem("CYGWIN");
812 // cb.addItem("INTEL");
813 // toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));
814 Vector
<String
> vArch
= new Vector
<String
>();
821 jTableOptions
.getColumnModel().getColumn(2).setCellEditor(new ListEditor(vArch
));
822 jTableOptions
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
823 jTableOptions
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
824 public void valueChanged(ListSelectionEvent e
) {
826 if (e
.getValueIsAdjusting()){
829 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
830 if (lsm
.isSelectionEmpty()) {
834 selectedRow
= lsm
.getMinSelectionIndex();
839 jTableOptions
.getModel().addTableModelListener(new TableModelListener() {
840 public void tableChanged(TableModelEvent arg0
) {
841 // TODO Auto-generated method stub
842 int row
= arg0
.getFirstRow();
843 TableModel m
= (TableModel
)arg0
.getSource();
844 if (arg0
.getType() == TableModelEvent
.UPDATE
){
845 //ToDo Data Validition check.
846 String targets
= m
.getValueAt(row
, 0) + "";
847 Vector
<Object
> targetName
= new Vector
<Object
>();
848 String
[] sArray
= targets
.split("( )+");
849 for (int i
= 0; i
< sArray
.length
; ++i
) {
850 targetName
.add(sArray
[i
]);
852 String toolChain
= m
.getValueAt(row
, 1) + "";
853 String archs
= m
.getValueAt(row
, 2) + "";
854 Vector
<Object
> supArch
= null;
855 if (archs
.length() > 0) {
856 supArch
= new Vector
<Object
>();
857 String
[] sArray1
= archs
.split("( )+");
858 for (int i
= 0; i
< sArray1
.length
; ++i
) {
859 supArch
.add(sArray1
[i
]);
863 String toolCmd
= m
.getValueAt(row
, 3) + "";
864 String tagName
= m
.getValueAt(row
, 4) + "";
865 String contents
= m
.getValueAt(row
, 5) + "";
866 docConsole
.setSaved(false);
867 ffc
.updateBuildOptionsOpt(row
, targetName
, toolChain
, tagName
, toolCmd
, supArch
, contents
);
872 return jTableOptions
;
876 * This method initializes jButton10
878 * @return javax.swing.JButton
880 private JButton
getJButtonOptionsAdd() {
881 if (jButtonOptionsAdd
== null) {
882 jButtonOptionsAdd
= new JButton();
883 jButtonOptionsAdd
.setText("Add");
884 jButtonOptionsAdd
.setPreferredSize(new java
.awt
.Dimension(90,20));
885 jButtonOptionsAdd
.addActionListener(new AbstractAction() {
889 private static final long serialVersionUID
= 1L;
891 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
892 boolean[] boolArray
= {jCheckBoxIA32
.isSelected(),jCheckBoxIpf
.isSelected(),jCheckBoxX64
.isSelected(),
893 jCheckBoxEBC
.isSelected(),jCheckBoxARM
.isSelected(),jCheckBoxPPC
.isSelected()};
894 String s
= boolToList(boolArray
);
895 Object
[] o
= {jTextFieldBuildTargets
.getText(), jTextFieldToolChainFamily
.getText(), s
,
896 jTextFieldToolCmd
.getText(), jTextFieldTagName
.getText(), jTextFieldOptionContents
.getText()};
897 optionsTableModel
.addRow(o
);
898 docConsole
.setSaved(false);
899 ffc
.genBuildOptionsOpt(stringToVector(jTextFieldBuildTargets
.getText()), jTextFieldToolChainFamily
.getText(), jTextFieldTagName
.getText(), jTextFieldToolCmd
.getText(), stringToVector(s
), jTextFieldOptionContents
.getText());
903 return jButtonOptionsAdd
;
906 private Vector
<Object
> stringToVector(String s
) {
907 String
[] sArray
= s
.split(" ");
908 Vector
<Object
> v
= null;
909 if (s
.length() > 0) {
910 v
= new Vector
<Object
>();
911 for (int i
= 0; i
< sArray
.length
; ++i
) {
918 private String
boolToList (boolean[] bool
) {
945 * This method initializes jButton11
947 * @return javax.swing.JButton
949 private JButton
getJButtonOptionsDel() {
950 if (jButtonOptionsDel
== null) {
951 jButtonOptionsDel
= new JButton();
952 jButtonOptionsDel
.setText("Delete");
953 jButtonOptionsDel
.setPreferredSize(new java
.awt
.Dimension(90,20));
954 jButtonOptionsDel
.addActionListener(new AbstractAction() {
958 private static final long serialVersionUID
= 1L;
960 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
961 if (selectedRow
>= 0) {
962 optionsTableModel
.removeRow(selectedRow
);
963 docConsole
.setSaved(false);
964 ffc
.removeBuildOptionsOpt(selectedRow
);
969 return jButtonOptionsDel
;
973 * This method initializes jButton17
975 * @return javax.swing.JButton
977 private JButton
getJButtonFfsAttribNew() {
978 if (jButtonFfsAttribNew
== null) {
979 jButtonFfsAttribNew
= new JButton();
980 jButtonFfsAttribNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
981 jButtonFfsAttribNew
.setText("New");
982 jButtonFfsAttribNew
.addActionListener(new AbstractAction() {
986 private static final long serialVersionUID
= 1L;
988 public void actionPerformed(ActionEvent arg0
){
989 if (jTableFfs
.getSelectedRow() < 0) {
992 Object
[] o
= {"", ""};
993 ffsAttributesTableModel
.addRow(o
);
994 docConsole
.setSaved(false);
995 ffc
.genBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(), "", "");
999 return jButtonFfsAttribNew
;
1003 * This method initializes jButton18
1005 * @return javax.swing.JButton
1007 private JButton
getJButtonFfsAttribRemove() {
1008 if (jButtonFfsAttribRemove
== null) {
1009 jButtonFfsAttribRemove
= new JButton();
1010 jButtonFfsAttribRemove
.setPreferredSize(new java
.awt
.Dimension(80,20));
1011 jButtonFfsAttribRemove
.setText("Remove");
1012 jButtonFfsAttribRemove
.addActionListener(new AbstractAction(){
1016 private static final long serialVersionUID
= 1L;
1018 public void actionPerformed(ActionEvent arg0
){
1019 if (jTableFfs
.getSelectedRow() < 0) {
1022 if (jTableFfsAttribs
.getSelectedRow() >= 0){
1023 docConsole
.setSaved(false);
1024 ffsAttributesTableModel
.removeRow(jTableFfsAttribs
.getSelectedRow());
1025 ffc
.removeBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(), jTableFfsAttribs
.getSelectedRow());
1030 return jButtonFfsAttribRemove
;
1034 * This method initializes jCheckBox9
1036 * @return javax.swing.JCheckBox
1038 private JCheckBox
getJCheckBoxIA32() {
1039 if (jCheckBoxIA32
== null) {
1040 jCheckBoxIA32
= new JCheckBox();
1041 jCheckBoxIA32
.setPreferredSize(new java
.awt
.Dimension(50,20));
1042 jCheckBoxIA32
.setText("IA32");
1044 return jCheckBoxIA32
;
1048 * This method initializes jCheckBox10
1050 * @return javax.swing.JCheckBox
1052 private JCheckBox
getJCheckBoxIpf() {
1053 if (jCheckBoxIpf
== null) {
1054 jCheckBoxIpf
= new JCheckBox();
1055 jCheckBoxIpf
.setPreferredSize(new java
.awt
.Dimension(50,20));
1056 jCheckBoxIpf
.setText("IPF");
1058 return jCheckBoxIpf
;
1062 * This method initializes jCheckBox11
1064 * @return javax.swing.JCheckBox
1066 private JCheckBox
getJCheckBoxX64() {
1067 if (jCheckBoxX64
== null) {
1068 jCheckBoxX64
= new JCheckBox();
1069 jCheckBoxX64
.setText("X64");
1070 jCheckBoxX64
.setPreferredSize(new java
.awt
.Dimension(47,20));
1072 return jCheckBoxX64
;
1076 * This method initializes jCheckBox12
1078 * @return javax.swing.JCheckBox
1080 private JCheckBox
getJCheckBoxEBC() {
1081 if (jCheckBoxEBC
== null) {
1082 jCheckBoxEBC
= new JCheckBox();
1083 jCheckBoxEBC
.setPreferredSize(new java
.awt
.Dimension(50,20));
1084 jCheckBoxEBC
.setText("EBC");
1086 return jCheckBoxEBC
;
1090 * This method initializes jCheckBox13
1092 * @return javax.swing.JCheckBox
1094 private JCheckBox
getJCheckBoxARM() {
1095 if (jCheckBoxARM
== null) {
1096 jCheckBoxARM
= new JCheckBox();
1097 jCheckBoxARM
.setPreferredSize(new java
.awt
.Dimension(55,20));
1098 jCheckBoxARM
.setText("ARM");
1100 return jCheckBoxARM
;
1104 * This method initializes jCheckBox14
1106 * @return javax.swing.JCheckBox
1108 private JCheckBox
getJCheckBoxPPC() {
1109 if (jCheckBoxPPC
== null) {
1110 jCheckBoxPPC
= new JCheckBox();
1111 jCheckBoxPPC
.setPreferredSize(new java
.awt
.Dimension(50,20));
1112 jCheckBoxPPC
.setText("PPC");
1114 return jCheckBoxPPC
;
1118 * This method initializes jTextField12
1120 * @return javax.swing.JTextField
1122 private JTextField
getJTextFieldBuildTargets() {
1123 if (jTextFieldBuildTargets
== null) {
1124 jTextFieldBuildTargets
= new JTextField();
1125 jTextFieldBuildTargets
.setPreferredSize(new java
.awt
.Dimension(150,20));
1127 return jTextFieldBuildTargets
;
1131 * This method initializes jTextField13
1133 * @return javax.swing.JTextField
1135 private JTextField
getJTextFieldTagName() {
1136 if (jTextFieldTagName
== null) {
1137 jTextFieldTagName
= new JTextField();
1138 jTextFieldTagName
.setPreferredSize(new java
.awt
.Dimension(140,20));
1140 return jTextFieldTagName
;
1144 * This method initializes jScrollPane
1146 * @return javax.swing.JScrollPane
1148 private JScrollPane
getJScrollPaneFfs() {
1149 if (jScrollPaneFfs
== null) {
1150 jScrollPaneFfs
= new JScrollPane();
1151 jScrollPaneFfs
.setPreferredSize(new java
.awt
.Dimension(150,419));
1152 jScrollPaneFfs
.setViewportView(getJTableFfs());
1154 return jScrollPaneFfs
;
1158 * This method initializes jTable
1160 * @return javax.swing.JTable
1162 private JTable
getJTableFfs() {
1163 if (jTableFfs
== null) {
1164 ffsTableModel
= new DefaultTableModel();
1165 ffsTableModel
.addColumn("FFS Type");
1166 jTableFfs
= new JTable(ffsTableModel
);
1167 jTableFfs
.setShowGrid(false);
1168 jTableFfs
.setRowHeight(20);
1170 jTableFfs
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1171 jTableFfs
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1172 public void valueChanged(ListSelectionEvent e
) {
1174 if (e
.getValueIsAdjusting()){
1177 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
1178 if (lsm
.isSelectionEmpty()) {
1182 int row
= lsm
.getMinSelectionIndex();
1183 sectionTableModel
.setRowCount(0);
1184 sectionsTableModel
.setRowCount(0);
1185 subsectionsTableModel
.setRowCount(0);
1186 ffsAttributesTableModel
.setRowCount(0);
1187 String
[] sArray
= {"", ""};
1188 LinkedHashMap
<String
, String
> lhm
= new LinkedHashMap
<String
, String
>();
1189 ArrayList
<String
> alSections
= new ArrayList
<String
>();
1190 ArrayList
<String
> alSection
= new ArrayList
<String
>();
1191 ffc
.getBuildOptionsFfs(row
, sArray
, lhm
, alSections
, alSection
);
1192 jTextFieldFfsKey
.setText(sArray
[0]);
1193 jTextFieldEncapType
.setText(sArray
[1]);
1194 for (int i
= 0; i
< alSection
.size(); ++i
) {
1195 String
[] sectionRow
= {alSection
.get(i
)};
1196 sectionTableModel
.addRow(sectionRow
);
1198 for (int j
= 0; j
< alSections
.size(); ++j
) {
1199 String
[] sectionsRow
= {alSections
.get(j
)};
1200 sectionsTableModel
.addRow(sectionsRow
);
1202 if (lhm
.size() <= 0 ) {
1205 Set
<String
> keySet
= lhm
.keySet();
1206 Iterator
<String
> is
= keySet
.iterator();
1207 while(is
.hasNext()) {
1208 String key
= is
.next();
1209 String
[] attribRow
= {key
, lhm
.get(key
)};
1210 ffsAttributesTableModel
.addRow(attribRow
);
1216 jTableFfs
.getModel().addTableModelListener(new TableModelListener() {
1217 public void tableChanged(TableModelEvent arg0
) {
1218 // TODO Auto-generated method stub
1219 int row
= arg0
.getFirstRow();
1220 TableModel m
= (TableModel
)arg0
.getSource();
1221 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1222 //ToDo Data Validition check.
1223 String id
= m
.getValueAt(row
, 0) + "";
1225 if (id
.length() == 0) {
1228 docConsole
.setSaved(false);
1229 ffc
.updateBuildOptionsFfsKey(row
, id
);
1238 * This method initializes jScrollPane1
1240 * @return javax.swing.JScrollPane
1242 private JScrollPane
getJScrollPaneFfsSection() {
1243 if (jScrollPaneFfsSection
== null) {
1244 jScrollPaneFfsSection
= new JScrollPane();
1245 jScrollPaneFfsSection
.setPreferredSize(new java
.awt
.Dimension(500,80));
1246 jScrollPaneFfsSection
.setViewportView(getJTableFfsSection());
1248 return jScrollPaneFfsSection
;
1252 * This method initializes jTable1
1254 * @return javax.swing.JTable
1256 private JTable
getJTableFfsSection() {
1257 if (jTableFfsSection
== null) {
1258 sectionTableModel
= new DefaultTableModel();
1259 sectionTableModel
.addColumn("SectionType");
1261 jTableFfsSection
= new JTable(sectionTableModel
);
1262 jTableFfsSection
.setRowHeight(20);
1263 JComboBox cb
= new JComboBox();
1264 cb
.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
1265 cb
.addItem("EFI_SECTION_VERSION");
1266 cb
.addItem("EFI_SECTION_USER_INTERFACE");
1267 cb
.addItem("EFI_SECTION_DXE_DEPEX");
1268 cb
.addItem("EFI_SECTION_PEI_DEPEX");
1269 cb
.addItem("EFI_SECTION_PE32");
1270 cb
.addItem("EFI_SECTION_PIC");
1271 cb
.addItem("EFI_SECTION_TE");
1272 cb
.addItem("EFI_SECTION_RAW");
1273 cb
.addItem("EFI_SECTION_COMPRESSION");
1274 cb
.addItem("EFI_SECTION_GUID_DEFINED");
1275 cb
.addItem("EFI_SECTION_COMPATIBILITY16");
1276 cb
.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
1277 jTableFfsSection
.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb
));
1279 jTableFfsSection
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1281 jTableFfsSection
.getModel().addTableModelListener(new TableModelListener() {
1282 public void tableChanged(TableModelEvent arg0
) {
1283 // TODO Auto-generated method stub
1284 if (jTableFfs
.getSelectedRow() < 0) {
1287 int row
= arg0
.getFirstRow();
1288 TableModel m
= (TableModel
)arg0
.getSource();
1289 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1290 //ToDo Data Validition check.
1291 String type
= m
.getValueAt(row
, 0) + "";
1292 docConsole
.setSaved(false);
1293 ffc
.updateBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(), row
, type
);
1298 return jTableFfsSection
;
1302 * This method initializes jScrollPane3
1304 * @return javax.swing.JScrollPane
1306 private JScrollPane
getJScrollPaneFfsSubSection() {
1307 if (jScrollPaneFfsSubSection
== null) {
1308 jScrollPaneFfsSubSection
= new JScrollPane();
1309 jScrollPaneFfsSubSection
.setPreferredSize(new java
.awt
.Dimension(500,90));
1310 jScrollPaneFfsSubSection
.setViewportView(getJTableFfsSubSection());
1312 return jScrollPaneFfsSubSection
;
1316 * This method initializes jTable3
1318 * @return javax.swing.JTable
1320 private JTable
getJTableFfsSubSection() {
1321 if (jTableFfsSubSection
== null) {
1322 subsectionsTableModel
= new DefaultTableModel();
1323 subsectionsTableModel
.addColumn("SectionType");
1324 jTableFfsSubSection
= new JTable(subsectionsTableModel
);
1325 jTableFfsSubSection
.setRowHeight(20);
1326 JComboBox cb
= new JComboBox();
1327 cb
.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
1328 cb
.addItem("EFI_SECTION_VERSION");
1329 cb
.addItem("EFI_SECTION_USER_INTERFACE");
1330 cb
.addItem("EFI_SECTION_DXE_DEPEX");
1331 cb
.addItem("EFI_SECTION_PEI_DEPEX");
1332 cb
.addItem("EFI_SECTION_PE32");
1333 cb
.addItem("EFI_SECTION_PIC");
1334 cb
.addItem("EFI_SECTION_TE");
1335 cb
.addItem("EFI_SECTION_RAW");
1336 cb
.addItem("EFI_SECTION_COMPRESSION");
1337 cb
.addItem("EFI_SECTION_GUID_DEFINED");
1338 cb
.addItem("EFI_SECTION_COMPATIBILITY16");
1339 cb
.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
1340 jTableFfsSubSection
.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb
));
1341 jTableFfsSubSection
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1343 jTableFfsSubSection
.getModel().addTableModelListener(new TableModelListener() {
1344 public void tableChanged(TableModelEvent arg0
) {
1345 // TODO Auto-generated method stub
1346 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
1349 int row
= arg0
.getFirstRow();
1350 TableModel m
= (TableModel
)arg0
.getSource();
1351 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1352 //ToDo Data Validition check.
1353 String type
= m
.getValueAt(row
, 0) + "";
1354 docConsole
.setSaved(false);
1355 ffc
.updateBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(), jTableFfsSections
.getSelectedRow(), row
, type
);
1360 return jTableFfsSubSection
;
1364 * This method initializes jTextField
1366 * @return javax.swing.JTextField
1368 private JTextField
getJTextFieldEncapType() {
1369 if (jTextFieldEncapType
== null) {
1370 jTextFieldEncapType
= new JTextField();
1371 jTextFieldEncapType
.setPreferredSize(new java
.awt
.Dimension(100,20));
1372 jTextFieldEncapType
.addFocusListener(new java
.awt
.event
.FocusAdapter() {
1373 public void focusLost(java
.awt
.event
.FocusEvent e
) {
1374 if (jTableFfs
.getSelectedRow() < 0) {
1377 ffc
.updateBuildOptionsFfsSectionsType(jTableFfs
.getSelectedRow(), jTextFieldEncapType
.getText());
1381 return jTextFieldEncapType
;
1385 * This method initializes jPanel4
1387 * @return javax.swing.JPanel
1389 private JPanel
getJPanelFfsAttribButtonGroup() {
1390 if (jPanelFfsAttribButtonGroup
== null) {
1391 jPanelFfsAttribButtonGroup
= new JPanel();
1392 jPanelFfsAttribButtonGroup
.setPreferredSize(new java
.awt
.Dimension(100,100));
1393 jPanelFfsAttribButtonGroup
.add(getJButtonFfsAttribNew(), null);
1394 jPanelFfsAttribButtonGroup
.add(getJButtonFfsAttribRemove(), null);
1396 return jPanelFfsAttribButtonGroup
;
1400 * This method initializes jButton
1402 * @return javax.swing.JButton
1404 private JButton
getJButtonFfsSectionNew() {
1405 if (jButtonFfsSectionNew
== null) {
1406 jButtonFfsSectionNew
= new JButton();
1407 jButtonFfsSectionNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
1408 jButtonFfsSectionNew
.setText("New");
1409 jButtonFfsSectionNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1410 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1411 if (jTableFfs
.getSelectedRow() < 0) {
1414 docConsole
.setSaved(false);
1415 String
[] row
= {"EFI_SECTION_RAW"};
1416 sectionTableModel
.addRow(row
);
1417 ffc
.genBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(), row
[0]);
1421 return jButtonFfsSectionNew
;
1425 * This method initializes jButton1
1427 * @return javax.swing.JButton
1429 private JButton
getJButtonFfsSectionRemove() {
1430 if (jButtonFfsSectionRemove
== null) {
1431 jButtonFfsSectionRemove
= new JButton();
1432 jButtonFfsSectionRemove
.setPreferredSize(new java
.awt
.Dimension(80,20));
1433 jButtonFfsSectionRemove
.setText("Remove");
1435 jButtonFfsSectionRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1436 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1437 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSection
.getSelectedRow() < 0) {
1440 docConsole
.setSaved(false);
1441 sectionTableModel
.removeRow(jTableFfsSection
.getSelectedRow());
1442 ffc
.removeBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(), jTableFfsSection
.getSelectedRow());
1446 return jButtonFfsSectionRemove
;
1450 * This method initializes jButton2
1452 * @return javax.swing.JButton
1454 private JButton
getJButtonFfsSubSectionNew() {
1455 if (jButtonFfsSubSectionNew
== null) {
1456 jButtonFfsSubSectionNew
= new JButton();
1457 jButtonFfsSubSectionNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
1458 jButtonFfsSubSectionNew
.setText("New");
1459 jButtonFfsSubSectionNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1460 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1461 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
1464 docConsole
.setSaved(false);
1465 String
[] row
= {"EFI_SECTION_RAW"};
1466 subsectionsTableModel
.addRow(row
);
1467 ffc
.genBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(), jTableFfsSections
.getSelectedRow(), row
[0]);
1472 return jButtonFfsSubSectionNew
;
1476 * This method initializes jButton3
1478 * @return javax.swing.JButton
1480 private JButton
getJButtonFfsSubSectionRemove() {
1481 if (jButtonFfsSubSectionRemove
== null) {
1482 jButtonFfsSubSectionRemove
= new JButton();
1483 jButtonFfsSubSectionRemove
.setPreferredSize(new java
.awt
.Dimension(80,20));
1484 jButtonFfsSubSectionRemove
.setText("Remove");
1485 jButtonFfsSubSectionRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1486 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1487 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0 || jTableFfsSubSection
.getSelectedRow() < 0) {
1490 docConsole
.setSaved(false);
1491 subsectionsTableModel
.removeRow(jTableFfsSubSection
.getSelectedRow());
1492 ffc
.removeBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(), jTableFfsSections
.getSelectedRow(), jTableFfsSubSection
.getSelectedRow());
1496 return jButtonFfsSubSectionRemove
;
1500 * This method initializes jButton6
1502 * @return javax.swing.JButton
1504 private JButton
getJButtonFfsSectionsNew() {
1505 if (jButtonFfsSectionsNew
== null) {
1506 jButtonFfsSectionsNew
= new JButton();
1507 jButtonFfsSectionsNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
1508 jButtonFfsSectionsNew
.setText("New");
1509 jButtonFfsSectionsNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1510 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1511 if (jTableFfs
.getSelectedRow() < 0) {
1514 docConsole
.setSaved(false);
1515 String
[] row
= {""};
1516 sectionsTableModel
.addRow(row
);
1517 ffc
.genBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(), "");
1521 return jButtonFfsSectionsNew
;
1525 * This method initializes jButton7
1527 * @return javax.swing.JButton
1529 private JButton
getJButtonFfsSectionsRemove() {
1530 if (jButtonFfsSectionsRemove
== null) {
1531 jButtonFfsSectionsRemove
= new JButton();
1532 jButtonFfsSectionsRemove
.setPreferredSize(new java
.awt
.Dimension(80,20));
1533 jButtonFfsSectionsRemove
.setText("Remove");
1534 jButtonFfsSectionsRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1535 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1536 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
1539 docConsole
.setSaved(false);
1540 sectionsTableModel
.removeRow(jTableFfsSections
.getSelectedRow());
1541 ffc
.removeBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(), jTableFfsSections
.getSelectedRow());
1545 return jButtonFfsSectionsRemove
;
1549 * This method initializes jScrollPane4
1551 * @return javax.swing.JScrollPane
1553 private JScrollPane
getJScrollPaneFfsSections() {
1554 if (jScrollPaneFfsSections
== null) {
1555 jScrollPaneFfsSections
= new JScrollPane();
1556 jScrollPaneFfsSections
.setPreferredSize(new java
.awt
.Dimension(500,80));
1557 jScrollPaneFfsSections
.setViewportView(getJTableFfsSections());
1559 return jScrollPaneFfsSections
;
1563 * This method initializes jTable6
1565 * @return javax.swing.JTable
1567 private JTable
getJTableFfsSections() {
1568 if (jTableFfsSections
== null) {
1569 sectionsTableModel
= new DefaultTableModel();
1570 sectionsTableModel
.addColumn("EncapsulationType");
1571 jTableFfsSections
= new JTable(sectionsTableModel
);
1572 jTableFfsSections
.setRowHeight(20);
1573 jTableFfsSections
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1574 jTableFfsSections
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1575 public void valueChanged(ListSelectionEvent e
) {
1576 if (e
.getValueIsAdjusting()){
1579 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
1580 if (lsm
.isSelectionEmpty()) {
1584 int sectionsRow
= lsm
.getMinSelectionIndex();
1585 if (jTableFfs
.getSelectedRow() < 0) {
1588 subsectionsTableModel
.setRowCount(0);
1589 ArrayList
<String
> al
= new ArrayList
<String
>();
1590 ffc
.getBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(), sectionsRow
, al
);
1591 for (int i
= 0; i
< al
.size(); ++i
) {
1592 String
[] subsectionRow
= {al
.get(i
)};
1593 subsectionsTableModel
.addRow(subsectionRow
);
1599 jTableFfsSections
.getModel().addTableModelListener(new TableModelListener() {
1600 public void tableChanged(TableModelEvent arg0
) {
1601 // TODO Auto-generated method stub
1602 int row
= arg0
.getFirstRow();
1603 TableModel m
= (TableModel
)arg0
.getSource();
1604 if (arg0
.getType() == TableModelEvent
.UPDATE
){
1605 //ToDo Data Validition check.
1606 String encapType
= m
.getValueAt(row
, 0) + "";
1607 docConsole
.setSaved(false);
1608 ffc
.updateBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(), row
, encapType
);
1613 return jTableFfsSections
;
1617 * This method initializes jButton12
1619 * @return javax.swing.JButton
1621 private JButton
getJButtonAntTaskFileBrowse() {
1622 if (jButtonAntTaskFileBrowse
== null) {
1623 jButtonAntTaskFileBrowse
= new JButton();
1624 jButtonAntTaskFileBrowse
.setPreferredSize(new Dimension(90, 20));
1625 jButtonAntTaskFileBrowse
.setText("Browse");
1626 jButtonAntTaskFileBrowse
.addActionListener(new AbstractAction() {
1627 private static final long serialVersionUID
= 1L;
1629 public void actionPerformed(ActionEvent arg0
) {
1631 // Select files from current workspace
1633 String dirPrefix
= System
.getenv("WORKSPACE");
1634 JFileChooser chooser
= new JFileChooser(dirPrefix
);
1635 File theFile
= null;
1636 String headerDest
= null;
1638 chooser
.setMultiSelectionEnabled(false);
1639 chooser
.setFileSelectionMode(JFileChooser
.FILES_ONLY
);
1640 int retval
= chooser
.showOpenDialog(frame
);
1641 if (retval
== JFileChooser
.APPROVE_OPTION
) {
1643 theFile
= chooser
.getSelectedFile();
1644 String file
= theFile
.getPath();
1645 if (!file
.startsWith(dirPrefix
)) {
1646 JOptionPane
.showMessageDialog(frame
, "You can only select files in current package!");
1654 headerDest
= theFile
.getPath();
1655 jTextFieldAntTaskFile
.setText(headerDest
.substring(dirPrefix
.length()).replace('\\', '/'));
1661 return jButtonAntTaskFileBrowse
;
1665 * This method initializes jTextField1
1667 * @return javax.swing.JTextField
1669 private JTextField
getJTextFieldToolChainFamily() {
1670 if (jTextFieldToolChainFamily
== null) {
1671 jTextFieldToolChainFamily
= new JTextField();
1672 jTextFieldToolChainFamily
.setPreferredSize(new java
.awt
.Dimension(85,20));
1674 return jTextFieldToolChainFamily
;
1680 public static void main(String
[] args
) {
1681 // TODO Auto-generated method stub
1682 new FpdBuildOptions().setVisible(true);
1686 * This is the default constructor
1688 public FpdBuildOptions() {
1691 this.setVisible(true);
1694 public FpdBuildOptions(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
) {
1696 ffc
= new FpdFileContents(fpd
);
1700 public FpdBuildOptions(OpeningPlatformType opt
) {
1701 this(opt
.getXmlFpd());
1705 private void init(FpdFileContents ffc
) {
1709 this.addInternalFrameListener(new InternalFrameAdapter(){
1710 public void internalFrameDeactivated(InternalFrameEvent e
){
1711 if (jTableFfs
.isEditing()) {
1712 jTableFfs
.getCellEditor().stopCellEditing();
1714 if (jTableFfsSection
.isEditing()) {
1715 jTableFfsSection
.getCellEditor().stopCellEditing();
1717 if (jTableAntTasks
.isEditing()) {
1718 jTableAntTasks
.getCellEditor().stopCellEditing();
1720 if (jTableFfsSubSection
.isEditing()) {
1721 jTableFfsSubSection
.getCellEditor().stopCellEditing();
1723 if (jTableFfsAttribs
.isEditing()) {
1724 jTableFfsAttribs
.getCellEditor().stopCellEditing();
1726 if (jTableOptions
.isEditing()) {
1727 jTableOptions
.getCellEditor().stopCellEditing();
1733 private void initOptionTable() {
1734 if (ffc
.getBuildOptionsOptCount() == 0) {
1735 //ToDo get default options from *.txt file
1738 String
[][] saa
= new String
[ffc
.getBuildOptionsOptCount()][6];
1739 ffc
.getBuildOptionsOpts(saa
);
1740 for (int i
= 0; i
< saa
.length
; ++i
) {
1741 optionsTableModel
.addRow(saa
[i
]);
1745 private void initAntTaskTable() {
1746 if (ffc
.getBuildOptionsUserDefAntTaskCount() == 0) {
1749 String
[][] saa
= new String
[ffc
.getBuildOptionsUserDefAntTaskCount()][3];
1750 ffc
.getBuildOptionsUserDefAntTasks(saa
);
1751 for (int i
= 0; i
< saa
.length
; ++i
) {
1752 antTaskTableModel
.addRow(saa
[i
]);
1756 private void initFfsTable(){
1757 int ffsCount
= ffc
.getBuildOptionsFfsCount();
1761 String
[][] saa
= new String
[ffsCount
][1];
1762 ffc
.getBuildOptionsFfsKey(saa
);
1763 for (int i
= 0; i
< saa
.length
; ++i
) {
1764 ffsTableModel
.addRow(saa
[i
]);
1768 * This method initializes this
1772 private void initialize() {
1773 this.setSize(722, 577);
1774 this.setTitle("FPD Build Options");
1775 this.setContentPane(getJContentPane());
1779 * This method initializes jContentPane
1781 * @return javax.swing.JPanel
1783 private JPanel
getJContentPane() {
1784 if (jContentPane
== null) {
1785 jContentPane
= new JPanel();
1786 jContentPane
.setLayout(new BorderLayout());
1787 jContentPane
.add(getJPanelContentSouth(), java
.awt
.BorderLayout
.SOUTH
);
1788 jContentPane
.add(getJPanelContentNorth(), java
.awt
.BorderLayout
.NORTH
);
1789 jContentPane
.add(getJPanelContentWest(), java
.awt
.BorderLayout
.WEST
);
1790 jContentPane
.add(getJPanelContentEast(), java
.awt
.BorderLayout
.EAST
);
1791 jContentPane
.add(getJTabbedPane(), java
.awt
.BorderLayout
.CENTER
);
1793 return jContentPane
;
1796 } // @jve:decl-index=0:visual-constraint="10,10"