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
;
27 import java
.awt
.event
.ComponentEvent
;
29 import javax
.swing
.DefaultCellEditor
;
30 import javax
.swing
.JFileChooser
;
31 import javax
.swing
.JFrame
;
32 import javax
.swing
.JOptionPane
;
33 import javax
.swing
.JTextField
;
34 import javax
.swing
.JButton
;
35 import javax
.swing
.JScrollPane
;
36 import javax
.swing
.JTable
;
37 import javax
.swing
.JComboBox
;
38 import javax
.swing
.ListSelectionModel
;
39 import javax
.swing
.event
.InternalFrameAdapter
;
40 import javax
.swing
.event
.InternalFrameEvent
;
41 import javax
.swing
.event
.ListSelectionEvent
;
42 import javax
.swing
.event
.ListSelectionListener
;
43 import javax
.swing
.event
.TableModelEvent
;
44 import javax
.swing
.event
.TableModelListener
;
45 import javax
.swing
.table
.DefaultTableModel
;
46 import javax
.swing
.table
.TableModel
;
48 import org
.tianocore
.PlatformSurfaceAreaDocument
;
49 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
50 import org
.tianocore
.frameworkwizard
.common
.Tools
;
51 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
52 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
55 import java
.util
.ArrayList
;
56 import java
.util
.Iterator
;
57 import java
.util
.LinkedHashMap
;
59 import java
.util
.Vector
;
60 import java
.awt
.Dimension
;
61 import javax
.swing
.JSplitPane
;
62 import java
.awt
.GridLayout
;
64 public class FpdBuildOptions
extends IInternalFrame
{
66 private final int oneRowHeight
= 20;
68 private final int twoRowHeight
= 40;
70 private final int sepHeight
= 6;
72 private final int sepWidth
= 10;
74 private final int buttonWidth
= 90;
76 private final int rowOne
= 12;
78 private final int dialogWidth
= 600;
80 private final int rowTwo
= rowOne
+ oneRowHeight
+ sepHeight
;
82 private final int rowThree
= rowTwo
+ oneRowHeight
+ sepHeight
;
84 private final int rowFour
= rowThree
+ oneRowHeight
+ sepHeight
;
86 private final int rowFive
= rowFour
+ oneRowHeight
+ sepHeight
;
88 private final int rowSix
= rowFive
+ oneRowHeight
+ sepHeight
;
90 private final int rowSeven
= rowSix
+ oneRowHeight
+ sepHeight
;
92 private final int buttonRow
= rowSeven
+ oneRowHeight
+ sepHeight
+ sepHeight
;
94 private final int dialogHeight
= buttonRow
+ twoRowHeight
+ twoRowHeight
;
96 private final int lastButtonXLoc
= dialogWidth
- buttonWidth
- sepWidth
;
98 private final int next2LastButtonLoc
= lastButtonXLoc
- buttonWidth
- sepWidth
;
100 private final int firstButtonLoc
= next2LastButtonLoc
- buttonWidth
- sepWidth
;
102 private final int labelColumn
= 12;
104 private final int fieldColumn
= 168;
106 private final int labelWidth
= 155;
108 private final int fieldWidth
= 320;
110 private static final long serialVersionUID
= 1L;
114 private JPanel jContentPane
= null;
116 // private JPanel jPanelContentSouth = null;
118 // private JPanel jPanelContentNorth = null;
120 // private JPanel jPanelContentWest = null;
122 // private JPanel jPanelContentEast = null;
124 private JTabbedPane jTabbedPane
= null;
126 private JPanel jPanelUserDef
= null;
128 private JPanel jPanelUserDefNorth
= null;
130 private JPanel jPanelUserDefCenter
= null;
132 private JTextField jTextFieldAntTaskFile
= null;
134 private JLabel jLabelAntTaskId
= null;
136 private JTextField jTextFieldAntTaskId
= null;
138 private JButton jButtonAntTaskAdd
= null;
140 private JButton jButtonAntTaskDel
= null;
142 private JTextField jTextFieldAntCmdOpts
= null;
144 private JScrollPane jScrollPaneAntTasks
= null;
146 private JTable jTableAntTasks
= null;
148 private DefaultTableModel ffsTableModel
= null;
150 private DefaultTableModel sectionsTableModel
= null;
152 private DefaultTableModel sectionTableModel
= null;
154 private DefaultTableModel subsectionsTableModel
= null;
156 private DefaultTableModel antTaskTableModel
= null;
158 private DefaultTableModel ffsAttributesTableModel
= null;
160 private DefaultTableModel optionsTableModel
= null;
162 private JPanel jPanelFfsTab
= null;
164 private JPanel jPanelFfsTabCenter
= null;
166 private JPanel jPanelFfsTabCenterN
= null;
168 private JPanel jPanelFfsTabCenterS
= null;
170 private JLabel jLabelFfsKey
= null;
172 private JTextField jTextFieldFfsKey
= null;
174 private JButton jButtonFfsAdd
= null;
176 private JButton jButtonFfsDel
= null;
178 private JScrollPane jScrollPaneFfsAttribs
= null;
180 private JTable jTableFfsAttribs
= null;
182 private JPanel jPanelOptionsTab
= null;
184 private JLabel jLabelOptionContents
= null;
186 private JTextField jTextFieldOptionContents
= null;
188 private JLabel jLabelToolChainFamily
= null;
190 private JLabel jLabelSupArch
= null;
192 private JLabel jLabelToolCmd
= null;
194 private JTextField jTextFieldToolCmd
= null;
196 private JScrollPane jScrollPaneOptions
= null;
198 private JTable jTableOptions
= null;
200 private JButton jButtonOptionsAdd
= null;
202 private JButton jButtonOptionsDel
= null;
204 private JButton jButtonFfsAttribNew
= null;
206 private JButton jButtonFfsAttribRemove
= null;
208 private FpdFileContents ffc
= null;
210 private OpeningPlatformType docConsole
= null;
212 private JPanel jArchitectureSelections
= null;
214 private JCheckBox jCheckBoxIA32
= null;
216 private JCheckBox jCheckBoxIpf
= null;
218 private JCheckBox jCheckBoxX64
= null;
220 private JCheckBox jCheckBoxEBC
= null;
222 private JCheckBox jCheckBoxARM
= null;
224 private JCheckBox jCheckBoxPPC
= null;
226 private JLabel jLabelBuildTargets
= null;
228 private JTextField jTextFieldBuildTargets
= null;
230 private JTextField jTextFieldTagName
= null;
232 private JLabel jLabelTagName
= null;
234 private int selectedRow
= -1;
236 private JLabel jLabelAntTaskFile
= null;
238 private JLabel jLabelAntCmdOpts
= null;
240 private JScrollPane jScrollPaneFfs
= null;
242 private JTable jTableFfs
= null;
244 private JLabel jLabelFfsSection
= null;
246 private JScrollPane jScrollPaneFfsSection
= null;
248 private JTable jTableFfsSection
= null;
250 private JLabel jLabelFfsSubSections
= null;
252 private JScrollPane jScrollPaneFfsSubSection
= null;
254 private JTable jTableFfsSubSection
= null;
256 private JLabel jLabelEncapType
= null;
258 private JTextField jTextFieldEncapType
= null;
260 private JPanel jPanelFfsAttribButtonGroup
= null;
262 private JLabel jLabelFfsAttribs
= null;
264 private JButton jButtonFfsSectionNew
= null;
266 private JButton jButtonFfsSectionRemove
= null;
268 private JButton jButtonFfsSubSectionNew
= null;
270 private JButton jButtonFfsSubSectionRemove
= null;
272 private JLabel jLabelFfsSections
= null;
274 private JButton jButtonFfsSectionsNew
= null;
276 private JButton jButtonFfsSectionsRemove
= null;
278 private JScrollPane jScrollPaneFfsSections
= null;
280 private JTable jTableFfsSections
= null;
282 private JButton jButtonAntTaskFileBrowse
= null;
284 private JTextField jTextFieldToolChainFamily
= null;
286 private JSplitPane jSplitPaneFfsC
= null;
288 private JPanel jPanelFfsCTop
= null;
290 private JSplitPane jSplitPaneFfsCBottom
= null;
292 private JPanel jPanelFfsCBottomTop
= null;
294 private JPanel jPanelFfsCBottomBottom
= null;
296 private JPanel jPanelSectionN
= null;
298 private JPanel jPanelSectionsN
= null;
300 private JPanel jPanelSubSectionN
= null;
302 private JPanel jPanelOptionsContainer
= null;
304 private JPanel jPanelUserDefCenterN
= null;
306 private JPanel jPanelTableOptionsContainer
= null;
308 private JLabel jLabelTableOptionsTitle
= null;
310 private final int buildTargetWidth
= 150;
311 private final int toolChainFamilyWidth
= 150;
312 private final int supportArchWidth
= 150;
313 private final int toolCmdCodeWidth
= 200;
314 private final int tagNameWidth
= 150;
315 private final int argWidth
= 400;
318 * This method initializes jPanel
320 * @return javax.swing.JPanel
321 private JPanel getJPanelContentSouth() {
322 if (jPanelContentSouth == null) {
323 jPanelContentSouth = new JPanel();
325 return jPanelContentSouth;
330 * This method initializes jPanel1
332 * @return javax.swing.JPanel
333 private JPanel getJPanelContentNorth() {
334 if (jPanelContentNorth == null) {
335 jPanelContentNorth = new JPanel();
337 return jPanelContentNorth;
342 * This method initializes jPanel2
344 * @return javax.swing.JPanel
345 private JPanel getJPanelContentWest() {
346 if (jPanelContentWest == null) {
347 jPanelContentWest = new JPanel();
349 return jPanelContentWest;
354 * This method initializes jPanel3
356 * @return javax.swing.JPanel
357 private JPanel getJPanelContentEast() {
358 if (jPanelContentEast == null) {
359 jPanelContentEast = new JPanel();
361 return jPanelContentEast;
366 * This method initializes jTabbedPane
368 * @return javax.swing.JTabbedPane
370 private JTabbedPane
getJTabbedPane() {
371 if (jTabbedPane
== null) {
372 jTabbedPane
= new JTabbedPane();
373 jTabbedPane
.addTab("Flash Filesystem Options", null, getJPanelFfsTab(), null);
374 jTabbedPane
.addTab("Customize Tool Chain Configurations", null, getJPanelOptionsTab(), null);
375 jTabbedPane
.addTab("User Defined ANT Tasks", null, getJPanelUserDef(), null);
381 * This method initializes this
385 private void initialize() {
386 this.setSize(722, 577);
387 this.setTitle("Platform Build Options");
388 this.setContentPane(getJContentPane());
392 * This method initializes jContentPane
394 * @return javax.swing.JPanel
396 private JPanel
getJContentPane() {
397 if (jContentPane
== null) {
398 jContentPane
= new JPanel();
399 jContentPane
.setLayout(new BorderLayout());
400 // jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);
401 // jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);
402 // jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);
403 // jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);
404 jContentPane
.add(getJTabbedPane(), java
.awt
.BorderLayout
.CENTER
);
410 * This method initializes jPanelTableOptionsContainer
412 * @return javax.swing.JPanel
414 private JPanel
getJPanelTableOptionsContainer() {
415 if (jPanelTableOptionsContainer
== null) {
416 jLabelTableOptionsTitle
= new JLabel();
417 jLabelTableOptionsTitle
.setText(" Current Argument Lines");
418 jPanelTableOptionsContainer
= new JPanel();
419 jPanelTableOptionsContainer
.setLayout(new BorderLayout());
420 jPanelTableOptionsContainer
.add(jLabelTableOptionsTitle
, java
.awt
.BorderLayout
.NORTH
);
421 jPanelTableOptionsContainer
.add(getJScrollPaneOptions(), java
.awt
.BorderLayout
.CENTER
);
423 return jPanelTableOptionsContainer
;
429 public static void main(String
[] args
) {
430 // TODO Auto-generated method stub
431 new FpdBuildOptions().setVisible(true);
435 * This is the default constructor
437 public FpdBuildOptions() {
440 this.setVisible(true);
443 public FpdBuildOptions(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
) {
445 ffc
= new FpdFileContents(fpd
);
449 public FpdBuildOptions(OpeningPlatformType opt
) {
450 this(opt
.getXmlFpd());
454 private void init(FpdFileContents ffc
) {
458 this.addInternalFrameListener(new InternalFrameAdapter() {
459 public void internalFrameDeactivated(InternalFrameEvent e
) {
460 if (jTableFfs
.isEditing()) {
461 jTableFfs
.getCellEditor().stopCellEditing();
463 if (jTableFfsSection
.isEditing()) {
464 jTableFfsSection
.getCellEditor().stopCellEditing();
466 if (jTableAntTasks
.isEditing()) {
467 jTableAntTasks
.getCellEditor().stopCellEditing();
469 if (jTableFfsSubSection
.isEditing()) {
470 jTableFfsSubSection
.getCellEditor().stopCellEditing();
472 if (jTableFfsAttribs
.isEditing()) {
473 jTableFfsAttribs
.getCellEditor().stopCellEditing();
475 if (jTableOptions
.isEditing()) {
476 jTableOptions
.getCellEditor().stopCellEditing();
483 * This method initializes jPanel13
485 * @return javax.swing.JPanel
487 private JPanel
getJPanelFfsTab() {
488 if (jPanelFfsTab
== null) {
489 jPanelFfsTab
= new JPanel();
490 jPanelFfsTab
.setLayout(new BorderLayout());
491 jPanelFfsTab
.add(getJPanelFfsTabCenter(), java
.awt
.BorderLayout
.CENTER
);
492 jPanelFfsTab
.add(getJScrollPaneFfs(), java
.awt
.BorderLayout
.WEST
);
498 * This method initializes jPanel18
500 * @return javax.swing.JPanel
502 private JPanel
getJPanelFfsTabCenter() {
503 if (jPanelFfsTabCenter
== null) {
504 jPanelFfsTabCenter
= new JPanel();
505 jPanelFfsTabCenter
.setLayout(new BorderLayout());
506 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterN(), java
.awt
.BorderLayout
.NORTH
);
507 jPanelFfsTabCenter
.add(getJPanelFfsTabCenterS(), java
.awt
.BorderLayout
.SOUTH
);
508 jPanelFfsTabCenter
.add(getJSplitPaneFfsC(), java
.awt
.BorderLayout
.CENTER
);
510 return jPanelFfsTabCenter
;
514 * This method initializes jPanel15
516 * @return javax.swing.JPanel
518 private JPanel
getJPanelFfsTabCenterN() {
519 if (jPanelFfsTabCenterN
== null) {
520 jLabelEncapType
= new JLabel();
521 jLabelEncapType
.setText("Encapsulation Type");
522 FlowLayout flowLayout5
= new FlowLayout();
523 flowLayout5
.setAlignment(java
.awt
.FlowLayout
.RIGHT
);
524 jLabelFfsKey
= new JLabel();
525 jLabelFfsKey
.setText("FFS Key");
526 jPanelFfsTabCenterN
= new JPanel();
527 jPanelFfsTabCenterN
.setLayout(flowLayout5
);
528 jPanelFfsTabCenterN
.add(jLabelFfsKey
, null);
529 jPanelFfsTabCenterN
.add(getJTextFieldFfsKey(), null);
530 jPanelFfsTabCenterN
.add(jLabelEncapType
, null);
531 jPanelFfsTabCenterN
.add(getJTextFieldEncapType(), null);
532 jPanelFfsTabCenterN
.add(getJButtonFfsAdd(), null);
533 jPanelFfsTabCenterN
.add(getJButtonFfsDel(), null);
535 return jPanelFfsTabCenterN
;
539 * This method initializes jPanel16
541 * @return javax.swing.JPanel
543 private JPanel
getJPanelFfsTabCenterS() {
544 if (jPanelFfsTabCenterS
== null) {
545 jLabelFfsAttribs
= new JLabel();
546 jLabelFfsAttribs
.setText("Attributes");
547 FlowLayout flowLayout6
= new FlowLayout();
548 flowLayout6
.setHgap(5);
549 flowLayout6
.setVgap(20);
550 flowLayout6
.setAlignment(java
.awt
.FlowLayout
.CENTER
);
551 jPanelFfsTabCenterS
= new JPanel();
552 jPanelFfsTabCenterS
.setPreferredSize(new java
.awt
.Dimension(491, 130));
553 jPanelFfsTabCenterS
.setLayout(flowLayout6
);
554 jPanelFfsTabCenterS
.add(jLabelFfsAttribs
, null);
555 jPanelFfsTabCenterS
.add(getJScrollPaneFfsAttribs(), null);
556 jPanelFfsTabCenterS
.add(getJPanelFfsAttribButtonGroup(), null);
558 return jPanelFfsTabCenterS
;
562 * This method initializes jTextField6
564 * @return javax.swing.JTextField
566 private JTextField
getJTextFieldFfsKey() {
567 if (jTextFieldFfsKey
== null) {
568 jTextFieldFfsKey
= new JTextField();
569 jTextFieldFfsKey
.setPreferredSize(new java
.awt
.Dimension(100, 20));
570 jTextFieldFfsKey
.setEditable(true);
571 jTextFieldFfsKey
.addFocusListener(new java
.awt
.event
.FocusAdapter() {
572 public void focusLost(java
.awt
.event
.FocusEvent e
) {
573 if (jTableFfs
.getSelectedRow() < 0) {
576 // ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());
580 return jTextFieldFfsKey
;
584 * This method initializes jButton8
586 * @return javax.swing.JButton
588 private JButton
getJButtonFfsAdd() {
589 if (jButtonFfsAdd
== null) {
590 jButtonFfsAdd
= new JButton();
591 jButtonFfsAdd
.setPreferredSize(new java
.awt
.Dimension(70, 20));
592 jButtonFfsAdd
.setText("Add");
593 jButtonFfsAdd
.addActionListener(new AbstractAction() {
597 private static final long serialVersionUID
= -2923720717273384221L;
599 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
600 if (jTextFieldFfsKey
.getText().length() > 0) {
601 String
[] row
= { jTextFieldFfsKey
.getText() };
602 ffsTableModel
.addRow(row
);
603 docConsole
.setSaved(false);
604 ffc
.genBuildOptionsFfs(jTextFieldFfsKey
.getText(), jTextFieldEncapType
.getText());
609 return jButtonFfsAdd
;
613 * This method initializes jButton9
615 * @return javax.swing.JButton
617 private JButton
getJButtonFfsDel() {
618 if (jButtonFfsDel
== null) {
619 jButtonFfsDel
= new JButton();
620 jButtonFfsDel
.setPreferredSize(new java
.awt
.Dimension(70, 20));
621 jButtonFfsDel
.setText("Delete");
622 jButtonFfsDel
.addActionListener(new AbstractAction() {
626 private static final long serialVersionUID
= -4002678939178194476L;
628 public void actionPerformed(ActionEvent arg0
) {
629 if (jTableFfs
.getSelectedRow() < 0) {
632 docConsole
.setSaved(false);
633 ffc
.removeBuildOptionsFfs(jTableFfs
.getSelectedRow());
634 ffsTableModel
.removeRow(jTableFfs
.getSelectedRow());
635 sectionTableModel
.setRowCount(0);
636 sectionsTableModel
.setRowCount(0);
637 subsectionsTableModel
.setRowCount(0);
638 ffsAttributesTableModel
.setRowCount(0);
642 return jButtonFfsDel
;
646 * This method initializes jScrollPane5
648 * @return javax.swing.JScrollPane
650 private JScrollPane
getJScrollPaneFfsAttribs() {
651 if (jScrollPaneFfsAttribs
== null) {
652 jScrollPaneFfsAttribs
= new JScrollPane();
653 jScrollPaneFfsAttribs
.setPreferredSize(new java
.awt
.Dimension(350, 100));
654 jScrollPaneFfsAttribs
.setViewportView(getJTableFfsAttribs());
656 return jScrollPaneFfsAttribs
;
660 * This method initializes jTable4
662 * @return javax.swing.JTable
664 private JTable
getJTableFfsAttribs() {
665 if (jTableFfsAttribs
== null) {
666 ffsAttributesTableModel
= new DefaultTableModel();
667 jTableFfsAttribs
= new JTable(ffsAttributesTableModel
);
668 jTableFfsAttribs
.setPreferredSize(new java
.awt
.Dimension(400, 80));
669 jTableFfsAttribs
.setRowHeight(20);
670 ffsAttributesTableModel
.addColumn("Name");
671 ffsAttributesTableModel
.addColumn("Value");
673 jTableFfsAttribs
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
674 jTableFfsAttribs
.getModel().addTableModelListener(new TableModelListener() {
675 public void tableChanged(TableModelEvent arg0
) {
676 // TODO Auto-generated method stub
677 int row
= arg0
.getFirstRow();
678 TableModel m
= (TableModel
) arg0
.getSource();
679 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
680 //ToDo Data Validition check.
681 String name
= m
.getValueAt(row
, 0) + "";
682 String value
= m
.getValueAt(row
, 1) + "";
684 if (name
.length() == 0) {
687 if (value
.length() == 0) {
690 docConsole
.setSaved(false);
691 ffc
.updateBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(), row
, name
, value
);
696 return jTableFfsAttribs
;
699 private void initFfsTable() {
700 int ffsCount
= ffc
.getBuildOptionsFfsCount();
704 String
[][] saa
= new String
[ffsCount
][1];
705 ffc
.getBuildOptionsFfsKey(saa
);
706 for (int i
= 0; i
< saa
.length
; ++i
) {
707 ffsTableModel
.addRow(saa
[i
]);
712 * This method initializes jButton17
714 * @return javax.swing.JButton
716 private JButton
getJButtonFfsAttribNew() {
717 if (jButtonFfsAttribNew
== null) {
718 jButtonFfsAttribNew
= new JButton();
719 jButtonFfsAttribNew
.setPreferredSize(new java
.awt
.Dimension(80, 20));
720 jButtonFfsAttribNew
.setText("New");
721 jButtonFfsAttribNew
.addActionListener(new AbstractAction() {
725 private static final long serialVersionUID
= 1L;
727 public void actionPerformed(ActionEvent arg0
) {
728 if (jTableFfs
.getSelectedRow() < 0) {
731 Object
[] o
= { "", "" };
732 ffsAttributesTableModel
.addRow(o
);
733 docConsole
.setSaved(false);
734 ffc
.genBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(), "", "");
738 return jButtonFfsAttribNew
;
742 * This method initializes jButton18
744 * @return javax.swing.JButton
746 private JButton
getJButtonFfsAttribRemove() {
747 if (jButtonFfsAttribRemove
== null) {
748 jButtonFfsAttribRemove
= new JButton();
749 jButtonFfsAttribRemove
.setPreferredSize(new java
.awt
.Dimension(80, 20));
750 jButtonFfsAttribRemove
.setText("Remove");
751 jButtonFfsAttribRemove
.addActionListener(new AbstractAction() {
755 private static final long serialVersionUID
= 1L;
757 public void actionPerformed(ActionEvent arg0
) {
758 if (jTableFfs
.getSelectedRow() < 0) {
761 if (jTableFfsAttribs
.getSelectedRow() >= 0) {
762 docConsole
.setSaved(false);
763 ffsAttributesTableModel
.removeRow(jTableFfsAttribs
.getSelectedRow());
764 ffc
.removeBuildOptionsFfsAttribute(jTableFfs
.getSelectedRow(),
765 jTableFfsAttribs
.getSelectedRow());
770 return jButtonFfsAttribRemove
;
774 * This method initializes jScrollPane
776 * @return javax.swing.JScrollPane
778 private JScrollPane
getJScrollPaneFfs() {
779 if (jScrollPaneFfs
== null) {
780 jScrollPaneFfs
= new JScrollPane();
781 jScrollPaneFfs
.setPreferredSize(new java
.awt
.Dimension(150, 419));
782 jScrollPaneFfs
.setViewportView(getJTableFfs());
784 return jScrollPaneFfs
;
788 * This method initializes jTable
790 * @return javax.swing.JTable
792 private JTable
getJTableFfs() {
793 if (jTableFfs
== null) {
794 ffsTableModel
= new DefaultTableModel();
795 ffsTableModel
.addColumn("FFS Type");
796 jTableFfs
= new JTable(ffsTableModel
);
797 jTableFfs
.setShowGrid(false);
798 jTableFfs
.setRowHeight(20);
800 jTableFfs
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
801 jTableFfs
.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
802 public void valueChanged(ListSelectionEvent e
) {
804 if (e
.getValueIsAdjusting()) {
807 ListSelectionModel lsm
= (ListSelectionModel
) e
.getSource();
808 if (lsm
.isSelectionEmpty()) {
811 int row
= lsm
.getMinSelectionIndex();
812 sectionTableModel
.setRowCount(0);
813 sectionsTableModel
.setRowCount(0);
814 subsectionsTableModel
.setRowCount(0);
815 ffsAttributesTableModel
.setRowCount(0);
816 String
[] sArray
= { "", "" };
817 LinkedHashMap
<String
, String
> lhm
= new LinkedHashMap
<String
, String
>();
818 ArrayList
<String
> alSections
= new ArrayList
<String
>();
819 ArrayList
<String
> alSection
= new ArrayList
<String
>();
820 ffc
.getBuildOptionsFfs(row
, sArray
, lhm
, alSections
, alSection
);
821 jTextFieldFfsKey
.setText(sArray
[0]);
822 jTextFieldEncapType
.setText(sArray
[1]);
823 for (int i
= 0; i
< alSection
.size(); ++i
) {
824 String
[] sectionRow
= { alSection
.get(i
) };
825 sectionTableModel
.addRow(sectionRow
);
827 for (int j
= 0; j
< alSections
.size(); ++j
) {
828 String
[] sectionsRow
= { alSections
.get(j
) };
829 sectionsTableModel
.addRow(sectionsRow
);
831 if (lhm
.size() <= 0) {
834 Set
<String
> keySet
= lhm
.keySet();
835 Iterator
<String
> is
= keySet
.iterator();
836 while (is
.hasNext()) {
837 String key
= is
.next();
838 String
[] attribRow
= { key
, lhm
.get(key
) };
839 ffsAttributesTableModel
.addRow(attribRow
);
845 jTableFfs
.getModel().addTableModelListener(new TableModelListener() {
846 public void tableChanged(TableModelEvent arg0
) {
847 // TODO Auto-generated method stub
848 int row
= arg0
.getFirstRow();
849 TableModel m
= (TableModel
) arg0
.getSource();
850 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
851 //ToDo Data Validition check.
852 String id
= m
.getValueAt(row
, 0) + "";
854 if (id
.length() == 0) {
857 docConsole
.setSaved(false);
858 ffc
.updateBuildOptionsFfsKey(row
, id
);
867 * This method initializes jScrollPane1
869 * @return javax.swing.JScrollPane
871 private JScrollPane
getJScrollPaneFfsSection() {
872 if (jScrollPaneFfsSection
== null) {
873 jScrollPaneFfsSection
= new JScrollPane();
874 // jScrollPaneFfsSection.setPreferredSize(new java.awt.Dimension(500, 80));
875 jScrollPaneFfsSection
.setViewportView(getJTableFfsSection());
877 return jScrollPaneFfsSection
;
881 * This method initializes jTable1
883 * @return javax.swing.JTable
885 private JTable
getJTableFfsSection() {
886 if (jTableFfsSection
== null) {
887 sectionTableModel
= new DefaultTableModel();
888 sectionTableModel
.addColumn("SectionType");
890 jTableFfsSection
= new JTable(sectionTableModel
);
891 jTableFfsSection
.setRowHeight(20);
892 JComboBox cb
= new JComboBox();
893 cb
.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
894 cb
.addItem("EFI_SECTION_VERSION");
895 cb
.addItem("EFI_SECTION_USER_INTERFACE");
896 cb
.addItem("EFI_SECTION_DXE_DEPEX");
897 cb
.addItem("EFI_SECTION_PEI_DEPEX");
898 cb
.addItem("EFI_SECTION_PE32");
899 cb
.addItem("EFI_SECTION_PIC");
900 cb
.addItem("EFI_SECTION_TE");
901 cb
.addItem("EFI_SECTION_RAW");
902 cb
.addItem("EFI_SECTION_COMPRESSION");
903 cb
.addItem("EFI_SECTION_GUID_DEFINED");
904 cb
.addItem("EFI_SECTION_COMPATIBILITY16");
905 cb
.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
906 jTableFfsSection
.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb
));
908 jTableFfsSection
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
910 jTableFfsSection
.getModel().addTableModelListener(new TableModelListener() {
911 public void tableChanged(TableModelEvent arg0
) {
912 // TODO Auto-generated method stub
913 if (jTableFfs
.getSelectedRow() < 0) {
916 int row
= arg0
.getFirstRow();
917 TableModel m
= (TableModel
) arg0
.getSource();
918 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
919 //ToDo Data Validition check.
920 String type
= m
.getValueAt(row
, 0) + "";
921 docConsole
.setSaved(false);
922 ffc
.updateBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(), row
, type
);
927 return jTableFfsSection
;
931 * This method initializes jScrollPane3
933 * @return javax.swing.JScrollPane
935 private JScrollPane
getJScrollPaneFfsSubSection() {
936 if (jScrollPaneFfsSubSection
== null) {
937 jScrollPaneFfsSubSection
= new JScrollPane();
938 // jScrollPaneFfsSubSection.setPreferredSize(new java.awt.Dimension(500, 90));
939 jScrollPaneFfsSubSection
.setViewportView(getJTableFfsSubSection());
941 return jScrollPaneFfsSubSection
;
945 * This method initializes jTable3
947 * @return javax.swing.JTable
949 private JTable
getJTableFfsSubSection() {
950 if (jTableFfsSubSection
== null) {
951 subsectionsTableModel
= new DefaultTableModel();
952 subsectionsTableModel
.addColumn("SectionType");
953 jTableFfsSubSection
= new JTable(subsectionsTableModel
);
954 jTableFfsSubSection
.setRowHeight(20);
955 JComboBox cb
= new JComboBox();
956 cb
.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
957 cb
.addItem("EFI_SECTION_VERSION");
958 cb
.addItem("EFI_SECTION_USER_INTERFACE");
959 cb
.addItem("EFI_SECTION_DXE_DEPEX");
960 cb
.addItem("EFI_SECTION_PEI_DEPEX");
961 cb
.addItem("EFI_SECTION_PE32");
962 cb
.addItem("EFI_SECTION_PIC");
963 cb
.addItem("EFI_SECTION_TE");
964 cb
.addItem("EFI_SECTION_RAW");
965 cb
.addItem("EFI_SECTION_COMPRESSION");
966 cb
.addItem("EFI_SECTION_GUID_DEFINED");
967 cb
.addItem("EFI_SECTION_COMPATIBILITY16");
968 cb
.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
969 jTableFfsSubSection
.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb
));
970 jTableFfsSubSection
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
972 jTableFfsSubSection
.getModel().addTableModelListener(new TableModelListener() {
973 public void tableChanged(TableModelEvent arg0
) {
974 // TODO Auto-generated method stub
975 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
978 int row
= arg0
.getFirstRow();
979 TableModel m
= (TableModel
) arg0
.getSource();
980 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
981 //ToDo Data Validition check.
982 String type
= m
.getValueAt(row
, 0) + "";
983 docConsole
.setSaved(false);
984 ffc
.updateBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(),
985 jTableFfsSections
.getSelectedRow(), row
, type
);
990 return jTableFfsSubSection
;
994 * This method initializes jTextField
996 * @return javax.swing.JTextField
998 private JTextField
getJTextFieldEncapType() {
999 if (jTextFieldEncapType
== null) {
1000 jTextFieldEncapType
= new JTextField();
1001 jTextFieldEncapType
.setPreferredSize(new java
.awt
.Dimension(100, 20));
1002 jTextFieldEncapType
.addFocusListener(new java
.awt
.event
.FocusAdapter() {
1003 public void focusLost(java
.awt
.event
.FocusEvent e
) {
1004 if (jTableFfs
.getSelectedRow() < 0) {
1007 ffc
.updateBuildOptionsFfsSectionsType(jTableFfs
.getSelectedRow(), jTextFieldEncapType
.getText());
1011 return jTextFieldEncapType
;
1015 * This method initializes jPanel4
1017 * @return javax.swing.JPanel
1019 private JPanel
getJPanelFfsAttribButtonGroup() {
1020 if (jPanelFfsAttribButtonGroup
== null) {
1021 jPanelFfsAttribButtonGroup
= new JPanel();
1022 jPanelFfsAttribButtonGroup
.setPreferredSize(new java
.awt
.Dimension(100, 100));
1023 jPanelFfsAttribButtonGroup
.add(getJButtonFfsAttribNew(), null);
1024 jPanelFfsAttribButtonGroup
.add(getJButtonFfsAttribRemove(), null);
1026 return jPanelFfsAttribButtonGroup
;
1030 * This method initializes jButton
1032 * @return javax.swing.JButton
1034 private JButton
getJButtonFfsSectionNew() {
1035 if (jButtonFfsSectionNew
== null) {
1036 jButtonFfsSectionNew
= new JButton();
1037 jButtonFfsSectionNew
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1038 jButtonFfsSectionNew
.setText("New");
1039 jButtonFfsSectionNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1040 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1041 if (jTableFfs
.getSelectedRow() < 0) {
1044 docConsole
.setSaved(false);
1045 String
[] row
= { "EFI_SECTION_RAW" };
1046 sectionTableModel
.addRow(row
);
1047 ffc
.genBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(), row
[0]);
1051 return jButtonFfsSectionNew
;
1055 * This method initializes jButton1
1057 * @return javax.swing.JButton
1059 private JButton
getJButtonFfsSectionRemove() {
1060 if (jButtonFfsSectionRemove
== null) {
1061 jButtonFfsSectionRemove
= new JButton();
1062 jButtonFfsSectionRemove
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1063 jButtonFfsSectionRemove
.setText("Remove");
1065 jButtonFfsSectionRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1066 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1067 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSection
.getSelectedRow() < 0) {
1070 docConsole
.setSaved(false);
1071 sectionTableModel
.removeRow(jTableFfsSection
.getSelectedRow());
1072 ffc
.removeBuildOptionsFfsSectionsSection(jTableFfs
.getSelectedRow(),
1073 jTableFfsSection
.getSelectedRow());
1077 return jButtonFfsSectionRemove
;
1081 * This method initializes jButton2
1083 * @return javax.swing.JButton
1085 private JButton
getJButtonFfsSubSectionNew() {
1086 if (jButtonFfsSubSectionNew
== null) {
1087 jButtonFfsSubSectionNew
= new JButton();
1088 jButtonFfsSubSectionNew
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1089 jButtonFfsSubSectionNew
.setText("New");
1090 jButtonFfsSubSectionNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1091 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1092 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
1095 docConsole
.setSaved(false);
1096 String
[] row
= { "EFI_SECTION_RAW" };
1097 subsectionsTableModel
.addRow(row
);
1098 ffc
.genBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(),
1099 jTableFfsSections
.getSelectedRow(), row
[0]);
1104 return jButtonFfsSubSectionNew
;
1108 * This method initializes jButton3
1110 * @return javax.swing.JButton
1112 private JButton
getJButtonFfsSubSectionRemove() {
1113 if (jButtonFfsSubSectionRemove
== null) {
1114 jButtonFfsSubSectionRemove
= new JButton();
1115 jButtonFfsSubSectionRemove
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1116 jButtonFfsSubSectionRemove
.setText("Remove");
1117 jButtonFfsSubSectionRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1118 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1119 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0
1120 || jTableFfsSubSection
.getSelectedRow() < 0) {
1123 docConsole
.setSaved(false);
1124 subsectionsTableModel
.removeRow(jTableFfsSubSection
.getSelectedRow());
1125 ffc
.removeBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(),
1126 jTableFfsSections
.getSelectedRow(),
1127 jTableFfsSubSection
.getSelectedRow());
1131 return jButtonFfsSubSectionRemove
;
1135 * This method initializes jButton6
1137 * @return javax.swing.JButton
1139 private JButton
getJButtonFfsSectionsNew() {
1140 if (jButtonFfsSectionsNew
== null) {
1141 jButtonFfsSectionsNew
= new JButton();
1142 jButtonFfsSectionsNew
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1143 jButtonFfsSectionsNew
.setText("New");
1144 jButtonFfsSectionsNew
.addActionListener(new java
.awt
.event
.ActionListener() {
1145 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1146 if (jTableFfs
.getSelectedRow() < 0) {
1149 docConsole
.setSaved(false);
1150 String
[] row
= { "" };
1151 sectionsTableModel
.addRow(row
);
1152 ffc
.genBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(), "");
1156 return jButtonFfsSectionsNew
;
1160 * This method initializes jButton7
1162 * @return javax.swing.JButton
1164 private JButton
getJButtonFfsSectionsRemove() {
1165 if (jButtonFfsSectionsRemove
== null) {
1166 jButtonFfsSectionsRemove
= new JButton();
1167 jButtonFfsSectionsRemove
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1168 jButtonFfsSectionsRemove
.setText("Remove");
1169 jButtonFfsSectionsRemove
.addActionListener(new java
.awt
.event
.ActionListener() {
1170 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1171 if (jTableFfs
.getSelectedRow() < 0 || jTableFfsSections
.getSelectedRow() < 0) {
1174 docConsole
.setSaved(false);
1175 sectionsTableModel
.removeRow(jTableFfsSections
.getSelectedRow());
1176 ffc
.removeBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(),
1177 jTableFfsSections
.getSelectedRow());
1178 subsectionsTableModel
.setRowCount(0);
1182 return jButtonFfsSectionsRemove
;
1185 private JScrollPane
getJScrollPaneFfsSections() {
1186 if (jScrollPaneFfsSections
== null) {
1187 jScrollPaneFfsSections
= new JScrollPane();
1188 // jScrollPaneFfsSections.setPreferredSize(new java.awt.Dimension(500, 80));
1189 jScrollPaneFfsSections
.setViewportView(getJTableFfsSections());
1191 return jScrollPaneFfsSections
;
1195 * This method initializes jTable6
1197 * @return javax.swing.JTable
1199 private JTable
getJTableFfsSections() {
1200 if (jTableFfsSections
== null) {
1201 sectionsTableModel
= new DefaultTableModel();
1202 sectionsTableModel
.addColumn("EncapsulationType");
1203 jTableFfsSections
= new JTable(sectionsTableModel
);
1204 jTableFfsSections
.setRowHeight(20);
1205 jTableFfsSections
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1206 jTableFfsSections
.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
1207 public void valueChanged(ListSelectionEvent e
) {
1208 if (e
.getValueIsAdjusting()) {
1211 ListSelectionModel lsm
= (ListSelectionModel
) e
.getSource();
1212 if (lsm
.isSelectionEmpty()) {
1215 int sectionsRow
= lsm
.getMinSelectionIndex();
1216 if (jTableFfs
.getSelectedRow() < 0) {
1219 subsectionsTableModel
.setRowCount(0);
1220 ArrayList
<String
> al
= new ArrayList
<String
>();
1221 ffc
.getBuildOptionsFfsSectionsSectionsSection(jTableFfs
.getSelectedRow(), sectionsRow
, al
);
1222 for (int i
= 0; i
< al
.size(); ++i
) {
1223 String
[] subsectionRow
= { al
.get(i
) };
1224 subsectionsTableModel
.addRow(subsectionRow
);
1230 jTableFfsSections
.getModel().addTableModelListener(new TableModelListener() {
1231 public void tableChanged(TableModelEvent arg0
) {
1232 // TODO Auto-generated method stub
1233 int row
= arg0
.getFirstRow();
1234 TableModel m
= (TableModel
) arg0
.getSource();
1235 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
1236 //ToDo Data Validition check.
1237 String encapType
= m
.getValueAt(row
, 0) + "";
1238 docConsole
.setSaved(false);
1239 ffc
.updateBuildOptionsFfsSectionsSections(jTableFfs
.getSelectedRow(), row
, encapType
);
1244 return jTableFfsSections
;
1248 * This method initializes jSplitPaneFfsC
1250 * @return javax.swing.JSplitPane
1252 private JSplitPane
getJSplitPaneFfsC() {
1253 if (jSplitPaneFfsC
== null) {
1254 jSplitPaneFfsC
= new JSplitPane();
1255 jSplitPaneFfsC
.setOrientation(javax
.swing
.JSplitPane
.VERTICAL_SPLIT
);
1256 jSplitPaneFfsC
.setDividerLocation(130);
1257 jSplitPaneFfsC
.setTopComponent(getJPanelFfsCTop());
1258 jSplitPaneFfsC
.setBottomComponent(getJSplitPaneFfsCBottom());
1259 jSplitPaneFfsC
.setDividerSize(5);
1261 return jSplitPaneFfsC
;
1265 * This method initializes jPanelFfsCTop
1267 * @return javax.swing.JPanel
1269 private JPanel
getJPanelFfsCTop() {
1270 if (jPanelFfsCTop
== null) {
1271 jPanelFfsCTop
= new JPanel();
1272 jPanelFfsCTop
.setLayout(new BorderLayout());
1273 jPanelFfsCTop
.add(getJPanelSectionN(), java
.awt
.BorderLayout
.NORTH
);
1274 jPanelFfsCTop
.add(getJScrollPaneFfsSection(), java
.awt
.BorderLayout
.CENTER
);
1276 return jPanelFfsCTop
;
1280 * This method initializes jSplitPaneFfsCBottom
1282 * @return javax.swing.JSplitPane
1284 private JSplitPane
getJSplitPaneFfsCBottom() {
1285 if (jSplitPaneFfsCBottom
== null) {
1286 jSplitPaneFfsCBottom
= new JSplitPane();
1287 jSplitPaneFfsCBottom
.setDividerSize(5);
1288 jSplitPaneFfsCBottom
.setDividerLocation(130);
1289 jSplitPaneFfsCBottom
.setTopComponent(getJPanelFfsCBottomTop());
1290 jSplitPaneFfsCBottom
.setBottomComponent(getJPanelFfsCBottomBottom());
1291 jSplitPaneFfsCBottom
.setOrientation(javax
.swing
.JSplitPane
.VERTICAL_SPLIT
);
1293 return jSplitPaneFfsCBottom
;
1297 * This method initializes jPanelFfsCBottomTop
1299 * @return javax.swing.JPanel
1301 private JPanel
getJPanelFfsCBottomTop() {
1302 if (jPanelFfsCBottomTop
== null) {
1303 jPanelFfsCBottomTop
= new JPanel();
1304 jPanelFfsCBottomTop
.setLayout(new BorderLayout());
1305 jPanelFfsCBottomTop
.add(getJPanelSectionsN(), java
.awt
.BorderLayout
.NORTH
);
1306 jPanelFfsCBottomTop
.add(getJScrollPaneFfsSections(), java
.awt
.BorderLayout
.CENTER
);
1308 return jPanelFfsCBottomTop
;
1312 * This method initializes jPanelFfsCBottomBottom
1314 * @return javax.swing.JPanel
1316 private JPanel
getJPanelFfsCBottomBottom() {
1317 if (jPanelFfsCBottomBottom
== null) {
1318 jPanelFfsCBottomBottom
= new JPanel();
1319 jPanelFfsCBottomBottom
.setLayout(new BorderLayout());
1320 jPanelFfsCBottomBottom
.add(getJPanelSubSectionN(), java
.awt
.BorderLayout
.NORTH
);
1321 jPanelFfsCBottomBottom
.add(getJScrollPaneFfsSubSection(), java
.awt
.BorderLayout
.CENTER
);
1323 return jPanelFfsCBottomBottom
;
1327 * This method initializes jPanelSectionN
1329 * @return javax.swing.JPanel
1331 private JPanel
getJPanelSectionN() {
1332 if (jPanelSectionN
== null) {
1333 jPanelSectionN
= new JPanel();
1334 jLabelFfsSection
= new JLabel();
1335 jLabelFfsSection
.setText("Section");
1336 jPanelSectionN
.add(jLabelFfsSection
, null);
1337 jPanelSectionN
.add(getJButtonFfsSectionNew(), null);
1338 jPanelSectionN
.add(getJButtonFfsSectionRemove(), null);
1340 return jPanelSectionN
;
1344 * This method initializes jPanelSectionsN
1346 * @return javax.swing.JPanel
1348 private JPanel
getJPanelSectionsN() {
1349 if (jPanelSectionsN
== null) {
1350 jPanelSectionsN
= new JPanel();
1351 jLabelFfsSections
= new JLabel();
1352 jLabelFfsSections
.setText("Sections");
1353 jPanelSectionsN
.add(jLabelFfsSections
, null);
1354 jPanelSectionsN
.add(getJButtonFfsSectionsNew(), null);
1355 jPanelSectionsN
.add(getJButtonFfsSectionsRemove(), null);
1357 return jPanelSectionsN
;
1361 * This method initializes jPanelSubSectionN
1363 * @return javax.swing.JPanel
1365 private JPanel
getJPanelSubSectionN() {
1366 if (jPanelSubSectionN
== null) {
1367 jPanelSubSectionN
= new JPanel();
1368 jLabelFfsSubSections
= new JLabel();
1369 jLabelFfsSubSections
.setText("Sub-Sections");
1370 jPanelSubSectionN
.add(jLabelFfsSubSections
, null);
1371 jPanelSubSectionN
.add(getJButtonFfsSubSectionNew(), null);
1372 jPanelSubSectionN
.add(getJButtonFfsSubSectionRemove(), null);
1374 return jPanelSubSectionN
;
1378 * The following section contains all Build Options content
1382 * This method initializes jPanelOptionsTab
1384 * This is the main Options screen
1386 * @return javax.swing.JPanel jPanelOptionsTab
1388 private JPanel
getJPanelOptionsTab() {
1389 if (jPanelOptionsTab
== null) {
1390 // This container holds the Options Tab content
1392 // FlowLayout flowLayout9 = new FlowLayout();
1393 // flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);
1395 GridLayout gridLayout
= new GridLayout();
1396 gridLayout
.setRows(2);
1397 jPanelOptionsTab
= new JPanel();
1398 jPanelOptionsTab
.setLayout(gridLayout
);
1399 jPanelOptionsTab
.setBounds(new java
.awt
.Rectangle(0, 0, dialogWidth
* 2, dialogHeight
* 3));
1400 jPanelOptionsTab
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
+ 10, (dialogHeight
* 3) + 10));
1401 jPanelOptionsTab
.setAutoscrolls(true);
1402 jPanelOptionsTab
.setLocation(0, 0);
1403 jPanelOptionsTab
.add(getJPanelOptionsContainer(), null);
1404 // jPanelOptionsTab.add(getJScrollPaneOptions(), null);
1405 jPanelOptionsTab
.add(getJPanelTableOptionsContainer(), null);
1407 return jPanelOptionsTab
;
1411 * This method initializes jPanelOptionsContainer
1413 * @return javax.swing.JPanel
1415 private JPanel
getJPanelOptionsContainer() {
1416 if (jPanelOptionsContainer
== null) {
1417 jLabelTagName
= new JLabel();
1418 jLabelTagName
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowOne
, labelWidth
, oneRowHeight
));
1419 jLabelTagName
.setLocation(new java
.awt
.Point(labelColumn
, rowOne
));
1420 jLabelTagName
.setText("Tag Name");
1421 jLabelBuildTargets
= new JLabel();
1422 jLabelBuildTargets
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowTwo
, labelWidth
, oneRowHeight
));
1423 jLabelBuildTargets
.setLocation(new java
.awt
.Point(labelColumn
, rowTwo
));
1424 jLabelBuildTargets
.setText("Build Targets");
1425 jLabelToolCmd
= new JLabel();
1426 jLabelToolCmd
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowThree
, labelWidth
, oneRowHeight
));
1427 jLabelToolCmd
.setLocation(new java
.awt
.Point(labelColumn
, rowThree
));
1428 jLabelToolCmd
.setText("Tool Command");
1429 jLabelSupArch
= new JLabel();
1430 jLabelSupArch
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowFour
, labelWidth
, oneRowHeight
));
1431 jLabelSupArch
.setLocation(new java
.awt
.Point(labelColumn
, rowFour
));
1432 jLabelSupArch
.setText("Supported Architectures");
1433 jLabelToolChainFamily
= new JLabel();
1434 jLabelToolChainFamily
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowFive
, labelWidth
, oneRowHeight
));
1435 jLabelToolChainFamily
.setLocation(new java
.awt
.Point(labelColumn
, rowFive
));
1436 jLabelToolChainFamily
.setText("Tool Chain Family");
1438 jLabelOptionContents
= new JLabel();
1439 jLabelOptionContents
.setBounds(new java
.awt
.Rectangle(labelColumn
, rowSix
, labelWidth
, oneRowHeight
));
1440 jLabelOptionContents
.setLocation(new java
.awt
.Point(labelColumn
, rowSix
));
1441 jLabelOptionContents
.setText("Argument Strings");
1443 jPanelOptionsContainer
= new JPanel();
1445 jPanelOptionsContainer
.setLayout(null);
1447 jPanelOptionsContainer
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
, dialogHeight
));
1449 jPanelOptionsContainer
1450 .setBorder(javax.swing.BorderFactory
1451 .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
1453 jPanelOptionsContainer
.add(jLabelTagName
, null);
1454 jPanelOptionsContainer
.add(getJTextFieldTagName(), null);
1456 jPanelOptionsContainer
.add(jLabelBuildTargets
, null);
1457 jPanelOptionsContainer
.add(getJTextFieldBuildTargets(), null);
1459 jPanelOptionsContainer
.add(jLabelToolChainFamily
, null);
1460 jPanelOptionsContainer
.add(getJTextFieldToolChainFamily(), null);
1462 jPanelOptionsContainer
.add(jLabelToolCmd
, null);
1463 jPanelOptionsContainer
.add(getJTextFieldToolCmd(), null);
1465 jPanelOptionsContainer
.add(jLabelSupArch
, null);
1466 jPanelOptionsContainer
.add(getArchitectureSelections(), null);
1468 jPanelOptionsContainer
.add(jLabelOptionContents
, null);
1469 jPanelOptionsContainer
.add(getJTextFieldOptionContents(), null);
1471 jPanelOptionsContainer
.add(getJButtonOptionsAdd(), null);
1472 jPanelOptionsContainer
.add(getJButtonOptionsDel(), null);
1474 return jPanelOptionsContainer
;
1478 * This method initializes jTextFieldOptionTagName Row 1
1480 * @return javax.swing.JTextField
1482 private JTextField
getJTextFieldTagName() {
1483 if (jTextFieldTagName
== null) {
1484 jTextFieldTagName
= new JTextField();
1485 jTextFieldTagName
.setBounds(new java
.awt
.Rectangle(fieldColumn
, rowOne
, fieldWidth
, oneRowHeight
));
1486 jTextFieldTagName
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1487 jTextFieldTagName
.setLocation(new java
.awt
.Point(fieldColumn
, rowOne
));
1489 return jTextFieldTagName
;
1493 * This method initializes jTextFieldBuildTargets Row 2
1495 * @return javax.swing.JTextField jTextFieldBuildTargets
1497 private JTextField
getJTextFieldBuildTargets() {
1498 if (jTextFieldBuildTargets
== null) {
1499 jTextFieldBuildTargets
= new JTextField();
1500 jTextFieldBuildTargets
.setBounds(new java
.awt
.Rectangle(fieldColumn
, rowTwo
, fieldWidth
, oneRowHeight
));
1501 jTextFieldBuildTargets
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1502 jTextFieldBuildTargets
.setLocation(new java
.awt
.Point(fieldColumn
, rowTwo
));
1504 return jTextFieldBuildTargets
;
1508 * This method initializes jTextFieldToolCmd Row 3
1510 * This should be a dropdown box of command codes from tools_def.txt
1512 * @return javax.swing.JTextField jTextFieldToolCmd
1514 private JTextField
getJTextFieldToolCmd() {
1515 if (jTextFieldToolCmd
== null) {
1516 jTextFieldToolCmd
= new JTextField();
1517 jTextFieldToolCmd
.setBounds(new java
.awt
.Rectangle(fieldColumn
, rowThree
, fieldWidth
, oneRowHeight
));
1518 jTextFieldToolCmd
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1519 jTextFieldToolCmd
.setLocation(new java
.awt
.Point(fieldColumn
, rowThree
));
1521 return jTextFieldToolCmd
;
1525 * This method initializes jArchitectureSelections Row 4
1527 * @return jArchitectureSelections
1529 private JPanel
getArchitectureSelections() {
1530 if (jArchitectureSelections
== null) {
1531 jArchitectureSelections
= new JPanel();
1532 jArchitectureSelections
.setLayout(null);
1533 jArchitectureSelections
.add(getJCheckBoxIA32(), null);
1534 jArchitectureSelections
.add(getJCheckBoxX64(), null);
1535 jArchitectureSelections
.add(getJCheckBoxIpf(), null);
1536 jArchitectureSelections
.add(getJCheckBoxEBC(), null);
1537 jArchitectureSelections
.add(getJCheckBoxARM(), null);
1538 jArchitectureSelections
.add(getJCheckBoxPPC(), null);
1539 jArchitectureSelections
.setBounds(new java
.awt
.Rectangle(fieldColumn
, rowFour
, fieldWidth
, oneRowHeight
));
1540 jArchitectureSelections
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1541 jArchitectureSelections
.setLocation(new java
.awt
.Point(fieldColumn
, rowFour
));
1543 return jArchitectureSelections
;
1547 * This method initializes jCheckBoxIA32
1549 * @return javax.swing.JCheckBox jCheckBoxIA32
1551 private JCheckBox
getJCheckBoxIA32() {
1552 if (jCheckBoxIA32
== null) {
1553 jCheckBoxIA32
= new JCheckBox();
1554 jCheckBoxIA32
.setBounds(new java
.awt
.Rectangle(0, 0, 55, 20));
1555 jCheckBoxIA32
.setText("IA32");
1557 return jCheckBoxIA32
;
1561 * This method initializes jCheckBoxX64
1563 * @return javax.swing.JCheckBox jCheckBoxX64
1565 private JCheckBox
getJCheckBoxX64() {
1566 if (jCheckBoxX64
== null) {
1567 jCheckBoxX64
= new JCheckBox();
1568 jCheckBoxX64
.setText("X64");
1569 jCheckBoxX64
.setBounds(new java
.awt
.Rectangle(55, 0, 53, 20));
1571 return jCheckBoxX64
;
1575 * This method initializes jCheckBoxIpf
1577 * @return javax.swing.JCheckBox jCheckBoxIpf
1579 private JCheckBox
getJCheckBoxIpf() {
1580 if (jCheckBoxIpf
== null) {
1581 jCheckBoxIpf
= new JCheckBox();
1582 jCheckBoxIpf
.setBounds(new java
.awt
.Rectangle(108, 0, 52, 20));
1583 jCheckBoxIpf
.setText("IPF");
1585 return jCheckBoxIpf
;
1590 * This method initializes jCheckBoxEBC
1592 * @return javax.swing.JCheckBox jCheckBoxEBC
1594 private JCheckBox
getJCheckBoxEBC() {
1595 if (jCheckBoxEBC
== null) {
1596 jCheckBoxEBC
= new JCheckBox();
1597 jCheckBoxEBC
.setBounds(new java
.awt
.Rectangle(160, 0, 53, 20));
1598 jCheckBoxEBC
.setText("EBC");
1600 return jCheckBoxEBC
;
1604 * This method initializes jCheckBoxARM
1606 * @return javax.swing.JCheckBox jCheckBoxARM
1608 private JCheckBox
getJCheckBoxARM() {
1609 if (jCheckBoxARM
== null) {
1610 jCheckBoxARM
= new JCheckBox();
1611 jCheckBoxARM
.setBounds(new java
.awt
.Rectangle(213, 0, 54, 20));
1612 jCheckBoxARM
.setText("ARM");
1614 return jCheckBoxARM
;
1618 * This method initializes jCheckBoxPPC
1620 * @return javax.swing.JCheckBox jCheckBoxPPC
1622 private JCheckBox
getJCheckBoxPPC() {
1623 if (jCheckBoxPPC
== null) {
1624 jCheckBoxPPC
= new JCheckBox();
1625 jCheckBoxPPC
.setBounds(new java
.awt
.Rectangle(267, 0, 53, 20));
1626 jCheckBoxPPC
.setText("PPC");
1628 return jCheckBoxPPC
;
1632 * This method initializes jTextFieldToolChainFamily Row 5
1634 * This should be a drop down for MSFT, INTEL, GCC or USER_DEFINED
1636 * @return javax.swing.JTextField
1638 private JTextField
getJTextFieldToolChainFamily() {
1639 if (jTextFieldToolChainFamily
== null) {
1640 jTextFieldToolChainFamily
= new JTextField();
1641 jTextFieldToolChainFamily
.setBounds(new java
.awt
.Rectangle(fieldColumn
, rowFive
, fieldWidth
, oneRowHeight
));
1642 jTextFieldToolChainFamily
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1643 jTextFieldToolChainFamily
.setLocation(new java
.awt
.Point(fieldColumn
, rowFive
));
1645 return jTextFieldToolChainFamily
;
1649 * This method initializes jTextFieldOptionContents Row 6
1651 * This is where we should put the checkbox & entry data for the command arguments
1653 * @return javax.swing.JTextField
1655 private JTextField
getJTextFieldOptionContents() {
1656 if (jTextFieldOptionContents
== null) {
1657 jTextFieldOptionContents
= new JTextField();
1658 jTextFieldOptionContents
.setPreferredSize(new java
.awt
.Dimension(fieldWidth
, oneRowHeight
));
1659 jTextFieldOptionContents
.setBounds(fieldColumn
, rowSix
, fieldWidth
, oneRowHeight
);
1660 jTextFieldOptionContents
.setLocation(new java
.awt
.Point(fieldColumn
, rowSix
));
1662 return jTextFieldOptionContents
;
1666 * This method initializes jButtonOptionsAdd
1668 * Add entry from the top screen to the table
1670 * @return javax.swing.JButton jButtonOptionsAdd
1672 private JButton
getJButtonOptionsAdd() {
1673 if (jButtonOptionsAdd
== null) {
1674 jButtonOptionsAdd
= new JButton();
1675 jButtonOptionsAdd
.setText("Add");
1677 jButtonOptionsAdd
.setPreferredSize(new java
.awt
.Dimension(buttonWidth
, oneRowHeight
));
1678 jButtonOptionsAdd
.setBounds(new java
.awt
.Rectangle(firstButtonLoc
, buttonRow
, buttonWidth
, oneRowHeight
));
1679 jButtonOptionsAdd
.setLocation(new java
.awt
.Point(firstButtonLoc
, buttonRow
));
1680 jButtonOptionsAdd
.addActionListener(new AbstractAction() {
1684 private static final long serialVersionUID
= 1L;
1686 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1687 boolean[] boolArray
= { jCheckBoxIA32
.isSelected(), jCheckBoxIpf
.isSelected(),
1688 jCheckBoxX64
.isSelected(), jCheckBoxEBC
.isSelected(),
1689 jCheckBoxARM
.isSelected(), jCheckBoxPPC
.isSelected() };
1690 String s
= boolToList(boolArray
);
1691 Object
[] o
= { jTextFieldBuildTargets
.getText(), jTextFieldToolChainFamily
.getText(), s
,
1692 jTextFieldToolCmd
.getText(), jTextFieldTagName
.getText(),
1693 jTextFieldOptionContents
.getText() };
1694 optionsTableModel
.addRow(o
);
1695 docConsole
.setSaved(false);
1696 ffc
.genBuildOptionsOpt(stringToVector(jTextFieldBuildTargets
.getText()),
1697 jTextFieldToolChainFamily
.getText(), jTextFieldTagName
.getText(),
1698 jTextFieldToolCmd
.getText(), stringToVector(s
),
1699 jTextFieldOptionContents
.getText());
1703 return jButtonOptionsAdd
;
1707 * This method initializes jButtonOptionsDel
1709 * Remove a line from the table below
1711 * @return javax.swing.JButton jButtonOptionsDel
1713 private JButton
getJButtonOptionsDel() {
1714 if (jButtonOptionsDel
== null) {
1715 jButtonOptionsDel
= new JButton();
1716 jButtonOptionsDel
.setText("Delete");
1717 jButtonOptionsDel
.setPreferredSize(new java
.awt
.Dimension(buttonWidth
, oneRowHeight
));
1718 jButtonOptionsDel
.setBounds(new java
.awt
.Rectangle(next2LastButtonLoc
, buttonRow
, buttonWidth
, oneRowHeight
));
1719 jButtonOptionsDel
.setLocation(new java
.awt
.Point(next2LastButtonLoc
, buttonRow
));
1720 jButtonOptionsDel
.addActionListener(new AbstractAction() {
1724 private static final long serialVersionUID
= 1L;
1726 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
1727 if (selectedRow
>= 0) {
1728 optionsTableModel
.removeRow(selectedRow
);
1729 docConsole
.setSaved(false);
1730 ffc
.removeBuildOptionsOpt(selectedRow
);
1735 return jButtonOptionsDel
;
1738 public void componentResized(ComponentEvent arg0
) {
1739 int intPreferredWidth
= 500;
1741 Tools
.resizeComponentWidth(this.jScrollPaneOptions
, this.getWidth(), intPreferredWidth
);
1745 * This method initializes jScrollPaneOptions
1746 * Contains the Table and is located below the data entry section
1747 * @return javax.swing.JScrollPane jScrollPaneOptoins
1749 private JScrollPane
getJScrollPaneOptions() {
1750 if (jScrollPaneOptions
== null) {
1751 jScrollPaneOptions
= new JScrollPane();
1752 jScrollPaneOptions
.setViewportView(getJTableOptions());
1754 return jScrollPaneOptions
;
1758 * This method initializes jTableOptions
1760 * @return javax.swing.JTable jTableOptions
1762 private JTable
getJTableOptions() {
1763 if (jTableOptions
== null) {
1765 optionsTableModel
= new DefaultTableModel();
1766 jTableOptions
= new JTable(optionsTableModel
);
1767 jTableOptions
.setRowHeight(20);
1768 optionsTableModel
.addColumn("Build Targets");
1769 optionsTableModel
.addColumn("Tool Chain Family");
1770 optionsTableModel
.addColumn("Supported Architectures");
1771 optionsTableModel
.addColumn("Tool Command Code");
1772 optionsTableModel
.addColumn("TagName");
1773 optionsTableModel
.addColumn("Arguments");
1775 jTableOptions
.getColumnModel().getColumn(0).setMinWidth(buildTargetWidth
);
1776 jTableOptions
.getColumnModel().getColumn(1).setMinWidth(toolChainFamilyWidth
);
1777 jTableOptions
.getColumnModel().getColumn(2).setMinWidth(supportArchWidth
);
1778 jTableOptions
.getColumnModel().getColumn(3).setMinWidth(toolCmdCodeWidth
);
1779 jTableOptions
.getColumnModel().getColumn(4).setMinWidth(tagNameWidth
);
1780 jTableOptions
.getColumnModel().getColumn(5).setMinWidth(argWidth
);
1782 // javax.swing.table.TableColumn toolFamilyCol = jTableOptions.getColumnModel().getColumn(1);
1783 // JComboBox cb = new JComboBox();
1784 // cb.addItem("MSFT");
1785 // cb.addItem("GCC");
1786 // cb.addItem("CYGWIN");
1787 // cb.addItem("INTEL");
1788 // cb.addItem("USER_DEFINED");
1789 // toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));
1790 Vector
<String
> vArch
= new Vector
<String
>();
1797 jTableOptions
.getColumnModel().getColumn(2).setCellEditor(new ListEditor(vArch
));
1799 jTableOptions
.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());
1801 jTableOptions
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
1802 jTableOptions
.setAutoResizeMode(javax
.swing
.JTable
.AUTO_RESIZE_OFF
);
1803 jTableOptions
.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
1804 public void valueChanged(ListSelectionEvent e
) {
1806 if (e
.getValueIsAdjusting()) {
1809 ListSelectionModel lsm
= (ListSelectionModel
) e
.getSource();
1810 if (lsm
.isSelectionEmpty()) {
1813 selectedRow
= lsm
.getMinSelectionIndex();
1818 jTableOptions
.getModel().addTableModelListener(new TableModelListener() {
1819 public void tableChanged(TableModelEvent arg0
) {
1820 // TODO Auto-generated method stub
1821 int row
= arg0
.getFirstRow();
1822 TableModel m
= (TableModel
) arg0
.getSource();
1823 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
1824 //ToDo Data Validition check.
1825 String targets
= m
.getValueAt(row
, 0) + "";
1826 Vector
<Object
> targetName
= new Vector
<Object
>();
1827 String
[] sArray
= targets
.split("( )+");
1828 for (int i
= 0; i
< sArray
.length
; ++i
) {
1829 targetName
.add(sArray
[i
]);
1831 String toolChain
= m
.getValueAt(row
, 1) + "";
1832 String archs
= m
.getValueAt(row
, 2) + "";
1833 Vector
<Object
> supArch
= null;
1834 if (archs
.length() > 0) {
1835 supArch
= new Vector
<Object
>();
1836 String
[] sArray1
= archs
.split("( )+");
1837 for (int i
= 0; i
< sArray1
.length
; ++i
) {
1838 supArch
.add(sArray1
[i
]);
1842 String toolCmd
= m
.getValueAt(row
, 3) + "";
1843 String tagName
= m
.getValueAt(row
, 4) + "";
1844 String contents
= m
.getValueAt(row
, 5) + "";
1845 docConsole
.setSaved(false);
1846 ffc
.updateBuildOptionsOpt(row
, targetName
, toolChain
, tagName
, toolCmd
, supArch
, contents
);
1851 return jTableOptions
;
1854 private Vector
<Object
> stringToVector(String s
) {
1855 String
[] sArray
= s
.split(" ");
1856 Vector
<Object
> v
= null;
1857 if (s
.length() > 0) {
1858 v
= new Vector
<Object
>();
1859 for (int i
= 0; i
< sArray
.length
; ++i
) {
1866 private String
boolToList(boolean[] bool
) {
1886 if (s
.equals(" ")) {
1892 private void initOptionTable() {
1893 if (ffc
.getBuildOptionsOptCount() == 0) {
1894 //ToDo get default options from *.txt file
1897 String
[][] saa
= new String
[ffc
.getBuildOptionsOptCount()][6];
1898 ffc
.getBuildOptionsOpts(saa
);
1899 for (int i
= 0; i
< saa
.length
; ++i
) {
1900 optionsTableModel
.addRow(saa
[i
]);
1906 * Everything below should pertain to the ANT Task Tab
1910 * This method initializes jButton12
1912 * @return javax.swing.JButton
1914 private JButton
getJButtonAntTaskFileBrowse() {
1915 if (jButtonAntTaskFileBrowse
== null) {
1916 jButtonAntTaskFileBrowse
= new JButton();
1917 jButtonAntTaskFileBrowse
.setPreferredSize(new Dimension(buttonWidth
, oneRowHeight
));
1918 jButtonAntTaskFileBrowse
.setText("Browse");
1919 jButtonAntTaskFileBrowse
.addActionListener(new AbstractAction() {
1920 private static final long serialVersionUID
= 1L;
1922 public void actionPerformed(ActionEvent arg0
) {
1924 // Select files from current workspace
1926 String dirPrefix
= System
.getenv("WORKSPACE");
1927 JFileChooser chooser
= new JFileChooser(dirPrefix
);
1928 File theFile
= null;
1929 String headerDest
= null;
1931 chooser
.setMultiSelectionEnabled(false);
1932 chooser
.setFileSelectionMode(JFileChooser
.FILES_ONLY
);
1933 int retval
= chooser
.showOpenDialog(frame
);
1934 if (retval
== JFileChooser
.APPROVE_OPTION
) {
1936 theFile
= chooser
.getSelectedFile();
1937 String file
= theFile
.getPath();
1938 if (!file
.startsWith(dirPrefix
)) {
1939 JOptionPane
.showMessageDialog(frame
, "You can only select files in current package!");
1946 headerDest
= theFile
.getPath();
1947 jTextFieldAntTaskFile
.setText(headerDest
.substring(dirPrefix
.length()).replace('\\', '/'));
1953 return jButtonAntTaskFileBrowse
;
1957 * This method initializes jPanelUserDefCenterN
1959 * @return javax.swing.JPanel
1961 private JPanel
getJPanelUserDefCenterN() {
1962 if (jPanelUserDefCenterN
== null) {
1963 jPanelUserDefCenterN
= new JPanel();
1964 jPanelUserDefCenterN
.add(jLabelAntCmdOpts
, null);
1965 jPanelUserDefCenterN
.add(getJTextFieldAntCmdOpts(), null);
1966 jPanelUserDefCenterN
.add(getJButtonAntTaskAdd(), null);
1967 jPanelUserDefCenterN
.add(getJButtonAntTaskDel(), null);
1969 return jPanelUserDefCenterN
;
1973 * This method initializes jPanel8
1975 * @return javax.swing.JPanel
1977 private JPanel
getJPanelUserDef() {
1978 if (jPanelUserDef
== null) {
1979 jPanelUserDef
= new JPanel();
1980 jPanelUserDef
.setLayout(new BorderLayout());
1981 jPanelUserDef
.add(getJPanelUserDefNorth(), java
.awt
.BorderLayout
.NORTH
);
1982 jPanelUserDef
.add(getJPanelUserDefCenter(), java
.awt
.BorderLayout
.CENTER
);
1985 return jPanelUserDef
;
1989 * This method initializes jPanel9
1991 * @return javax.swing.JPanel
1993 private JPanel
getJPanelUserDefNorth() {
1994 if (jPanelUserDefNorth
== null) {
1995 jLabelAntTaskFile
= new JLabel();
1996 jLabelAntTaskFile
.setText("ANT Task File");
1997 jLabelAntTaskFile
.setPreferredSize(new java
.awt
.Dimension(80, 20));
1998 FlowLayout flowLayout8
= new FlowLayout();
1999 flowLayout8
.setAlignment(java
.awt
.FlowLayout
.CENTER
);
2000 jLabelAntTaskId
= new JLabel();
2001 jLabelAntTaskId
.setText("ID");
2002 jPanelUserDefNorth
= new JPanel();
2003 jPanelUserDefNorth
.setLayout(flowLayout8
);
2004 jPanelUserDefNorth
.add(jLabelAntTaskFile
, null);
2005 jPanelUserDefNorth
.add(getJTextFieldAntTaskFile(), null);
2006 jPanelUserDefNorth
.add(getJButtonAntTaskFileBrowse(), null);
2007 jPanelUserDefNorth
.add(jLabelAntTaskId
, null);
2008 jPanelUserDefNorth
.add(getJTextFieldAntTaskId(), null);
2010 return jPanelUserDefNorth
;
2014 * This method initializes jPanel11
2016 * @return javax.swing.JPanel
2018 private JPanel
getJPanelUserDefCenter() {
2019 if (jPanelUserDefCenter
== null) {
2020 jLabelAntCmdOpts
= new JLabel();
2021 jLabelAntCmdOpts
.setText("ANT Command Options");
2022 jLabelAntCmdOpts
.setPreferredSize(new java
.awt
.Dimension(131, 20));
2023 jPanelUserDefCenter
= new JPanel();
2024 jPanelUserDefCenter
.setLayout(new BorderLayout());
2026 jPanelUserDefCenter
.add(getJPanelUserDefCenterN(), java
.awt
.BorderLayout
.NORTH
);
2027 jPanelUserDefCenter
.add(getJScrollPaneAntTasks(), java
.awt
.BorderLayout
.CENTER
);
2029 return jPanelUserDefCenter
;
2033 * This method initializes jTextField2
2035 * @return javax.swing.JTextField
2037 private JTextField
getJTextFieldAntTaskFile() {
2038 if (jTextFieldAntTaskFile
== null) {
2039 jTextFieldAntTaskFile
= new JTextField();
2040 jTextFieldAntTaskFile
.setPreferredSize(new java
.awt
.Dimension(200, 20));
2042 return jTextFieldAntTaskFile
;
2046 * This method initializes jTextField3
2048 * @return javax.swing.JTextField
2050 private JTextField
getJTextFieldAntTaskId() {
2051 if (jTextFieldAntTaskId
== null) {
2052 jTextFieldAntTaskId
= new JTextField();
2053 jTextFieldAntTaskId
.setPreferredSize(new java
.awt
.Dimension(100, 20));
2055 return jTextFieldAntTaskId
;
2059 * This method initializes jButton4
2061 * @return javax.swing.JButton
2063 private JButton
getJButtonAntTaskAdd() {
2064 if (jButtonAntTaskAdd
== null) {
2065 jButtonAntTaskAdd
= new JButton();
2066 jButtonAntTaskAdd
.setPreferredSize(new java
.awt
.Dimension(90, 20));
2067 jButtonAntTaskAdd
.setText("Add");
2068 jButtonAntTaskAdd
.addActionListener(new ActionListener() {
2069 public void actionPerformed(ActionEvent e
) {
2070 if (!DataValidation
.isInt(jTextFieldAntTaskId
.getText())
2071 || jTextFieldAntTaskId
.getText().length() != 8) {
2072 JOptionPane
.showMessageDialog(frame
, "ID must be an 8-digit integer.");
2075 Object
[] o
= { jTextFieldAntTaskId
.getText(), null, null };
2076 o
[1] = jTextFieldAntTaskFile
.getText();
2077 o
[2] = jTextFieldAntCmdOpts
.getText();
2078 ffc
.genBuildOptionsUserDefAntTask(o
[0] + "", o
[1] + "", o
[2] + "");
2079 antTaskTableModel
.addRow(o
);
2080 docConsole
.setSaved(false);
2084 return jButtonAntTaskAdd
;
2088 * This method initializes jButton5
2090 * @return javax.swing.JButton
2092 private JButton
getJButtonAntTaskDel() {
2093 if (jButtonAntTaskDel
== null) {
2094 jButtonAntTaskDel
= new JButton();
2095 jButtonAntTaskDel
.setPreferredSize(new java
.awt
.Dimension(90, 20));
2096 jButtonAntTaskDel
.setText("Delete");
2097 jButtonAntTaskDel
.addActionListener(new ActionListener() {
2098 public void actionPerformed(ActionEvent e
) {
2099 if (selectedRow
>= 0) {
2100 docConsole
.setSaved(false);
2101 antTaskTableModel
.removeRow(selectedRow
);
2102 ffc
.removeBuildOptionsUserDefAntTask(selectedRow
);
2107 return jButtonAntTaskDel
;
2111 * This method initializes jTextField4
2113 * @return javax.swing.JTextField
2115 private JTextField
getJTextFieldAntCmdOpts() {
2116 if (jTextFieldAntCmdOpts
== null) {
2117 jTextFieldAntCmdOpts
= new JTextField();
2118 jTextFieldAntCmdOpts
.setPreferredSize(new java
.awt
.Dimension(270, 20));
2119 jTextFieldAntCmdOpts
.setEnabled(true);
2121 return jTextFieldAntCmdOpts
;
2125 * This method initializes jScrollPane2
2127 * @return javax.swing.JScrollPane
2129 private JScrollPane
getJScrollPaneAntTasks() {
2130 if (jScrollPaneAntTasks
== null) {
2131 jScrollPaneAntTasks
= new JScrollPane();
2132 jScrollPaneAntTasks
.setPreferredSize(new java
.awt
.Dimension(600, 400));
2133 jScrollPaneAntTasks
.setViewportView(getJTableAntTasks());
2135 return jScrollPaneAntTasks
;
2139 * This method initializes jTable2
2141 * @return javax.swing.JTable
2143 private JTable
getJTableAntTasks() {
2144 if (jTableAntTasks
== null) {
2145 antTaskTableModel
= new DefaultTableModel();
2146 jTableAntTasks
= new JTable(antTaskTableModel
);
2147 jTableAntTasks
.setRowHeight(20);
2148 antTaskTableModel
.addColumn("ID");
2149 antTaskTableModel
.addColumn("Filename");
2150 antTaskTableModel
.addColumn("ANT Command Options");
2152 jTableAntTasks
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
2153 jTableAntTasks
.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
2154 public void valueChanged(ListSelectionEvent e
) {
2156 if (e
.getValueIsAdjusting()) {
2159 ListSelectionModel lsm
= (ListSelectionModel
) e
.getSource();
2160 if (lsm
.isSelectionEmpty()) {
2163 selectedRow
= lsm
.getMinSelectionIndex();
2168 jTableAntTasks
.getModel().addTableModelListener(new TableModelListener() {
2169 public void tableChanged(TableModelEvent arg0
) {
2170 // TODO Auto-generated method stub
2171 int row
= arg0
.getFirstRow();
2172 TableModel m
= (TableModel
) arg0
.getSource();
2173 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
2174 //ToDo Data Validition check.
2175 String id
= m
.getValueAt(row
, 0) + "";
2176 String file
= m
.getValueAt(row
, 1) + "";
2177 String execOrder
= m
.getValueAt(row
, 2) + "";
2178 if (id
.length() == 0) {
2181 if (file
.length() == 0 && execOrder
.length() == 0) {
2184 if (file
.length() == 0) {
2187 if (execOrder
.length() == 0) {
2190 ffc
.updateBuildOptionsUserDefAntTask(row
, id
, file
, execOrder
);
2196 return jTableAntTasks
;
2199 private void initAntTaskTable() {
2200 if (ffc
.getBuildOptionsUserDefAntTaskCount() == 0) {
2203 String
[][] saa
= new String
[ffc
.getBuildOptionsUserDefAntTaskCount()][3];
2204 ffc
.getBuildOptionsUserDefAntTasks(saa
);
2205 for (int i
= 0; i
< saa
.length
; ++i
) {
2206 antTaskTableModel
.addRow(saa
[i
]);
2210 } // @jve:decl-index=0:visual-constraint="10,10"