]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
Add ModuleSA BuildOptions
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
1 /** @file
2 Java class FpdFlash is GUI for Flash element operation in SPD file.
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 **/
13 package org.tianocore.frameworkwizard.platform.ui;
14
15 import java.awt.BorderLayout;
16 import javax.swing.JPanel;
17
18 import javax.swing.AbstractAction;
19 import javax.swing.DefaultCellEditor;
20 import javax.swing.JFileChooser;
21 import javax.swing.JFrame;
22 import javax.swing.JTabbedPane;
23 import javax.swing.JButton;
24 import javax.swing.ListSelectionModel;
25
26 import org.tianocore.PlatformSurfaceAreaDocument;
27 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;
28 import org.tianocore.frameworkwizard.common.ui.StarLabel;
29
30
31 import java.awt.FlowLayout;
32 import java.awt.event.ActionEvent;
33 import java.awt.event.ComponentAdapter;
34 import java.awt.event.ComponentEvent;
35 import java.awt.event.ItemEvent;
36 import java.awt.event.ItemListener;
37 import java.io.File;
38 import java.util.Iterator;
39 import java.util.LinkedHashMap;
40 import java.util.Map;
41 import java.util.Set;
42
43 import javax.swing.JCheckBox;
44 import javax.swing.JTextField;
45 import java.awt.GridLayout;
46 import javax.swing.JLabel;
47 import javax.swing.JScrollPane;
48 import javax.swing.JTable;
49 import javax.swing.event.InternalFrameAdapter;
50 import javax.swing.event.InternalFrameEvent;
51 import javax.swing.event.ListSelectionEvent;
52 import javax.swing.event.ListSelectionListener;
53 import javax.swing.event.TableModelEvent;
54 import javax.swing.event.TableModelListener;
55 import javax.swing.table.DefaultTableModel;
56 import javax.swing.table.TableColumn;
57 import javax.swing.table.TableModel;
58 import javax.swing.JComboBox;
59 import java.awt.Dimension;
60
61 public class FpdFlash extends IInternalFrame {
62
63 /**
64 *
65 */
66 private static final long serialVersionUID = 1L;
67 static JFrame frame;
68 private JPanel jContentPane = null;
69 private JPanel jPanel = null;
70 private JPanel jPanel1 = null;
71 private JPanel jPanel2 = null;
72 private JPanel jPanel3 = null;
73 private JTabbedPane jTabbedPane = null;
74 private JPanel jPanelFvImages = null;
75 private JButton jButtonOk = null;
76 private JButton jButtonCancel = null;
77 private JPanel jPanelFvImageN = null;
78 private JPanel jPanelFvImageS = null;
79 private JCheckBox jCheckBox1 = null;
80 private JLabel jLabel = null;
81 private JTextField jTextField = null;
82 private JLabel jLabel1 = null;
83 private JTextField jTextField1 = null;
84 private JButton jButton = null;
85 private JScrollPane jScrollPane1 = null;
86 private JTable jTable = null;
87 private JPanel jPanel4 = null;
88 private JButton jButton1 = null;
89 private DefaultTableModel fvPropertyTableModel = null;
90 private DefaultTableModel fvImageNameTableModel = null;
91 private ImageParaTableModel fvImageParaTableModel = null;
92 private DefaultTableModel fvOptionTableModel = null;
93 private JPanel jPanelFvImageC = null;
94 private JCheckBox jCheckBox2 = null;
95 private JLabel jLabel2 = null;
96 private JComboBox jComboBox = null;
97 private JLabel jLabel3 = null;
98 private JLabel jLabel4 = null;
99 private JTextField jTextField2 = null;
100 private JButton jButton2 = null;
101 private JScrollPane jScrollPane2 = null;
102 private JTable jTable1 = null;
103 private JButton jButton3 = null;
104 private JPanel jPanel5 = null;
105 private JButton jButton4 = null;
106 private JScrollPane jScrollPane3 = null;
107 private JTable jTable2 = null;
108 private JButton jButton6 = null;
109 private JCheckBox jCheckBox3 = null;
110 private JPanel jPanel6 = null;
111
112 private FpdFileContents ffc = null;
113 private JPanel jPanel7 = null;
114 private JCheckBox jCheckBox = null;
115 private JTextField jTextField3 = null;
116 private JButton jButton5 = null;
117 private JLabel jLabel5 = null;
118 private JTextField jTextField4 = null;
119 private JLabel jLabel6 = null;
120 private JTextField jTextField5 = null;
121 private JPanel jPanel8 = null;
122 private JButton jButton7 = null;
123 private JButton jButton8 = null;
124 private JScrollPane jScrollPane = null;
125 private JTable jTable3 = null;
126 private JButton jButton9 = null;
127 public FpdFlash() {
128 super();
129 // TODO Auto-generated constructor stub
130
131 initialize();
132 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));
133 this.setVisible(true);
134 }
135
136 public FpdFlash(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){
137 this();
138 ffc = new FpdFileContents(fpd);
139 init(ffc);
140 }
141
142 /**
143 * This method initializes jPanel
144 *
145 * @return javax.swing.JPanel
146 */
147 private JPanel getJPanel() {
148 if (jPanel == null) {
149 jPanel = new JPanel();
150 }
151 return jPanel;
152 }
153
154 /**
155 * This method initializes jPanel1
156 *
157 * @return javax.swing.JPanel
158 */
159 private JPanel getJPanel1() {
160 if (jPanel1 == null) {
161 FlowLayout flowLayout = new FlowLayout();
162 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);
163 flowLayout.setHgap(15);
164 jPanel1 = new JPanel();
165 jPanel1.setLayout(flowLayout);
166 jPanel1.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
167 jPanel1.add(getJButtonCancel(), null);
168 jPanel1.add(getJButtonOk(), null);
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("FV Images", null, getJPanelFvImages(), null);
206 jTabbedPane.addTab("Flash Definition File", null, getJPanel7(), null);
207
208 }
209 return jTabbedPane;
210 }
211
212 /**
213 * This method initializes jPanelFvImages
214 *
215 * @return javax.swing.JPanel
216 */
217 private JPanel getJPanelFvImages() {
218 if (jPanelFvImages == null) {
219 jPanelFvImages = new JPanel();
220 jPanelFvImages.setLayout(new BorderLayout());
221 jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.NORTH);
222 // jPanelFvImages.add(getJPanelFvImageW(), java.awt.BorderLayout.WEST);
223 jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH);
224 jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);
225
226 }
227 return jPanelFvImages;
228 }
229
230 /**
231 * This method initializes jButtonOk
232 *
233 * @return javax.swing.JButton
234 */
235 private JButton getJButtonOk() {
236 if (jButtonOk == null) {
237 jButtonOk = new JButton();
238 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));
239 jButtonOk.setText("Cancel");
240 jButtonOk.setVisible(false);
241 }
242 return jButtonOk;
243 }
244
245 /**
246 * This method initializes jButtonCancel
247 *
248 * @return javax.swing.JButton
249 */
250 private JButton getJButtonCancel() {
251 if (jButtonCancel == null) {
252 jButtonCancel = new JButton();
253 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));
254 jButtonCancel.setText("Ok");
255 jButtonCancel.setVisible(false);
256 }
257 return jButtonCancel;
258 }
259
260 /**
261 * This method initializes jPanelFvImageN
262 *
263 * @return javax.swing.JPanel
264 */
265 private JPanel getJPanelFvImageN() {
266 if (jPanelFvImageN == null) {
267 jLabel1 = new JLabel();
268 jLabel1.setText("Value");
269 jLabel1.setEnabled(false);
270 jLabel1.setPreferredSize(new java.awt.Dimension(38,20));
271 jLabel = new JLabel();
272 jLabel.setText("Name");
273 jLabel.setEnabled(false);
274 jLabel.setPreferredSize(new java.awt.Dimension(38,20));
275 FlowLayout flowLayout2 = new FlowLayout();
276 flowLayout2.setAlignment(java.awt.FlowLayout.CENTER);
277 flowLayout2.setHgap(15);
278 jPanelFvImageN = new JPanel();
279 jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100));
280 jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
281 jPanelFvImageN.setLayout(flowLayout2);
282 jPanelFvImageN.add(getJCheckBox1(), null);
283 jPanelFvImageN.add(jLabel, null);
284 jPanelFvImageN.add(getJTextField(), null);
285 jPanelFvImageN.add(jLabel1, null);
286 jPanelFvImageN.add(getJTextField1(), null);
287 jPanelFvImageN.add(getJScrollPane1(), null);
288 jPanelFvImageN.add(getJPanel4(), null);
289 }
290 return jPanelFvImageN;
291 }
292
293 /**
294 * This method initializes jPanelFvImageS
295 *
296 * @return javax.swing.JPanel
297 */
298 private JPanel getJPanelFvImageS() {
299 if (jPanelFvImageS == null) {
300 GridLayout gridLayout2 = new GridLayout();
301 gridLayout2.setRows(1);
302 jPanelFvImageS = new JPanel();
303 jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));
304 jPanelFvImageS.setLayout(gridLayout2);
305 jPanelFvImageS.add(getJScrollPane3(), null);
306 }
307 return jPanelFvImageS;
308 }
309
310
311 /**
312 * This method initializes jCheckBox1
313 *
314 * @return javax.swing.JCheckBox
315 */
316 private JCheckBox getJCheckBox1() {
317 if (jCheckBox1 == null) {
318 jCheckBox1 = new JCheckBox();
319 jCheckBox1.setText("FV Properties");
320 jCheckBox1.addItemListener(new ItemListener(){
321
322 public void itemStateChanged(ItemEvent arg0) {
323 // TODO Auto-generated method stub
324 boolean seleted = jCheckBox1.isSelected();
325
326 jLabel.setEnabled(seleted);
327 jTextField.setEnabled(seleted);
328 jLabel1.setEnabled(seleted);
329 jTextField1.setEnabled(seleted);
330 jTable.setEnabled(seleted);
331 jButton.setEnabled(seleted);
332 jButton1.setEnabled(seleted);
333
334
335 }
336
337 });
338 }
339 return jCheckBox1;
340 }
341
342
343 /**
344 * This method initializes jTextField
345 *
346 * @return javax.swing.JTextField
347 */
348 private JTextField getJTextField() {
349 if (jTextField == null) {
350 jTextField = new JTextField();
351 jTextField.setPreferredSize(new java.awt.Dimension(100,20));
352 jTextField.setEnabled(false);
353 }
354 return jTextField;
355 }
356
357
358 /**
359 * This method initializes jTextField1
360 *
361 * @return javax.swing.JTextField
362 */
363 private JTextField getJTextField1() {
364 if (jTextField1 == null) {
365 jTextField1 = new JTextField();
366 jTextField1.setPreferredSize(new java.awt.Dimension(100,20));
367 jTextField1.setEnabled(false);
368 }
369 return jTextField1;
370 }
371
372
373 /**
374 * This method initializes jButton
375 *
376 * @return javax.swing.JButton
377 */
378 private JButton getJButton() {
379 if (jButton == null) {
380 jButton = new JButton();
381 jButton.setPreferredSize(new java.awt.Dimension(80,20));
382 jButton.setEnabled(false);
383 jButton.setText("Add");
384 jButton.addActionListener(new AbstractAction() {
385 /**
386 *
387 */
388 private static final long serialVersionUID = 1L;
389
390 public void actionPerformed(ActionEvent e) {
391 if (jTextField.getText().length() > 0 && jTextField1.getText().length() > 0){
392 String[] row = {jTextField.getText(), jTextField1.getText()};
393 fvPropertyTableModel.addRow(row);
394 ffc.genFvImagesNameValue(row[0], row[1]);
395 }
396 }
397 });
398 }
399 return jButton;
400 }
401
402
403 /**
404 * This method initializes jScrollPane1
405 *
406 * @return javax.swing.JScrollPane
407 */
408 private JScrollPane getJScrollPane1() {
409 if (jScrollPane1 == null) {
410 jScrollPane1 = new JScrollPane();
411 jScrollPane1.setPreferredSize(new java.awt.Dimension(350,55));
412 jScrollPane1.setViewportView(getJTable());
413 }
414 return jScrollPane1;
415 }
416
417
418 /**
419 * This method initializes jTable
420 *
421 * @return javax.swing.JTable
422 */
423 private JTable getJTable() {
424 if (jTable == null) {
425 fvPropertyTableModel = new DefaultTableModel();
426 jTable = new JTable(fvPropertyTableModel);
427 fvPropertyTableModel.addColumn("Name");
428 fvPropertyTableModel.addColumn("Value");
429 jTable.setRowHeight(20);
430 jTable.setEnabled(false);
431
432 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
433 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
434 public void valueChanged(ListSelectionEvent e) {
435 if (e.getValueIsAdjusting()){
436 return;
437 }
438 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
439 if (lsm.isSelectionEmpty()) {
440 return;
441 }
442 else{
443 // selectedRow = lsm.getMinSelectionIndex();
444 }
445 }
446 });
447
448 jTable.getModel().addTableModelListener(new TableModelListener(){
449 public void tableChanged(TableModelEvent arg0) {
450 // TODO Auto-generated method stub
451 int row = arg0.getFirstRow();
452 TableModel m = (TableModel)arg0.getSource();
453 if (arg0.getType() == TableModelEvent.UPDATE){
454
455 String name = m.getValueAt(row, 0) + "";
456 String value = m.getValueAt(row, 1) + "";
457
458 ffc.updateFvImagesNameValue(row, name, value);
459 }
460 }
461 });
462 }
463 return jTable;
464 }
465
466
467 /**
468 * This method initializes jPanel4
469 *
470 * @return javax.swing.JPanel
471 */
472 private JPanel getJPanel4() {
473 if (jPanel4 == null) {
474 jPanel4 = new JPanel();
475 jPanel4.setPreferredSize(new java.awt.Dimension(80,55));
476
477 jPanel4.add(getJButton(), null);
478 jPanel4.add(getJButton1(), null);
479 }
480 return jPanel4;
481 }
482
483
484 /**
485 * This method initializes jButton1
486 *
487 * @return javax.swing.JButton
488 */
489 private JButton getJButton1() {
490 if (jButton1 == null) {
491 jButton1 = new JButton();
492 jButton1.setPreferredSize(new java.awt.Dimension(80,20));
493 jButton1.setEnabled(false);
494 jButton1.setText("Delete");
495 jButton1.addActionListener(new AbstractAction() {
496 /**
497 *
498 */
499 private static final long serialVersionUID = 1L;
500
501 public void actionPerformed(ActionEvent e) {
502 if (jTable.getSelectedRow() >= 0){
503 fvPropertyTableModel.removeRow(jTable.getSelectedRow());
504 ffc.removeFvImagesNameValue(jTable.getSelectedRow());
505 }
506 }
507 });
508 }
509 return jButton1;
510 }
511
512
513 /**
514 * This method initializes jPanelFvImageC
515 *
516 * @return javax.swing.JPanel
517 */
518 private JPanel getJPanelFvImageC() {
519 if (jPanelFvImageC == null) {
520 jLabel4 = new JLabel();
521 jLabel4.setPreferredSize(new Dimension(38, 20));
522 jLabel4.setEnabled(false);
523 jLabel4.setText("Name");
524 jLabel3 = new JLabel();
525 jLabel3.setText("FV Image Names");
526 jLabel3.setEnabled(false);
527 jLabel3.setPreferredSize(new java.awt.Dimension(150,20));
528 jLabel2 = new JLabel();
529 jLabel2.setText("Type");
530 jLabel2.setEnabled(false);
531 jLabel2.setPreferredSize(new java.awt.Dimension(70,20));
532 FlowLayout flowLayout3 = new FlowLayout();
533 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);
534 flowLayout3.setHgap(5);
535 jPanelFvImageC = new JPanel();
536 jPanelFvImageC.setLayout(flowLayout3);
537 jPanelFvImageC.add(getJPanel6(), null);
538
539 jPanelFvImageC.add(getJPanel5(), null);
540
541 }
542 return jPanelFvImageC;
543 }
544
545
546 /**
547 * This method initializes jCheckBox2
548 *
549 * @return javax.swing.JCheckBox
550 */
551 private JCheckBox getJCheckBox2() {
552 if (jCheckBox2 == null) {
553 jCheckBox2 = new JCheckBox();
554 jCheckBox2.setText("FV Image Parameters");
555 jCheckBox2.setPreferredSize(new java.awt.Dimension(200,20));
556 jCheckBox2.addItemListener(new ItemListener(){
557
558 public void itemStateChanged(ItemEvent arg0) {
559 // TODO Auto-generated method stub
560 boolean seleted = jCheckBox2.isSelected();
561
562 jLabel2.setEnabled(seleted);
563 jLabel3.setEnabled(seleted);
564 jLabel4.setEnabled(seleted);
565 jComboBox.setEnabled(seleted);
566 jTextField2.setEnabled(seleted);
567
568 jTable1.setEnabled(seleted);
569 jButton2.setEnabled(seleted);
570 jButton3.setEnabled(seleted);
571
572
573 }
574
575 });
576 }
577 return jCheckBox2;
578 }
579
580
581 /**
582 * This method initializes jComboBox
583 *
584 * @return javax.swing.JComboBox
585 */
586 private JComboBox getJComboBox() {
587 if (jComboBox == null) {
588 jComboBox = new JComboBox();
589 jComboBox.addItem("ImageName");
590 jComboBox.addItem("Attributes");
591 jComboBox.addItem("Options");
592 jComboBox.addItem("Components");
593 jComboBox.setPreferredSize(new java.awt.Dimension(180,20));
594 jComboBox.setEnabled(false);
595 jComboBox.addItemListener(new ItemListener() {
596
597 public void itemStateChanged(ItemEvent arg0) {
598 // TODO disable attribute settings when ValidImageNames selected.
599
600 }
601
602 });
603 }
604 return jComboBox;
605 }
606
607
608 /**
609 * This method initializes jTextField2
610 *
611 * @return javax.swing.JTextField
612 */
613 private JTextField getJTextField2() {
614 if (jTextField2 == null) {
615 jTextField2 = new JTextField();
616 jTextField2.setPreferredSize(new java.awt.Dimension(140,20));
617 jTextField2.setEnabled(false);
618 }
619 return jTextField2;
620 }
621
622
623 /**
624 * This method initializes jButton2
625 *
626 * @return javax.swing.JButton
627 */
628 private JButton getJButton2() {
629 if (jButton2 == null) {
630 jButton2 = new JButton();
631 jButton2.setPreferredSize(new Dimension(80, 20));
632 jButton2.setEnabled(false);
633 jButton2.setText("Add");
634 jButton2.addActionListener(new AbstractAction() {
635 /**
636 *
637 */
638 private static final long serialVersionUID = 1L;
639
640 public void actionPerformed(java.awt.event.ActionEvent e) {
641 if (jTextField2.getText().length() > 0){
642 String[] row = {jTextField2.getText()};
643 fvImageNameTableModel.addRow(row);
644 }
645 }
646 });
647 }
648 return jButton2;
649 }
650
651
652 /**
653 * This method initializes jScrollPane2
654 *
655 * @return javax.swing.JScrollPane
656 */
657 private JScrollPane getJScrollPane2() {
658 if (jScrollPane2 == null) {
659 jScrollPane2 = new JScrollPane();
660 jScrollPane2.setPreferredSize(new java.awt.Dimension(350,50));
661 jScrollPane2.setViewportView(getJTable1());
662 }
663 return jScrollPane2;
664 }
665
666
667 /**
668 * This method initializes jTable1
669 *
670 * @return javax.swing.JTable
671 */
672 private JTable getJTable1() {
673 if (jTable1 == null) {
674 fvImageNameTableModel = new DefaultTableModel();
675 jTable1 = new JTable(fvImageNameTableModel);
676 jTable1.setEnabled(false);
677 fvImageNameTableModel.addColumn("FV Image Name");
678 }
679 return jTable1;
680 }
681
682
683 /**
684 * This method initializes jButton3
685 *
686 * @return javax.swing.JButton
687 */
688 private JButton getJButton3() {
689 if (jButton3 == null) {
690 jButton3 = new JButton();
691 jButton3.setPreferredSize(new Dimension(80, 20));
692 jButton3.setEnabled(false);
693 jButton3.setText("Delete");
694 jButton3.addActionListener(new AbstractAction() {
695 /**
696 *
697 */
698 private static final long serialVersionUID = 1L;
699
700 public void actionPerformed(java.awt.event.ActionEvent e) {
701 if (jTable1.getSelectedRow() >= 0){
702
703 fvImageNameTableModel.removeRow(jTable1.getSelectedRow());
704 }
705 }
706 });
707 }
708 return jButton3;
709 }
710
711
712
713
714 private JPanel getJPanel5() {
715
716
717 if (jPanel5 == null) {
718 //ToDo add ButtonGroup for RadioButtons
719 jLabel6 = new JLabel();
720 jLabel6.setEnabled(true);
721 jLabel6.setText("Value");
722 jLabel6.setPreferredSize(new Dimension(38, 20));
723 jLabel5 = new JLabel();
724 jLabel5.setEnabled(true);
725 jLabel5.setText("Name");
726 jLabel5.setPreferredSize(new Dimension(38, 20));
727 jPanel5 = new JPanel();
728 jPanel5.setPreferredSize(new java.awt.Dimension(480,150));
729
730 jPanel5.setLayout(new FlowLayout());
731
732 jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));
733 jPanel5.add(getJCheckBox3(), null);
734 jPanel5.add(jLabel5, null);
735 jPanel5.add(getJTextField4(), null);
736 jPanel5.add(jLabel6, null);
737 jPanel5.add(getJTextField5(), null);
738 jPanel5.add(getJScrollPane(), null);
739 jPanel5.add(getJPanel8(), null);
740 jPanel5.add(getJButton4(), null);
741 jPanel5.add(getJButton6(), null);
742 jPanel5.add(getJButton9(), null);
743
744
745
746
747
748 }
749 return jPanel5;
750 }
751
752
753 /**
754 * This method initializes jButton4
755 *
756 * @return javax.swing.JButton
757 */
758 private JButton getJButton4() {
759 if (jButton4 == null) {
760 jButton4 = new JButton();
761 jButton4.setPreferredSize(new java.awt.Dimension(120,20));
762 // jButton4.setEnabled(false);
763 jButton4.setText("Add FV Image");
764 jButton4.addActionListener(new AbstractAction() {
765 /**
766 *
767 */
768 private static final long serialVersionUID = 1L;
769
770 public void actionPerformed(java.awt.event.ActionEvent e) {
771 if (jTable2.isEditing()) {
772 jTable2.getCellEditor().stopCellEditing();
773 }
774 if (jTable3.isEditing()) {
775 jTable3.getCellEditor().stopCellEditing();
776 }
777 if (jTable1.getRowCount()== 0){
778 return;
779 }
780 String imageName = " ";
781 for (int i = 0; i < jTable1.getRowCount(); ++i){
782 imageName += (String)jTable1.getValueAt(i, 0);
783 imageName += " ";
784 }
785 imageName = imageName.trim();
786
787 if (!jCheckBox3.isSelected() && jComboBox.getSelectedIndex() != 0){
788 return;
789
790 }
791
792 LinkedHashMap<String, String> m = null;
793 if (jCheckBox3.isSelected()) {
794 m = new LinkedHashMap<String, String>();
795 getOptionNameValue(m);
796 }
797 ffc.genFvImagesFvImage(imageName.split(" "), jComboBox.getSelectedItem()+"", m);
798
799 Object[] row = {imageName, jComboBox.getSelectedItem()};
800 fvImageParaTableModel.addRow(row);
801 }
802 });
803 }
804 return jButton4;
805 }
806
807
808 /**
809 * This method initializes jScrollPane3
810 *
811 * @return javax.swing.JScrollPane
812 */
813 private JScrollPane getJScrollPane3() {
814 if (jScrollPane3 == null) {
815 jScrollPane3 = new JScrollPane();
816 jScrollPane3.setPreferredSize(new java.awt.Dimension(480,150));
817 jScrollPane3.setViewportView(getJTable2());
818 }
819 return jScrollPane3;
820 }
821
822
823 /**
824 * This method initializes jTable2
825 *
826 * @return javax.swing.JTable
827 */
828 private JTable getJTable2() {
829 if (jTable2 == null) {
830 fvImageParaTableModel = new ImageParaTableModel();
831 jTable2 = new JTable(fvImageParaTableModel);
832 fvImageParaTableModel.addColumn("FvImageNames");
833 fvImageParaTableModel.addColumn("Type");
834
835
836 TableColumn typeCol = jTable2.getColumnModel().getColumn(1);
837 JComboBox cb = new JComboBox();
838 cb.addItem("ValidImageNames");
839 cb.addItem("Attributes");
840 cb.addItem("Options");
841 cb.addItem("Components");
842 typeCol.setCellEditor(new DefaultCellEditor(cb));
843
844 jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
845 jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
846 public void valueChanged(ListSelectionEvent e) {
847 if (e.getValueIsAdjusting()){
848 return;
849 }
850 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
851 if (lsm.isSelectionEmpty()) {
852 return;
853 }
854 else{
855 int selectedRow = lsm.getMinSelectionIndex();
856 LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();
857 ffc.getFvImagesFvImageOptions(selectedRow, optionMap);
858 if (optionMap.size() > 0){
859 fvOptionTableModel.setRowCount(0);
860 Set<String> key = optionMap.keySet();
861 Iterator<String> i = key.iterator();
862 while (i.hasNext()) {
863
864 String k = (String)i.next();
865 String[] row = {k, optionMap.get(k)};
866
867 fvOptionTableModel.addRow(row);
868 }
869 }
870
871 }
872 }
873 });
874
875
876 }
877 return jTable2;
878 }
879
880
881 /**
882 * This method initializes jButton6
883 *
884 * @return javax.swing.JButton
885 */
886 private JButton getJButton6() {
887 if (jButton6 == null) {
888 jButton6 = new JButton();
889 jButton6.setPreferredSize(new java.awt.Dimension(120,20));
890 // jButton6.setEnabled(false);
891 jButton6.setText("Delete Row");
892 jButton6.addActionListener(new AbstractAction() {
893 /**
894 *
895 */
896 private static final long serialVersionUID = 1L;
897
898 public void actionPerformed(ActionEvent arg0) {
899 // TODO Auto-generated method stub
900 if (jTable2.getSelectedRow() >= 0 ) {
901 fvImageParaTableModel.removeRow(jTable2.getSelectedRow());
902 ffc.removeFvImagesFvImage(jTable2.getSelectedRow());
903 }
904 }
905
906 });
907 }
908 return jButton6;
909 }
910
911
912 /**
913 * This method initializes jCheckBox3
914 *
915 * @return javax.swing.JCheckBox
916 */
917 private JCheckBox getJCheckBox3() {
918 if (jCheckBox3 == null) {
919 jCheckBox3 = new JCheckBox();
920 jCheckBox3.setText("FV Image Options");
921 jCheckBox3.addItemListener(new ItemListener(){
922
923 public void itemStateChanged(ItemEvent arg0) {
924 // TODO Auto-generated method stub
925 // boolean selected = jCheckBox3.isSelected();
926
927 if (!jCheckBox2.isSelected() || jComboBox.getSelectedIndex() == 0) {
928 return;
929 }
930
931 // jLabel5.setEnabled(selected);
932 // jTextField4.setEnabled(selected);
933 // jLabel6.setEnabled(selected);
934 // jTextField5.setEnabled(selected);
935 // jButton7.setEnabled(selected);
936 // jButton8.setEnabled(selected);
937
938 }
939
940 });
941 }
942 return jCheckBox3;
943 }
944
945
946 /**
947 * This method initializes jPanel6
948 *
949 * @return javax.swing.JPanel
950 */
951 private JPanel getJPanel6() {
952 if (jPanel6 == null) {
953 StarLabel starLabel = new StarLabel();
954 starLabel.setVisible(false);
955 jPanel6 = new JPanel();
956 jPanel6.setPreferredSize(new java.awt.Dimension(480,120));
957 jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
958 jPanel6.add(getJCheckBox2(), null);
959 jPanel6.add(jLabel2, null);
960 jPanel6.add(getJComboBox(), null);
961 jPanel6.add(new StarLabel(), null);
962 jPanel6.add(jLabel3, null);
963 jPanel6.add(jLabel4, null);
964 jPanel6.add(getJTextField2(), null);
965 jPanel6.add(getJButton2(), null);
966 jPanel6.add(getJScrollPane2(), null);
967 jPanel6.add(getJButton3(), null);
968 }
969 return jPanel6;
970 }
971
972 /**
973 * This method initializes jPanel7
974 *
975 * @return javax.swing.JPanel
976 */
977 private JPanel getJPanel7() {
978 if (jPanel7 == null) {
979 FlowLayout flowLayout1 = new FlowLayout();
980 flowLayout1.setAlignment(FlowLayout.LEFT);
981 jPanel7 = new JPanel();
982 jPanel7.setLayout(flowLayout1);
983 jPanel7.add(getJCheckBox(), null);
984 jPanel7.add(getJTextField3(), null);
985 jPanel7.add(getJButton5(), null);
986 jPanel7.addComponentListener(new ComponentAdapter(){
987 public void componentShown(ComponentEvent e) {
988 if (ffc.getFlashDefinitionFile() != null) {
989 jTextField3.setText(ffc.getFlashDefinitionFile());
990 }
991 }
992 public void componentHidden(ComponentEvent e) {
993 if (jCheckBox.isSelected()) {
994 ffc.genFlashDefinitionFile(jTextField3.getText());
995 }
996 }
997 });
998 }
999 return jPanel7;
1000 }
1001
1002 /**
1003 * This method initializes jCheckBox
1004 *
1005 * @return javax.swing.JCheckBox
1006 */
1007 private JCheckBox getJCheckBox() {
1008 if (jCheckBox == null) {
1009 jCheckBox = new JCheckBox();
1010 jCheckBox.setText("Flash Definition File");
1011 jCheckBox.addItemListener(new ItemListener() {
1012
1013 public void itemStateChanged(ItemEvent arg0) {
1014 // TODO Auto-generated method stub
1015 if (jCheckBox.isSelected()){
1016 jTextField3.setEnabled(true);
1017 jButton5.setEnabled(true);
1018 }
1019 else {
1020
1021 jTextField3.setEnabled(false);
1022 jButton5.setEnabled(false);
1023 }
1024 }
1025 });
1026 }
1027 return jCheckBox;
1028 }
1029
1030 /**
1031 * This method initializes jTextField3
1032 *
1033 * @return javax.swing.JTextField
1034 */
1035 private JTextField getJTextField3() {
1036 if (jTextField3 == null) {
1037 jTextField3 = new JTextField();
1038 jTextField3.setEnabled(false);
1039 jTextField3.setPreferredSize(new Dimension(300, 20));
1040 }
1041 return jTextField3;
1042 }
1043
1044 /**
1045 * This method initializes jButton5
1046 *
1047 * @return javax.swing.JButton
1048 */
1049 private JButton getJButton5() {
1050 if (jButton5 == null) {
1051 jButton5 = new JButton();
1052 jButton5.setEnabled(false);
1053 jButton5.setText("Browse");
1054 jButton5.setPreferredSize(new Dimension(78, 20));
1055 jButton5.addActionListener(new AbstractAction(){
1056 /**
1057 *
1058 */
1059 private static final long serialVersionUID = 1L;
1060
1061 public void actionPerformed(ActionEvent e) {
1062 // TODO Auto-generated method stub
1063 JFileChooser chooser = new JFileChooser();
1064 chooser.setMultiSelectionEnabled(false);
1065 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
1066 int retval = chooser.showOpenDialog(frame);
1067 if (retval == JFileChooser.APPROVE_OPTION) {
1068
1069 File theFile = chooser.getSelectedFile();
1070 jTextField3.setText(theFile.getPath());
1071 }
1072 }
1073
1074 });
1075 }
1076 return jButton5;
1077 }
1078
1079 /**
1080 * This method initializes jTextField4
1081 *
1082 * @return javax.swing.JTextField
1083 */
1084 private JTextField getJTextField4() {
1085 if (jTextField4 == null) {
1086 jTextField4 = new JTextField();
1087 jTextField4.setEnabled(true);
1088 jTextField4.setPreferredSize(new Dimension(100, 20));
1089 }
1090 return jTextField4;
1091 }
1092
1093 /**
1094 * This method initializes jTextField5
1095 *
1096 * @return javax.swing.JTextField
1097 */
1098 private JTextField getJTextField5() {
1099 if (jTextField5 == null) {
1100 jTextField5 = new JTextField();
1101 jTextField5.setEnabled(true);
1102 jTextField5.setPreferredSize(new Dimension(100, 20));
1103 }
1104 return jTextField5;
1105 }
1106
1107 /**
1108 * This method initializes jPanel8
1109 *
1110 * @return javax.swing.JPanel
1111 */
1112 private JPanel getJPanel8() {
1113 if (jPanel8 == null) {
1114 jPanel8 = new JPanel();
1115 jPanel8.setPreferredSize(new Dimension(80, 55));
1116 jPanel8.add(getJButton7(), null);
1117 jPanel8.add(getJButton8(), null);
1118 }
1119 return jPanel8;
1120 }
1121
1122 /**
1123 * This method initializes jButton7
1124 *
1125 * @return javax.swing.JButton
1126 */
1127 private JButton getJButton7() {
1128 if (jButton7 == null) {
1129 jButton7 = new JButton();
1130 jButton7.setEnabled(true);
1131 jButton7.setText("Add");
1132 jButton7.setPreferredSize(new Dimension(80, 20));
1133 jButton7.addActionListener(new AbstractAction() {
1134 /**
1135 *
1136 */
1137 private static final long serialVersionUID = 1L;
1138
1139 public void actionPerformed(ActionEvent e) {
1140 if (jTextField4.getText().length() > 0 && jTextField5.getText().length() > 0){
1141 String[] row = {jTextField4.getText(), jTextField5.getText()};
1142 fvOptionTableModel.addRow(row);
1143 }
1144 }
1145 });
1146 }
1147 return jButton7;
1148 }
1149
1150 /**
1151 * This method initializes jButton8
1152 *
1153 * @return javax.swing.JButton
1154 */
1155 private JButton getJButton8() {
1156 if (jButton8 == null) {
1157 jButton8 = new JButton();
1158 jButton8.setEnabled(true);
1159 jButton8.setText("Delete");
1160 jButton8.setPreferredSize(new Dimension(80, 20));
1161 jButton8.addActionListener(new AbstractAction() {
1162 /**
1163 *
1164 */
1165 private static final long serialVersionUID = 1L;
1166
1167 public void actionPerformed(ActionEvent e) {
1168 if (jTable3.getSelectedRow() >= 0){
1169 fvOptionTableModel.removeRow(jTable.getSelectedRow());
1170 }
1171 }
1172 });
1173 }
1174 return jButton8;
1175 }
1176
1177 /**
1178 * This method initializes jScrollPane
1179 *
1180 * @return javax.swing.JScrollPane
1181 */
1182 private JScrollPane getJScrollPane() {
1183 if (jScrollPane == null) {
1184 jScrollPane = new JScrollPane();
1185 jScrollPane.setPreferredSize(new java.awt.Dimension(350,80));
1186 jScrollPane.setViewportView(getJTable3());
1187 }
1188 return jScrollPane;
1189 }
1190
1191 /**
1192 * This method initializes jTable3
1193 *
1194 * @return javax.swing.JTable
1195 */
1196 private JTable getJTable3() {
1197 if (jTable3 == null) {
1198 fvOptionTableModel = new DefaultTableModel();
1199 fvOptionTableModel.addColumn("Name");
1200 fvOptionTableModel.addColumn("Value");
1201 jTable3 = new JTable(fvOptionTableModel);
1202
1203 jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
1204 jTable3.setRowHeight(20);
1205
1206 }
1207 return jTable3;
1208 }
1209
1210 /**
1211 * This method initializes jButton9
1212 *
1213 * @return javax.swing.JButton
1214 */
1215 private JButton getJButton9() {
1216 if (jButton9 == null) {
1217 jButton9 = new JButton();
1218 jButton9.setPreferredSize(new Dimension(120, 20));
1219 jButton9.setActionCommand("Update");
1220 jButton9.setText("Update FV");
1221 jButton9.addActionListener(new java.awt.event.ActionListener() {
1222 public void actionPerformed(java.awt.event.ActionEvent e) {
1223 int row = jTable2.getSelectedRow();
1224 if (jTable2.isEditing()) {
1225 jTable2.getCellEditor().stopCellEditing();
1226 }
1227 if (jTable3.isEditing()) {
1228 jTable3.getCellEditor().stopCellEditing();
1229 }
1230
1231 //ToDo Check data validity before update
1232 String name = fvImageParaTableModel.getValueAt(row, 0) + "";
1233 String type = fvImageParaTableModel.getValueAt(row, 1) + "";
1234
1235 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();
1236 getOptionNameValue(lhm);
1237
1238
1239 ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);
1240
1241 }
1242 });
1243 }
1244 return jButton9;
1245 }
1246
1247 /**
1248 * @param args
1249 */
1250 public static void main(String[] args) {
1251 // TODO Auto-generated method stub
1252 new FpdFlash().setVisible(true);
1253 }
1254
1255 /**
1256 * This method initializes this
1257 *
1258 * @return void
1259 */
1260 private void initialize() {
1261 this.setSize(518, 650);
1262 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
1263 this.setContentPane(getJContentPane());
1264 this.setTitle("FPD Flash Definitions");
1265 this.addInternalFrameListener(new InternalFrameAdapter(){
1266 public void internalFrameDeactivated(InternalFrameEvent e){
1267 if (jTable.isEditing()) {
1268 jTable.getCellEditor().stopCellEditing();
1269 }
1270 if (jTable1.isEditing()) {
1271 jTable1.getCellEditor().stopCellEditing();
1272 }
1273 if (jTable2.isEditing()) {
1274 jTable2.getCellEditor().stopCellEditing();
1275 }
1276 }
1277 });
1278 }
1279
1280 private void init(FpdFileContents ffc) {
1281 if (ffc.getFvImagesFvImageCount() == 0) {
1282 return;
1283 }
1284 String[][] saa = new String[ffc.getFvImagesFvImageCount()][2];
1285 // ArrayList<LinkedHashMap<String, String>> options = new ArrayList<LinkedHashMap<String, String>>(ffc.getFvImagesFvImageCount());
1286 //
1287 // for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){
1288 // options.add(new LinkedHashMap<String, String>());
1289 // }
1290 ffc.getFvImagesFvImages(saa);
1291
1292
1293 int i = 0;
1294 while (i < saa.length) {
1295
1296 fvImageParaTableModel.addRow(saa[i]);
1297 ++i;
1298 }
1299 }
1300
1301 private void getOptionNameValue(Map<String, String> m){
1302 for (int i = 0; i < jTable3.getRowCount(); ++i) {
1303 m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");
1304 }
1305 }
1306 /**
1307 * This method initializes jContentPane
1308 *
1309 * @return javax.swing.JPanel
1310 */
1311 private JPanel getJContentPane() {
1312 if (jContentPane == null) {
1313 jContentPane = new JPanel();
1314 jContentPane.setLayout(new BorderLayout());
1315 jContentPane.add(getJPanel(), java.awt.BorderLayout.EAST);
1316 jContentPane.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
1317 jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST);
1318 jContentPane.add(getJPanel3(), java.awt.BorderLayout.NORTH);
1319 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);
1320 }
1321 return jContentPane;
1322 }
1323
1324 } // @jve:decl-index=0:visual-constraint="10,10"
1325
1326 class ImageParaTableModel extends DefaultTableModel {
1327
1328 private static final long serialVersionUID = 1L;
1329
1330 public boolean isCellEditable(int row, int col) {
1331 if (getValueAt(row, 1).equals("ImageName") && col >=1) {
1332 return false;
1333 }
1334 return true;
1335 }
1336 }
1337