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