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