]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@718 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdBuildOptions.java
1 /** @file
2
3 The file is used to create, update BuildOptions of Fpd file
4
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
10
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.
13
14 **/
15 package org.tianocore.frameworkwizard.platform.ui;
16
17 import java.awt.BorderLayout;
18 import java.awt.Dimension;
19
20 import javax.swing.JPanel;
21 import javax.swing.JDialog;
22 import javax.swing.JTabbedPane;
23 import javax.swing.JCheckBox;
24 import javax.swing.JLabel;
25 import java.awt.FlowLayout;
26 import javax.swing.AbstractAction;
27 import java.awt.event.ActionEvent;
28 import java.awt.event.ActionListener;
29 import java.awt.event.ItemEvent;
30 import java.awt.event.ItemListener;
31
32 import javax.swing.ButtonGroup;
33 import javax.swing.DefaultCellEditor;
34 import javax.swing.DefaultListModel;
35 import javax.swing.JTextField;
36 import javax.swing.JButton;
37 import javax.swing.JScrollPane;
38 import javax.swing.JTable;
39 import javax.swing.JComboBox;
40 import javax.swing.JRadioButton;
41 import javax.swing.ListSelectionModel;
42 import javax.swing.event.InternalFrameAdapter;
43 import javax.swing.event.InternalFrameEvent;
44 import javax.swing.event.ListSelectionEvent;
45 import javax.swing.event.ListSelectionListener;
46 import javax.swing.event.TableModelEvent;
47 import javax.swing.event.TableModelListener;
48 import javax.swing.table.DefaultTableModel;
49 import javax.swing.table.TableColumn;
50 import javax.swing.table.TableModel;
51
52 import org.tianocore.PlatformSurfaceAreaDocument;
53 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;
54 import java.awt.CardLayout;
55 import java.util.ArrayList;
56 import java.util.Iterator;
57 import java.util.LinkedHashMap;
58 import java.util.Set;
59
60 public class FpdBuildOptions extends IInternalFrame {
61
62 private static final long serialVersionUID = 1L;
63 private JPanel jContentPane = null;
64 private JPanel jPanel = null;
65 private JPanel jPanel1 = null;
66 private JPanel jPanel2 = null;
67 private JPanel jPanel3 = null;
68 private JTabbedPane jTabbedPane = null;
69 private JPanel jPanel8 = null;
70 private JPanel jPanel9 = null;
71 private JPanel jPanel10 = null;
72 private JPanel jPanel11 = null;
73 private JTextField jTextField2 = null;
74 private JLabel jLabel3 = null;
75 private JTextField jTextField3 = null;
76 private JButton jButton4 = null;
77 private JButton jButton5 = null;
78 private JTextField jTextField4 = null;
79 private JScrollPane jScrollPane2 = null;
80 private JTable jTable2 = null;
81 private DefaultTableModel ffsTableModel = null;
82 private DefaultTableModel sectionsTableModel = null;
83 private DefaultTableModel sectionTableModel = null;
84 private DefaultTableModel subsectionsTableModel = null;
85 private DefaultTableModel antTaskTableModel = null;
86 private DefaultTableModel ffsAttributesTableModel = null;
87 private DefaultTableModel optionsTableModel = null;
88 private JPanel jPanel13 = null;
89 private JPanel jPanel18 = null;
90 private JPanel jPanel15 = null;
91 private JPanel jPanel16 = null;
92 private JPanel jPanel17 = null;
93 private JLabel jLabel7 = null;
94 private JTextField jTextField6 = null;
95 private JButton jButton8 = null;
96 private JButton jButton9 = null;
97 private JScrollPane jScrollPane5 = null;
98 private JTable jTable4 = null;
99 private JPanel jPanel19 = null;
100 private JPanel jPanel20 = null;
101 private JLabel jLabel9 = null;
102 private JTextField jTextField7 = null;
103 private JLabel jLabel10 = null;
104 private JComboBox jComboBox2 = null;
105 private JLabel jLabel11 = null;
106 private JLabel jLabel12 = null;
107 private JTextField jTextField8 = null;
108 private JScrollPane jScrollPane6 = null;
109 private JTable jTable5 = null;
110 private JButton jButton10 = null;
111 private JButton jButton11 = null;
112 private DefaultListModel listModel = new DefaultListModel();
113 private JButton jButton17 = null;
114 private JButton jButton18 = null;
115 private FpdFileContents ffc = null;
116 private JButton jButton19 = null;
117 private JCheckBox jCheckBox9 = null;
118 private JCheckBox jCheckBox10 = null;
119 private JCheckBox jCheckBox11 = null;
120 private JCheckBox jCheckBox12 = null;
121 private JCheckBox jCheckBox13 = null;
122 private JCheckBox jCheckBox14 = null;
123 private JLabel jLabel14 = null;
124 private JTextField jTextField12 = null;
125 private JTextField jTextField13 = null;
126 private JLabel jLabel15 = null;
127 private int selectedRow = -1;
128 private JLabel jLabel = null;
129 private JLabel jLabel1 = null;
130 private JScrollPane jScrollPane = null;
131 private JTable jTable = null;
132 private JLabel jLabel2 = null;
133 private JScrollPane jScrollPane1 = null;
134 private JTable jTable1 = null;
135 private JLabel jLabel4 = null;
136 private JScrollPane jScrollPane3 = null;
137 private JTable jTable3 = null;
138 private JLabel jLabel5 = null;
139 private JTextField jTextField = null;
140 private JPanel jPanel4 = null;
141 private JLabel jLabel6 = null;
142 private JButton jButton = null;
143 private JButton jButton1 = null;
144 private JButton jButton2 = null;
145 private JButton jButton3 = null;
146 private JLabel jLabel8 = null;
147 private JButton jButton6 = null;
148 private JButton jButton7 = null;
149 private JScrollPane jScrollPane4 = null;
150 private JTable jTable6 = null;
151 /**
152 * This method initializes jPanel
153 *
154 * @return javax.swing.JPanel
155 */
156 private JPanel getJPanel() {
157 if (jPanel == null) {
158 jPanel = new JPanel();
159 }
160 return jPanel;
161 }
162
163 /**
164 * This method initializes jPanel1
165 *
166 * @return javax.swing.JPanel
167 */
168 private JPanel getJPanel1() {
169 if (jPanel1 == null) {
170 jPanel1 = new JPanel();
171 }
172 return jPanel1;
173 }
174
175 /**
176 * This method initializes jPanel2
177 *
178 * @return javax.swing.JPanel
179 */
180 private JPanel getJPanel2() {
181 if (jPanel2 == null) {
182 jPanel2 = new JPanel();
183 }
184 return jPanel2;
185 }
186
187 /**
188 * This method initializes jPanel3
189 *
190 * @return javax.swing.JPanel
191 */
192 private JPanel getJPanel3() {
193 if (jPanel3 == null) {
194 jPanel3 = new JPanel();
195 }
196 return jPanel3;
197 }
198
199 /**
200 * This method initializes jTabbedPane
201 *
202 * @return javax.swing.JTabbedPane
203 */
204 private JTabbedPane getJTabbedPane() {
205 if (jTabbedPane == null) {
206 jTabbedPane = new JTabbedPane();
207 jTabbedPane.addTab("FFS", null, getJPanel13(), null);
208 jTabbedPane.addTab("Options", null, getJPanel20(), null);
209 jTabbedPane.addTab("User Defined ANT Tasks", null, getJPanel8(), null);
210 }
211 return jTabbedPane;
212 }
213
214
215 /**
216 * This method initializes jPanel8
217 *
218 * @return javax.swing.JPanel
219 */
220 private JPanel getJPanel8() {
221 if (jPanel8 == null) {
222 jPanel8 = new JPanel();
223 jPanel8.setLayout(new BorderLayout());
224 jPanel8.add(getJPanel9(), java.awt.BorderLayout.NORTH);
225 jPanel8.add(getJPanel10(), java.awt.BorderLayout.SOUTH);
226 jPanel8.add(getJPanel11(), java.awt.BorderLayout.CENTER);
227
228 }
229 return jPanel8;
230 }
231
232 /**
233 * This method initializes jPanel9
234 *
235 * @return javax.swing.JPanel
236 */
237 private JPanel getJPanel9() {
238 if (jPanel9 == null) {
239 jLabel = new JLabel();
240 jLabel.setText("ANT Task File");
241 jLabel.setPreferredSize(new java.awt.Dimension(80,20));
242 FlowLayout flowLayout8 = new FlowLayout();
243 flowLayout8.setAlignment(java.awt.FlowLayout.LEFT);
244 jLabel3 = new JLabel();
245 jLabel3.setText("ID");
246 jPanel9 = new JPanel();
247 jPanel9.setLayout(flowLayout8);
248 jPanel9.add(jLabel, null);
249 jPanel9.add(getJTextField2(), null);
250 jPanel9.add(jLabel3, null);
251 jPanel9.add(getJTextField3(), null);
252 }
253 return jPanel9;
254 }
255
256 /**
257 * This method initializes jPanel10
258 *
259 * @return javax.swing.JPanel
260 */
261 private JPanel getJPanel10() {
262 if (jPanel10 == null) {
263 jPanel10 = new JPanel();
264 }
265 return jPanel10;
266 }
267
268 /**
269 * This method initializes jPanel11
270 *
271 * @return javax.swing.JPanel
272 */
273 private JPanel getJPanel11() {
274 if (jPanel11 == null) {
275 jLabel1 = new JLabel();
276 jLabel1.setText("ANT Command Options");
277 jLabel1.setPreferredSize(new java.awt.Dimension(131,20));
278 FlowLayout flowLayout3 = new FlowLayout();
279 flowLayout3.setHgap(5);
280 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);
281 jPanel11 = new JPanel();
282 jPanel11.setLayout(flowLayout3);
283 jPanel11.add(jLabel1, null);
284 jPanel11.add(getJTextField4(), null);
285 jPanel11.add(getJButton4(), null);
286 jPanel11.add(getJButton5(), null);
287 jPanel11.add(getJScrollPane2(), null);
288 }
289 return jPanel11;
290 }
291
292 /**
293 * This method initializes jTextField2
294 *
295 * @return javax.swing.JTextField
296 */
297 private JTextField getJTextField2() {
298 if (jTextField2 == null) {
299 jTextField2 = new JTextField();
300 jTextField2.setPreferredSize(new java.awt.Dimension(200,20));
301 }
302 return jTextField2;
303 }
304
305 /**
306 * This method initializes jTextField3
307 *
308 * @return javax.swing.JTextField
309 */
310 private JTextField getJTextField3() {
311 if (jTextField3 == null) {
312 jTextField3 = new JTextField();
313 jTextField3.setPreferredSize(new java.awt.Dimension(100,20));
314 }
315 return jTextField3;
316 }
317
318 /**
319 * This method initializes jButton4
320 *
321 * @return javax.swing.JButton
322 */
323 private JButton getJButton4() {
324 if (jButton4 == null) {
325 jButton4 = new JButton();
326 jButton4.setPreferredSize(new java.awt.Dimension(90,20));
327 jButton4.setText("Add");
328 jButton4.addActionListener(new ActionListener() {
329 public void actionPerformed(ActionEvent e) {
330 Object[] o = {jTextField3.getText(), null, null};
331 o[1] = jTextField2.getText();
332 o[2] = jTextField4.getText();
333 ffc.genBuildOptionsUserDefAntTask(o[0]+"", null, o[2]+"");
334 antTaskTableModel.addRow(o);
335
336 }
337 });
338 }
339 return jButton4;
340 }
341
342 /**
343 * This method initializes jButton5
344 *
345 * @return javax.swing.JButton
346 */
347 private JButton getJButton5() {
348 if (jButton5 == null) {
349 jButton5 = new JButton();
350 jButton5.setPreferredSize(new java.awt.Dimension(90,20));
351 jButton5.setText("Delete");
352 jButton5.addActionListener(new ActionListener() {
353 public void actionPerformed(ActionEvent e) {
354 if (selectedRow >= 0) {
355 antTaskTableModel.removeRow(selectedRow);
356 ffc.removeBuildOptionsUserDefAntTask(selectedRow);
357 }
358 }
359 });
360 }
361 return jButton5;
362 }
363
364 /**
365 * This method initializes jTextField4
366 *
367 * @return javax.swing.JTextField
368 */
369 private JTextField getJTextField4() {
370 if (jTextField4 == null) {
371 jTextField4 = new JTextField();
372 jTextField4.setPreferredSize(new java.awt.Dimension(270,20));
373 jTextField4.setEnabled(true);
374 }
375 return jTextField4;
376 }
377
378 /**
379 * This method initializes jScrollPane2
380 *
381 * @return javax.swing.JScrollPane
382 */
383 private JScrollPane getJScrollPane2() {
384 if (jScrollPane2 == null) {
385 jScrollPane2 = new JScrollPane();
386 jScrollPane2.setPreferredSize(new java.awt.Dimension(600,100));
387 jScrollPane2.setViewportView(getJTable2());
388 }
389 return jScrollPane2;
390 }
391
392 /**
393 * This method initializes jTable2
394 *
395 * @return javax.swing.JTable
396 */
397 private JTable getJTable2() {
398 if (jTable2 == null) {
399 antTaskTableModel = new DefaultTableModel();
400 jTable2 = new JTable(antTaskTableModel);
401 antTaskTableModel.addColumn("ID");
402 antTaskTableModel.addColumn("Filename");
403 antTaskTableModel.addColumn("ANT Command Options");
404
405 jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
406 jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
407 public void valueChanged(ListSelectionEvent e) {
408 selectedRow = -1;
409 if (e.getValueIsAdjusting()){
410 return;
411 }
412 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
413 if (lsm.isSelectionEmpty()) {
414 return;
415 }
416 else{
417 selectedRow = lsm.getMinSelectionIndex();
418 }
419 }
420 });
421
422 jTable2.getModel().addTableModelListener(new TableModelListener() {
423 public void tableChanged(TableModelEvent arg0) {
424 // TODO Auto-generated method stub
425 int row = arg0.getFirstRow();
426 TableModel m = (TableModel)arg0.getSource();
427 if (arg0.getType() == TableModelEvent.UPDATE){
428 //ToDo Data Validition check.
429 String id = m.getValueAt(row, 0) + "";
430 String file = m.getValueAt(row, 1) + "";
431 String execOrder = m.getValueAt(row, 2) + "";
432 if (id.length() == 0) {
433 return;
434 }
435 if (file.length() == 0 && execOrder.length() == 0){
436 return;
437 }
438 if (file.length() == 0) {
439 file = null;
440 }
441 if (execOrder.length() == 0) {
442 execOrder = null;
443 }
444 ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);
445
446 }
447 }
448 });
449 }
450 return jTable2;
451 }
452
453 /**
454 * This method initializes jPanel13
455 *
456 * @return javax.swing.JPanel
457 */
458 private JPanel getJPanel13() {
459 if (jPanel13 == null) {
460 jPanel13 = new JPanel();
461 jPanel13.setLayout(new BorderLayout());
462 jPanel13.add(getJPanel18(), java.awt.BorderLayout.CENTER);
463 jPanel13.add(getJScrollPane(), java.awt.BorderLayout.WEST);
464 }
465 return jPanel13;
466 }
467
468 /**
469 * This method initializes jPanel18
470 *
471 * @return javax.swing.JPanel
472 */
473 private JPanel getJPanel18() {
474 if (jPanel18 == null) {
475 jPanel18 = new JPanel();
476 jPanel18.setLayout(new BorderLayout());
477 jPanel18.add(getJPanel15(), java.awt.BorderLayout.NORTH);
478 jPanel18.add(getJPanel16(), java.awt.BorderLayout.SOUTH);
479 jPanel18.add(getJPanel17(), java.awt.BorderLayout.EAST);
480 jPanel18.add(getJPanel19(), java.awt.BorderLayout.CENTER);
481 }
482 return jPanel18;
483 }
484
485 /**
486 * This method initializes jPanel15
487 *
488 * @return javax.swing.JPanel
489 */
490 private JPanel getJPanel15() {
491 if (jPanel15 == null) {
492 jLabel5 = new JLabel();
493 jLabel5.setText("Encapsulation Type");
494 FlowLayout flowLayout5 = new FlowLayout();
495 flowLayout5.setAlignment(java.awt.FlowLayout.RIGHT);
496 jLabel7 = new JLabel();
497 jLabel7.setText("FFS Key");
498 jPanel15 = new JPanel();
499 jPanel15.setLayout(flowLayout5);
500 jPanel15.add(jLabel7, null);
501 jPanel15.add(getJTextField6(), null);
502 jPanel15.add(jLabel5, null);
503 jPanel15.add(getJTextField(), null);
504 jPanel15.add(getJButton8(), null);
505 jPanel15.add(getJButton9(), null);
506 }
507 return jPanel15;
508 }
509
510 /**
511 * This method initializes jPanel16
512 *
513 * @return javax.swing.JPanel
514 */
515 private JPanel getJPanel16() {
516 if (jPanel16 == null) {
517 jLabel6 = new JLabel();
518 jLabel6.setText("Attributes");
519 FlowLayout flowLayout6 = new FlowLayout();
520 flowLayout6.setHgap(5);
521 flowLayout6.setVgap(20);
522 flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);
523 jPanel16 = new JPanel();
524 jPanel16.setPreferredSize(new java.awt.Dimension(491,130));
525 jPanel16.setLayout(flowLayout6);
526 jPanel16.add(jLabel6, null);
527 jPanel16.add(getJScrollPane5(), null);
528 jPanel16.add(getJPanel4(), null);
529 }
530 return jPanel16;
531 }
532
533 /**
534 * This method initializes jPanel17
535 *
536 * @return javax.swing.JPanel
537 */
538 private JPanel getJPanel17() {
539 if (jPanel17 == null) {
540 jPanel17 = new JPanel();
541 }
542 return jPanel17;
543 }
544
545 /**
546 * This method initializes jTextField6
547 *
548 * @return javax.swing.JTextField
549 */
550 private JTextField getJTextField6() {
551 if (jTextField6 == null) {
552 jTextField6 = new JTextField();
553 jTextField6.setPreferredSize(new java.awt.Dimension(100,20));
554 jTextField6.setEditable(false);
555 jTextField6.addFocusListener(new java.awt.event.FocusAdapter() {
556 public void focusLost(java.awt.event.FocusEvent e) {
557 if (jTable.getSelectedRow() < 0) {
558 return;
559 }
560 // ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());
561 }
562 });
563 }
564 return jTextField6;
565 }
566
567 /**
568 * This method initializes jButton8
569 *
570 * @return javax.swing.JButton
571 */
572 private JButton getJButton8() {
573 if (jButton8 == null) {
574 jButton8 = new JButton();
575 jButton8.setPreferredSize(new java.awt.Dimension(70,20));
576 jButton8.setText("Add");
577 jButton8.addActionListener(new AbstractAction() {
578 /**
579 *
580 */
581 private static final long serialVersionUID = -2923720717273384221L;
582
583 public void actionPerformed(java.awt.event.ActionEvent e) {
584 if (jTextField6.getText().length() > 0) {
585 String[] row = {jTextField6.getText()};
586 ffsTableModel.addRow(row);
587 ffc.genBuildOptionsFfs(jTextField6.getText(), jTextField.getText());
588 }
589 }
590 });
591 }
592 return jButton8;
593 }
594
595 /**
596 * This method initializes jButton9
597 *
598 * @return javax.swing.JButton
599 */
600 private JButton getJButton9() {
601 if (jButton9 == null) {
602 jButton9 = new JButton();
603 jButton9.setPreferredSize(new java.awt.Dimension(70,20));
604 jButton9.setText("Delete");
605 jButton9.addActionListener(new AbstractAction() {
606 /**
607 *
608 */
609 private static final long serialVersionUID = -4002678939178194476L;
610
611 public void actionPerformed(ActionEvent arg0){
612 if (jTable.getSelectedRow() < 0) {
613 return;
614 }
615 ffc.removeBuildOptionsFfs(jTable.getSelectedRow());
616 }
617 });
618 }
619 return jButton9;
620 }
621
622 /**
623 * This method initializes jScrollPane5
624 *
625 * @return javax.swing.JScrollPane
626 */
627 private JScrollPane getJScrollPane5() {
628 if (jScrollPane5 == null) {
629 jScrollPane5 = new JScrollPane();
630 jScrollPane5.setPreferredSize(new java.awt.Dimension(350,100));
631 jScrollPane5.setViewportView(getJTable4());
632 }
633 return jScrollPane5;
634 }
635
636 /**
637 * This method initializes jTable4
638 *
639 * @return javax.swing.JTable
640 */
641 private JTable getJTable4() {
642 if (jTable4 == null) {
643 ffsAttributesTableModel = new DefaultTableModel();
644 jTable4 = new JTable(ffsAttributesTableModel);
645 jTable4.setPreferredSize(new java.awt.Dimension(400,80));
646 ffsAttributesTableModel.addColumn("Name");
647 ffsAttributesTableModel.addColumn("Value");
648
649 jTable4.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
650 jTable4.getModel().addTableModelListener(new TableModelListener() {
651 public void tableChanged(TableModelEvent arg0) {
652 // TODO Auto-generated method stub
653 int row = arg0.getFirstRow();
654 TableModel m = (TableModel)arg0.getSource();
655 if (arg0.getType() == TableModelEvent.UPDATE){
656 //ToDo Data Validition check.
657 String name = m.getValueAt(row, 0) + "";
658 String value = m.getValueAt(row, 1) + "";
659
660 if (name.length() == 0) {
661 return;
662 }
663 if (value.length() == 0){
664 return;
665 }
666 ffc.updateBuildOptionsFfsAttribute(jTable.getSelectedRow(), row, name, value);
667 }
668 }
669 });
670 }
671 return jTable4;
672 }
673
674 /**
675 * This method initializes jPanel19
676 *
677 * @return javax.swing.JPanel
678 */
679 private JPanel getJPanel19() {
680 if (jPanel19 == null) {
681 jLabel8 = new JLabel();
682 jLabel8.setText("Sections");
683 jLabel4 = new JLabel();
684 jLabel4.setText("Sub-Sections");
685 jLabel2 = new JLabel();
686 jLabel2.setText("Section");
687 jPanel19 = new JPanel();
688 jPanel19.setLayout(new FlowLayout());
689 jPanel19.add(jLabel2, null);
690 jPanel19.add(getJButton(), null);
691 jPanel19.add(getJButton1(), null);
692 jPanel19.add(getJScrollPane1(), null);
693 jPanel19.add(jLabel8, null);
694 jPanel19.add(getJButton6(), null);
695 jPanel19.add(getJButton7(), null);
696 jPanel19.add(getJScrollPane4(), null);
697 jPanel19.add(jLabel4, null);
698 jPanel19.add(getJButton2(), null);
699 jPanel19.add(getJButton3(), null);
700 jPanel19.add(getJScrollPane3(), null);
701 }
702 return jPanel19;
703 }
704
705 /**
706 * This method initializes jPanel20
707 *
708 * @return javax.swing.JPanel
709 */
710 private JPanel getJPanel20() {
711 if (jPanel20 == null) {
712 jLabel15 = new JLabel();
713 jLabel15.setText("Tag Name");
714 FlowLayout flowLayout9 = new FlowLayout();
715 flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);
716 jLabel14 = new JLabel();
717 jLabel14.setText("Build Targets");
718 jLabel12 = new JLabel();
719 jLabel12.setText("Tool Command");
720 jLabel11 = new JLabel();
721 jLabel11.setText("Supported Arch");
722 jLabel10 = new JLabel();
723 jLabel10.setText("Tool Chain Family");
724 jLabel9 = new JLabel();
725 jLabel9.setText("Option Contents");
726 jPanel20 = new JPanel();
727 jPanel20.setLayout(flowLayout9);
728 jPanel20.add(jLabel14, null);
729 jPanel20.add(getJTextField12(), null);
730 jPanel20.add(jLabel10, null);
731 jPanel20.add(getJComboBox2(), null);
732 jPanel20.add(jLabel12, null);
733 jPanel20.add(getJTextField8(), null);
734 jPanel20.add(jLabel11, null);
735 jPanel20.add(getJCheckBox9(), null);
736 jPanel20.add(getJCheckBox10(), null);
737 jPanel20.add(getJCheckBox11(), null);
738 jPanel20.add(getJCheckBox12(), null);
739 jPanel20.add(getJCheckBox13(), null);
740 jPanel20.add(getJCheckBox14(), null);
741 jPanel20.add(jLabel15, null);
742 jPanel20.add(getJTextField13(), null);
743 jPanel20.add(jLabel9, null);
744 jPanel20.add(getJTextField7(), null);
745 jPanel20.add(getJButton10(), null);
746 jPanel20.add(getJButton11(), null);
747 jPanel20.add(getJButton19(), null);
748 jPanel20.add(getJScrollPane6(), null);
749 }
750 return jPanel20;
751 }
752
753 /**
754 * This method initializes jTextField7
755 *
756 * @return javax.swing.JTextField
757 */
758 private JTextField getJTextField7() {
759 if (jTextField7 == null) {
760 jTextField7 = new JTextField();
761 jTextField7.setPreferredSize(new java.awt.Dimension(300,20));
762 }
763 return jTextField7;
764 }
765
766 /**
767 * This method initializes jComboBox2
768 *
769 * @return javax.swing.JComboBox
770 */
771 private JComboBox getJComboBox2() {
772 if (jComboBox2 == null) {
773 jComboBox2 = new JComboBox();
774 jComboBox2.setPreferredSize(new java.awt.Dimension(80,20));
775 jComboBox2.addItem("MSFT");
776 jComboBox2.addItem("GCC");
777 jComboBox2.addItem("CYGWIN");
778 jComboBox2.addItem("INTEL");
779 jComboBox2.setSelectedIndex(0);
780 }
781 return jComboBox2;
782 }
783
784 /**
785 * This method initializes jTextField8
786 *
787 * @return javax.swing.JTextField
788 */
789 private JTextField getJTextField8() {
790 if (jTextField8 == null) {
791 jTextField8 = new JTextField();
792 jTextField8.setPreferredSize(new java.awt.Dimension(110,20));
793 }
794 return jTextField8;
795 }
796
797 /**
798 * This method initializes jScrollPane6
799 *
800 * @return javax.swing.JScrollPane
801 */
802 private JScrollPane getJScrollPane6() {
803 if (jScrollPane6 == null) {
804 jScrollPane6 = new JScrollPane();
805 jScrollPane6.setPreferredSize(new java.awt.Dimension(630,200));
806 jScrollPane6.setViewportView(getJTable5());
807 }
808 return jScrollPane6;
809 }
810
811 /**
812 * This method initializes jTable5
813 *
814 * @return javax.swing.JTable
815 */
816 private JTable getJTable5() {
817 if (jTable5 == null) {
818 optionsTableModel = new DefaultTableModel();
819 jTable5 = new JTable(optionsTableModel);
820 optionsTableModel.addColumn("BuildTargets");
821 optionsTableModel.addColumn("ToolChainFamily");
822 optionsTableModel.addColumn("SupportedArch");
823 optionsTableModel.addColumn("ToolCommand");
824 optionsTableModel.addColumn("TagName");
825 optionsTableModel.addColumn("Contents");
826
827 TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);
828 JComboBox cb = new JComboBox();
829 cb.addItem("MSFT");
830 cb.addItem("GCC");
831 cb.addItem("CYGWIN");
832 cb.addItem("INTEL");
833 toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));
834
835 jTable5.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
836 jTable5.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
837 public void valueChanged(ListSelectionEvent e) {
838 selectedRow = -1;
839 if (e.getValueIsAdjusting()){
840 return;
841 }
842 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
843 if (lsm.isSelectionEmpty()) {
844 return;
845 }
846 else{
847 selectedRow = lsm.getMinSelectionIndex();
848 }
849 }
850 });
851
852 jTable5.getModel().addTableModelListener(new TableModelListener() {
853 public void tableChanged(TableModelEvent arg0) {
854 // TODO Auto-generated method stub
855 int row = arg0.getFirstRow();
856 TableModel m = (TableModel)arg0.getSource();
857 if (arg0.getType() == TableModelEvent.UPDATE){
858 //ToDo Data Validition check.
859 String targetName = m.getValueAt(row, 0) + "";
860 String toolChain = m.getValueAt(row, 1) + "";
861 String supArch = m.getValueAt(row, 2) + "";
862 String toolCmd = m.getValueAt(row, 3) + "";
863 String tagName = m.getValueAt(row, 4) + "";
864 String contents = m.getValueAt(row, 5) + "";
865 ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);
866 }
867 }
868 });
869 }
870 return jTable5;
871 }
872
873 /**
874 * This method initializes jButton10
875 *
876 * @return javax.swing.JButton
877 */
878 private JButton getJButton10() {
879 if (jButton10 == null) {
880 jButton10 = new JButton();
881 jButton10.setText("Add");
882 jButton10.setPreferredSize(new java.awt.Dimension(70,20));
883 jButton10.addActionListener(new AbstractAction() {
884 /**
885 *
886 */
887 private static final long serialVersionUID = 1L;
888
889 public void actionPerformed(java.awt.event.ActionEvent e) {
890 boolean[] boolArray = {jCheckBox9.isSelected(),jCheckBox10.isSelected(),jCheckBox11.isSelected(),
891 jCheckBox12.isSelected(),jCheckBox13.isSelected(),jCheckBox14.isSelected()};
892 String s = boolToList(boolArray);
893 Object[] o = {jTextField12.getText(), jComboBox2.getSelectedItem(), s,
894 jTextField8.getText(), jTextField13.getText(), jTextField7.getText()};
895 optionsTableModel.addRow(o);
896 ffc.genBuildOptionsOpt(jTextField12.getText(), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(), s, jTextField7.getText());
897 }
898 });
899 }
900 return jButton10;
901 }
902
903 private String boolToList (boolean[] bool) {
904 String s = " ";
905 if (bool[0]) {
906 s += "IA32 ";
907 }
908 if (bool[1]) {
909 s += "IPF ";
910 }
911 if (bool[2]) {
912 s += "X64 ";
913 }
914 if (bool[3]) {
915 s += "EBC ";
916 }
917 if (bool[4]) {
918 s += "ARM ";
919 }
920 if (bool[5]) {
921 s += "PPC ";
922 }
923
924 return s.trim();
925 }
926
927 /**
928 * This method initializes jButton11
929 *
930 * @return javax.swing.JButton
931 */
932 private JButton getJButton11() {
933 if (jButton11 == null) {
934 jButton11 = new JButton();
935 jButton11.setText("Delete");
936 jButton11.setPreferredSize(new java.awt.Dimension(70,20));
937 jButton11.addActionListener(new AbstractAction() {
938 /**
939 *
940 */
941 private static final long serialVersionUID = 1L;
942
943 public void actionPerformed(java.awt.event.ActionEvent e) {
944 if (selectedRow >= 0) {
945 optionsTableModel.removeRow(selectedRow);
946 ffc.removeBuildOptionsOpt(selectedRow);
947 }
948 }
949 });
950 }
951 return jButton11;
952 }
953
954 /**
955 * This method initializes jButton17
956 *
957 * @return javax.swing.JButton
958 */
959 private JButton getJButton17() {
960 if (jButton17 == null) {
961 jButton17 = new JButton();
962 jButton17.setPreferredSize(new java.awt.Dimension(80,20));
963 jButton17.setText("New");
964 jButton17.addActionListener(new AbstractAction() {
965 /**
966 *
967 */
968 private static final long serialVersionUID = 1L;
969
970 public void actionPerformed(ActionEvent arg0){
971 if (jTable.getSelectedRow() < 0) {
972 return;
973 }
974 Object[] o = {"", ""};
975 ffsAttributesTableModel.addRow(o);
976 ffc.genBuildOptionsFfsAttribute(jTable.getSelectedRow(), "", "");
977 }
978 });
979 }
980 return jButton17;
981 }
982
983 /**
984 * This method initializes jButton18
985 *
986 * @return javax.swing.JButton
987 */
988 private JButton getJButton18() {
989 if (jButton18 == null) {
990 jButton18 = new JButton();
991 jButton18.setPreferredSize(new java.awt.Dimension(80,20));
992 jButton18.setText("Remove");
993 jButton18.addActionListener(new AbstractAction(){
994 /**
995 *
996 */
997 private static final long serialVersionUID = 1L;
998
999 public void actionPerformed(ActionEvent arg0){
1000 if (jTable.getSelectedRow() < 0) {
1001 return;
1002 }
1003 if (jTable4.getSelectedRow() >= 0){
1004 ffsAttributesTableModel.removeRow(jTable4.getSelectedRow());
1005 ffc.removeBuildOptionsFfsAttribute(jTable.getSelectedRow(), jTable4.getSelectedRow());
1006 }
1007 }
1008 });
1009 }
1010 return jButton18;
1011 }
1012
1013 /**
1014 * This method initializes jButton19
1015 *
1016 * @return javax.swing.JButton
1017 */
1018 private JButton getJButton19() {
1019 if (jButton19 == null) {
1020 jButton19 = new JButton();
1021 jButton19.setPreferredSize(new java.awt.Dimension(75,20));
1022 jButton19.setEnabled(false);
1023 jButton19.setText("Update");
1024 }
1025 return jButton19;
1026 }
1027
1028 /**
1029 * This method initializes jCheckBox9
1030 *
1031 * @return javax.swing.JCheckBox
1032 */
1033 private JCheckBox getJCheckBox9() {
1034 if (jCheckBox9 == null) {
1035 jCheckBox9 = new JCheckBox();
1036 jCheckBox9.setPreferredSize(new java.awt.Dimension(50,20));
1037 jCheckBox9.setText("IA32");
1038 }
1039 return jCheckBox9;
1040 }
1041
1042 /**
1043 * This method initializes jCheckBox10
1044 *
1045 * @return javax.swing.JCheckBox
1046 */
1047 private JCheckBox getJCheckBox10() {
1048 if (jCheckBox10 == null) {
1049 jCheckBox10 = new JCheckBox();
1050 jCheckBox10.setPreferredSize(new java.awt.Dimension(50,20));
1051 jCheckBox10.setText("IPF");
1052 }
1053 return jCheckBox10;
1054 }
1055
1056 /**
1057 * This method initializes jCheckBox11
1058 *
1059 * @return javax.swing.JCheckBox
1060 */
1061 private JCheckBox getJCheckBox11() {
1062 if (jCheckBox11 == null) {
1063 jCheckBox11 = new JCheckBox();
1064 jCheckBox11.setText("X64");
1065 jCheckBox11.setPreferredSize(new java.awt.Dimension(47,20));
1066 }
1067 return jCheckBox11;
1068 }
1069
1070 /**
1071 * This method initializes jCheckBox12
1072 *
1073 * @return javax.swing.JCheckBox
1074 */
1075 private JCheckBox getJCheckBox12() {
1076 if (jCheckBox12 == null) {
1077 jCheckBox12 = new JCheckBox();
1078 jCheckBox12.setPreferredSize(new java.awt.Dimension(50,20));
1079 jCheckBox12.setText("EBC");
1080 }
1081 return jCheckBox12;
1082 }
1083
1084 /**
1085 * This method initializes jCheckBox13
1086 *
1087 * @return javax.swing.JCheckBox
1088 */
1089 private JCheckBox getJCheckBox13() {
1090 if (jCheckBox13 == null) {
1091 jCheckBox13 = new JCheckBox();
1092 jCheckBox13.setPreferredSize(new java.awt.Dimension(55,20));
1093 jCheckBox13.setText("ARM");
1094 }
1095 return jCheckBox13;
1096 }
1097
1098 /**
1099 * This method initializes jCheckBox14
1100 *
1101 * @return javax.swing.JCheckBox
1102 */
1103 private JCheckBox getJCheckBox14() {
1104 if (jCheckBox14 == null) {
1105 jCheckBox14 = new JCheckBox();
1106 jCheckBox14.setPreferredSize(new java.awt.Dimension(50,20));
1107 jCheckBox14.setText("PPC");
1108 }
1109 return jCheckBox14;
1110 }
1111
1112 /**
1113 * This method initializes jTextField12
1114 *
1115 * @return javax.swing.JTextField
1116 */
1117 private JTextField getJTextField12() {
1118 if (jTextField12 == null) {
1119 jTextField12 = new JTextField();
1120 jTextField12.setPreferredSize(new java.awt.Dimension(150,20));
1121 }
1122 return jTextField12;
1123 }
1124
1125 /**
1126 * This method initializes jTextField13
1127 *
1128 * @return javax.swing.JTextField
1129 */
1130 private JTextField getJTextField13() {
1131 if (jTextField13 == null) {
1132 jTextField13 = new JTextField();
1133 jTextField13.setPreferredSize(new java.awt.Dimension(140,20));
1134 }
1135 return jTextField13;
1136 }
1137
1138 /**
1139 * This method initializes jScrollPane
1140 *
1141 * @return javax.swing.JScrollPane
1142 */
1143 private JScrollPane getJScrollPane() {
1144 if (jScrollPane == null) {
1145 jScrollPane = new JScrollPane();
1146 jScrollPane.setPreferredSize(new java.awt.Dimension(150,419));
1147 jScrollPane.setViewportView(getJTable());
1148 }
1149 return jScrollPane;
1150 }
1151
1152 /**
1153 * This method initializes jTable
1154 *
1155 * @return javax.swing.JTable
1156 */
1157 private JTable getJTable() {
1158 if (jTable == null) {
1159 ffsTableModel = new DefaultTableModel();
1160 ffsTableModel.addColumn("FFS Type");
1161 jTable = new JTable(ffsTableModel);
1162 jTable.setShowGrid(false);
1163 jTable.setRowHeight(20);
1164
1165 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
1166 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1167 public void valueChanged(ListSelectionEvent e) {
1168
1169 if (e.getValueIsAdjusting()){
1170 return;
1171 }
1172 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
1173 if (lsm.isSelectionEmpty()) {
1174 return;
1175 }
1176 else{
1177 int row = lsm.getMinSelectionIndex();
1178 sectionTableModel.setRowCount(0);
1179 sectionsTableModel.setRowCount(0);
1180 subsectionsTableModel.setRowCount(0);
1181 ffsAttributesTableModel.setRowCount(0);
1182 String[] sArray = {"", ""};
1183 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();
1184 ArrayList<String> alSections = new ArrayList<String>();
1185 ArrayList<String> alSection = new ArrayList<String>();
1186 ffc.getBuildOptionsFfs(row, sArray, lhm, alSections, alSection);
1187 jTextField6.setText(sArray[0]);
1188 jTextField.setText(sArray[1]);
1189 for (int i = 0; i < alSection.size(); ++i) {
1190 String[] sectionRow = {alSection.get(i)};
1191 sectionTableModel.addRow(sectionRow);
1192 }
1193 for (int j = 0; j < alSections.size(); ++j) {
1194 String[] sectionsRow = {alSections.get(j)};
1195 sectionsTableModel.addRow(sectionsRow);
1196 }
1197 if (lhm.size() <= 0 ) {
1198 return;
1199 }
1200 Set<String> keySet = lhm.keySet();
1201 Iterator<String> is = keySet.iterator();
1202 while(is.hasNext()) {
1203 String key = is.next();
1204 String[] attribRow = {key, lhm.get(key)};
1205 ffsAttributesTableModel.addRow(attribRow);
1206 }
1207 }
1208 }
1209 });
1210
1211 jTable.getModel().addTableModelListener(new TableModelListener() {
1212 public void tableChanged(TableModelEvent arg0) {
1213 // TODO Auto-generated method stub
1214 int row = arg0.getFirstRow();
1215 TableModel m = (TableModel)arg0.getSource();
1216 if (arg0.getType() == TableModelEvent.UPDATE){
1217 //ToDo Data Validition check.
1218 String id = m.getValueAt(row, 0) + "";
1219
1220 if (id.length() == 0) {
1221 return;
1222 }
1223
1224 ffc.updateBuildOptionsFfsKey(row, id);
1225 }
1226 }
1227 });
1228 }
1229 return jTable;
1230 }
1231
1232 /**
1233 * This method initializes jScrollPane1
1234 *
1235 * @return javax.swing.JScrollPane
1236 */
1237 private JScrollPane getJScrollPane1() {
1238 if (jScrollPane1 == null) {
1239 jScrollPane1 = new JScrollPane();
1240 jScrollPane1.setPreferredSize(new java.awt.Dimension(500,80));
1241 jScrollPane1.setViewportView(getJTable1());
1242 }
1243 return jScrollPane1;
1244 }
1245
1246 /**
1247 * This method initializes jTable1
1248 *
1249 * @return javax.swing.JTable
1250 */
1251 private JTable getJTable1() {
1252 if (jTable1 == null) {
1253 sectionTableModel = new DefaultTableModel();
1254 sectionTableModel.addColumn("SectionType");
1255
1256 jTable1 = new JTable(sectionTableModel);
1257 JComboBox cb = new JComboBox();
1258 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
1259 cb.addItem("EFI_SECTION_VERSION");
1260 cb.addItem("EFI_SECTION_USER_INTERFACE");
1261 cb.addItem("EFI_SECTION_DXE_DEPEX");
1262 cb.addItem("EFI_SECTION_PEI_DEPEX");
1263 cb.addItem("EFI_SECTION_PE32");
1264 cb.addItem("EFI_SECTION_PIC");
1265 cb.addItem("EFI_SECTION_TE");
1266 cb.addItem("EFI_SECTION_RAW");
1267 cb.addItem("EFI_SECTION_COMPRESSION");
1268 cb.addItem("EFI_SECTION_GUID_DEFINED");
1269 cb.addItem("EFI_SECTION_COMPATIBILITY16");
1270 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
1271 jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));
1272
1273 jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
1274
1275 jTable1.getModel().addTableModelListener(new TableModelListener() {
1276 public void tableChanged(TableModelEvent arg0) {
1277 // TODO Auto-generated method stub
1278 if (jTable.getSelectedRow() < 0) {
1279 return;
1280 }
1281 int row = arg0.getFirstRow();
1282 TableModel m = (TableModel)arg0.getSource();
1283 if (arg0.getType() == TableModelEvent.UPDATE){
1284 //ToDo Data Validition check.
1285 String type = m.getValueAt(row, 0) + "";
1286
1287 ffc.updateBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row, type);
1288 }
1289 }
1290 });
1291 }
1292 return jTable1;
1293 }
1294
1295 /**
1296 * This method initializes jScrollPane3
1297 *
1298 * @return javax.swing.JScrollPane
1299 */
1300 private JScrollPane getJScrollPane3() {
1301 if (jScrollPane3 == null) {
1302 jScrollPane3 = new JScrollPane();
1303 jScrollPane3.setPreferredSize(new java.awt.Dimension(500,90));
1304 jScrollPane3.setViewportView(getJTable3());
1305 }
1306 return jScrollPane3;
1307 }
1308
1309 /**
1310 * This method initializes jTable3
1311 *
1312 * @return javax.swing.JTable
1313 */
1314 private JTable getJTable3() {
1315 if (jTable3 == null) {
1316 subsectionsTableModel = new DefaultTableModel();
1317 subsectionsTableModel.addColumn("SectionType");
1318 jTable3 = new JTable(subsectionsTableModel);
1319 JComboBox cb = new JComboBox();
1320 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");
1321 cb.addItem("EFI_SECTION_VERSION");
1322 cb.addItem("EFI_SECTION_USER_INTERFACE");
1323 cb.addItem("EFI_SECTION_DXE_DEPEX");
1324 cb.addItem("EFI_SECTION_PEI_DEPEX");
1325 cb.addItem("EFI_SECTION_PE32");
1326 cb.addItem("EFI_SECTION_PIC");
1327 cb.addItem("EFI_SECTION_TE");
1328 cb.addItem("EFI_SECTION_RAW");
1329 cb.addItem("EFI_SECTION_COMPRESSION");
1330 cb.addItem("EFI_SECTION_GUID_DEFINED");
1331 cb.addItem("EFI_SECTION_COMPATIBILITY16");
1332 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");
1333 jTable3.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));
1334 jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
1335
1336 jTable3.getModel().addTableModelListener(new TableModelListener() {
1337 public void tableChanged(TableModelEvent arg0) {
1338 // TODO Auto-generated method stub
1339 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {
1340 return;
1341 }
1342 int row = arg0.getFirstRow();
1343 TableModel m = (TableModel)arg0.getSource();
1344 if (arg0.getType() == TableModelEvent.UPDATE){
1345 //ToDo Data Validition check.
1346 String type = m.getValueAt(row, 0) + "";
1347 ffc.updateBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row, type);
1348 }
1349 }
1350 });
1351 }
1352 return jTable3;
1353 }
1354
1355 /**
1356 * This method initializes jTextField
1357 *
1358 * @return javax.swing.JTextField
1359 */
1360 private JTextField getJTextField() {
1361 if (jTextField == null) {
1362 jTextField = new JTextField();
1363 jTextField.setPreferredSize(new java.awt.Dimension(100,20));
1364 jTextField.addFocusListener(new java.awt.event.FocusAdapter() {
1365 public void focusLost(java.awt.event.FocusEvent e) {
1366 if (jTable.getSelectedRow() < 0) {
1367 return;
1368 }
1369 ffc.updateBuildOptionsFfsSectionsType(jTable.getSelectedRow(), jTextField.getText());
1370 }
1371 });
1372 }
1373 return jTextField;
1374 }
1375
1376 /**
1377 * This method initializes jPanel4
1378 *
1379 * @return javax.swing.JPanel
1380 */
1381 private JPanel getJPanel4() {
1382 if (jPanel4 == null) {
1383 jPanel4 = new JPanel();
1384 jPanel4.setPreferredSize(new java.awt.Dimension(100,100));
1385 jPanel4.add(getJButton17(), null);
1386 jPanel4.add(getJButton18(), null);
1387 }
1388 return jPanel4;
1389 }
1390
1391 /**
1392 * This method initializes jButton
1393 *
1394 * @return javax.swing.JButton
1395 */
1396 private JButton getJButton() {
1397 if (jButton == null) {
1398 jButton = new JButton();
1399 jButton.setPreferredSize(new java.awt.Dimension(80,20));
1400 jButton.setText("New");
1401 jButton.addActionListener(new java.awt.event.ActionListener() {
1402 public void actionPerformed(java.awt.event.ActionEvent e) {
1403 if (jTable.getSelectedRow() < 0) {
1404 return;
1405 }
1406 String[] row = {"EFI_SECTION_RAW"};
1407 sectionTableModel.addRow(row);
1408 ffc.genBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row[0]);
1409 }
1410 });
1411 }
1412 return jButton;
1413 }
1414
1415 /**
1416 * This method initializes jButton1
1417 *
1418 * @return javax.swing.JButton
1419 */
1420 private JButton getJButton1() {
1421 if (jButton1 == null) {
1422 jButton1 = new JButton();
1423 jButton1.setPreferredSize(new java.awt.Dimension(80,20));
1424 jButton1.setText("Remove");
1425
1426 jButton1.addActionListener(new java.awt.event.ActionListener() {
1427 public void actionPerformed(java.awt.event.ActionEvent e) {
1428 if (jTable.getSelectedRow() < 0 || jTable1.getSelectedRow() < 0) {
1429 return;
1430 }
1431 sectionTableModel.removeRow(jTable1.getSelectedRow());
1432 ffc.removeBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), jTable1.getSelectedRow());
1433 }
1434 });
1435 }
1436 return jButton1;
1437 }
1438
1439 /**
1440 * This method initializes jButton2
1441 *
1442 * @return javax.swing.JButton
1443 */
1444 private JButton getJButton2() {
1445 if (jButton2 == null) {
1446 jButton2 = new JButton();
1447 jButton2.setPreferredSize(new java.awt.Dimension(80,20));
1448 jButton2.setText("New");
1449 jButton2.addActionListener(new java.awt.event.ActionListener() {
1450 public void actionPerformed(java.awt.event.ActionEvent e) {
1451 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {
1452 return;
1453 }
1454 String[] row = {"EFI_SECTION_RAW"};
1455 subsectionsTableModel.addRow(row);
1456 ffc.genBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row[0]);
1457
1458 }
1459 });
1460 }
1461 return jButton2;
1462 }
1463
1464 /**
1465 * This method initializes jButton3
1466 *
1467 * @return javax.swing.JButton
1468 */
1469 private JButton getJButton3() {
1470 if (jButton3 == null) {
1471 jButton3 = new JButton();
1472 jButton3.setPreferredSize(new java.awt.Dimension(80,20));
1473 jButton3.setText("Remove");
1474 jButton3.addActionListener(new java.awt.event.ActionListener() {
1475 public void actionPerformed(java.awt.event.ActionEvent e) {
1476 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0 || jTable3.getSelectedRow() < 0) {
1477 return;
1478 }
1479 subsectionsTableModel.removeRow(jTable3.getSelectedRow());
1480 ffc.removeBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), jTable3.getSelectedRow());
1481 }
1482 });
1483 }
1484 return jButton3;
1485 }
1486
1487 /**
1488 * This method initializes jButton6
1489 *
1490 * @return javax.swing.JButton
1491 */
1492 private JButton getJButton6() {
1493 if (jButton6 == null) {
1494 jButton6 = new JButton();
1495 jButton6.setPreferredSize(new java.awt.Dimension(80,20));
1496 jButton6.setText("New");
1497 jButton6.addActionListener(new java.awt.event.ActionListener() {
1498 public void actionPerformed(java.awt.event.ActionEvent e) {
1499 if (jTable.getSelectedRow() < 0) {
1500 return;
1501 }
1502 String[] row = {""};
1503 sectionsTableModel.addRow(row);
1504 ffc.genBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), "");
1505 }
1506 });
1507 }
1508 return jButton6;
1509 }
1510
1511 /**
1512 * This method initializes jButton7
1513 *
1514 * @return javax.swing.JButton
1515 */
1516 private JButton getJButton7() {
1517 if (jButton7 == null) {
1518 jButton7 = new JButton();
1519 jButton7.setPreferredSize(new java.awt.Dimension(80,20));
1520 jButton7.setText("Remove");
1521 jButton7.addActionListener(new java.awt.event.ActionListener() {
1522 public void actionPerformed(java.awt.event.ActionEvent e) {
1523 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {
1524 return;
1525 }
1526 sectionsTableModel.removeRow(jTable6.getSelectedRow());
1527 ffc.removeBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), jTable6.getSelectedRow());
1528 }
1529 });
1530 }
1531 return jButton7;
1532 }
1533
1534 /**
1535 * This method initializes jScrollPane4
1536 *
1537 * @return javax.swing.JScrollPane
1538 */
1539 private JScrollPane getJScrollPane4() {
1540 if (jScrollPane4 == null) {
1541 jScrollPane4 = new JScrollPane();
1542 jScrollPane4.setPreferredSize(new java.awt.Dimension(500,80));
1543 jScrollPane4.setViewportView(getJTable6());
1544 }
1545 return jScrollPane4;
1546 }
1547
1548 /**
1549 * This method initializes jTable6
1550 *
1551 * @return javax.swing.JTable
1552 */
1553 private JTable getJTable6() {
1554 if (jTable6 == null) {
1555 sectionsTableModel = new DefaultTableModel();
1556 sectionsTableModel.addColumn("EncapsulationType");
1557 jTable6 = new JTable(sectionsTableModel);
1558
1559 jTable6.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
1560 jTable6.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
1561 public void valueChanged(ListSelectionEvent e) {
1562 if (e.getValueIsAdjusting()){
1563 return;
1564 }
1565 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
1566 if (lsm.isSelectionEmpty()) {
1567 return;
1568 }
1569 else{
1570 int sectionsRow = lsm.getMinSelectionIndex();
1571 if (jTable.getSelectedRow() < 0) {
1572 return;
1573 }
1574 subsectionsTableModel.setRowCount(0);
1575 ArrayList<String> al = new ArrayList<String>();
1576 ffc.getBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), sectionsRow, al);
1577 for (int i = 0; i < al.size(); ++i) {
1578 String[] subsectionRow = {al.get(i)};
1579 subsectionsTableModel.addRow(subsectionRow);
1580 }
1581 }
1582 }
1583 });
1584
1585 jTable6.getModel().addTableModelListener(new TableModelListener() {
1586 public void tableChanged(TableModelEvent arg0) {
1587 // TODO Auto-generated method stub
1588 int row = arg0.getFirstRow();
1589 TableModel m = (TableModel)arg0.getSource();
1590 if (arg0.getType() == TableModelEvent.UPDATE){
1591 //ToDo Data Validition check.
1592 String encapType = m.getValueAt(row, 0) + "";
1593 ffc.updateBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), row, encapType);
1594 }
1595 }
1596 });
1597 }
1598 return jTable6;
1599 }
1600
1601 /**
1602 * @param args
1603 */
1604 public static void main(String[] args) {
1605 // TODO Auto-generated method stub
1606 new FpdBuildOptions().setVisible(true);
1607 }
1608
1609 /**
1610 * This is the default constructor
1611 */
1612 public FpdBuildOptions() {
1613 super();
1614 initialize();
1615 this.setVisible(true);
1616 }
1617
1618 public FpdBuildOptions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {
1619 this();
1620 ffc = new FpdFileContents(fpd);
1621 init(ffc);
1622 }
1623
1624 private void init(FpdFileContents ffc) {
1625 initOptionTable();
1626 initAntTaskTable();
1627 initFfsTable();
1628 this.addInternalFrameListener(new InternalFrameAdapter(){
1629 public void internalFrameDeactivated(InternalFrameEvent e){
1630 if (jTable.isEditing()) {
1631 jTable.getCellEditor().stopCellEditing();
1632 }
1633 if (jTable1.isEditing()) {
1634 jTable1.getCellEditor().stopCellEditing();
1635 }
1636 if (jTable2.isEditing()) {
1637 jTable2.getCellEditor().stopCellEditing();
1638 }
1639 if (jTable3.isEditing()) {
1640 jTable3.getCellEditor().stopCellEditing();
1641 }
1642 if (jTable4.isEditing()) {
1643 jTable4.getCellEditor().stopCellEditing();
1644 }
1645 if (jTable5.isEditing()) {
1646 jTable5.getCellEditor().stopCellEditing();
1647 }
1648 }
1649 });
1650 }
1651
1652 private void initOptionTable() {
1653 if (ffc.getBuildOptionsOptCount() == 0) {
1654 //ToDo get default options from *.txt file
1655 return;
1656 }
1657 String[][] saa = new String[ffc.getBuildOptionsOptCount()][6];
1658 ffc.getBuildOptionsOpts(saa);
1659 for (int i = 0; i < saa.length; ++i) {
1660 optionsTableModel.addRow(saa[i]);
1661 }
1662 }
1663
1664 private void initAntTaskTable() {
1665 if (ffc.getBuildOptionsUserDefAntTaskCount() == 0) {
1666 return;
1667 }
1668 String[][] saa = new String[ffc.getBuildOptionsUserDefAntTaskCount()][3];
1669 ffc.getBuildOptionsUserDefAntTasks(saa);
1670 for (int i = 0; i < saa.length; ++i) {
1671 antTaskTableModel.addRow(saa[i]);
1672 }
1673 }
1674
1675 private void initFfsTable(){
1676 int ffsCount = ffc.getBuildOptionsFfsCount();
1677 if (ffsCount < 0) {
1678 return;
1679 }
1680 String[][] saa = new String[ffsCount][1];
1681 ffc.getBuildOptionsFfsKey(saa);
1682 for (int i = 0; i < saa.length; ++i) {
1683 ffsTableModel.addRow(saa[i]);
1684 }
1685 }
1686 /**
1687 * This method initializes this
1688 *
1689 * @return void
1690 */
1691 private void initialize() {
1692 this.setSize(722, 577);
1693 this.setTitle("FPD Build Options");
1694 this.setContentPane(getJContentPane());
1695 }
1696
1697 /**
1698 * This method initializes jContentPane
1699 *
1700 * @return javax.swing.JPanel
1701 */
1702 private JPanel getJContentPane() {
1703 if (jContentPane == null) {
1704 jContentPane = new JPanel();
1705 jContentPane.setLayout(new BorderLayout());
1706 jContentPane.add(getJPanel(), java.awt.BorderLayout.SOUTH);
1707 jContentPane.add(getJPanel1(), java.awt.BorderLayout.NORTH);
1708 jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST);
1709 jContentPane.add(getJPanel3(), java.awt.BorderLayout.EAST);
1710 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);
1711 }
1712 return jContentPane;
1713 }
1714
1715 } // @jve:decl-index=0:visual-constraint="10,10"