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