2 Java class FpdFvOptions is GUI for FV options in FPD file.
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
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.
13 package org
.tianocore
.frameworkwizard
.platform
.ui
;
15 import java
.awt
.BorderLayout
;
16 import java
.awt
.Dimension
;
17 import java
.awt
.Toolkit
;
18 import java
.util
.HashMap
;
19 import java
.util
.Iterator
;
22 import javax
.swing
.JPanel
;
23 import javax
.swing
.JDialog
;
24 import javax
.swing
.JScrollPane
;
25 import javax
.swing
.JTable
;
26 import javax
.swing
.event
.TableModelEvent
;
27 import javax
.swing
.event
.TableModelListener
;
28 import javax
.swing
.table
.DefaultTableModel
;
29 import javax
.swing
.table
.TableModel
;
30 import javax
.swing
.JButton
;
32 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
38 public class FpdFvOptions
extends JDialog
{
43 private static final long serialVersionUID
= 1L;
44 private JPanel jContentPane
= null;
45 private JPanel jPanelN
= null;
46 private JPanel jPanelS
= null;
47 private JPanel jPanelC
= null;
48 private JScrollPane jScrollPaneFvOptions
= null;
49 private JTable jTableFvOptions
= null;
50 private DefaultTableModel tableModel
= null;
51 private String fvName
= null;
52 private FpdFileContents ffc
= null;
53 private OpeningPlatformType docConsole
= null;
54 private JButton jButtonNew
= null;
55 private JButton jButtonDelete
= null;
58 * This is the default constructor
60 public FpdFvOptions(String name
, DefaultTableModel tm
, FpdFileContents ffc
, OpeningPlatformType dc
) {
71 private void initOptions() {
72 tableModel
.setRowCount(0);
73 HashMap
<String
, String
> mOpts
= new HashMap
<String
, String
>();
74 ffc
.getFvImagesFvImageOptions(fvName
, mOpts
);
75 Set
<String
> sKey
= mOpts
.keySet();
76 Iterator
<String
> iter
= sKey
.iterator();
77 while (iter
.hasNext()) {
78 String name
= iter
.next();
79 String value
= mOpts
.get(name
);
80 tableModel
.addRow(new String
[]{name
, value
});
84 * This method initializes this
88 private void initialize() {
89 this.setSize(650, 400);
91 this.setTitle("FV Options");
92 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
93 this.setContentPane(getJContentPane());
95 this.setVisible(true);
99 * This method initializes jContentPane
101 * @return javax.swing.JPanel
103 private JPanel
getJContentPane() {
104 if (jContentPane
== null) {
105 jContentPane
= new JPanel();
106 jContentPane
.setLayout(new BorderLayout());
107 jContentPane
.add(getJPanelN(), java
.awt
.BorderLayout
.NORTH
);
108 jContentPane
.add(getJPanelS(), java
.awt
.BorderLayout
.SOUTH
);
109 jContentPane
.add(getJPanelC(), java
.awt
.BorderLayout
.CENTER
);
115 * This method initializes jPanelN
117 * @return javax.swing.JPanel
119 private JPanel
getJPanelN() {
120 if (jPanelN
== null) {
121 jPanelN
= new JPanel();
127 * This method initializes jPanelS
129 * @return javax.swing.JPanel
131 private JPanel
getJPanelS() {
132 if (jPanelS
== null) {
133 jPanelS
= new JPanel();
134 jPanelS
.add(getJButtonNew(), null);
135 jPanelS
.add(getJButtonDelete(), null);
141 * This method initializes jPanelC
143 * @return javax.swing.JPanel
145 private JPanel
getJPanelC() {
146 if (jPanelC
== null) {
147 jPanelC
= new JPanel();
148 jPanelC
.add(getJScrollPaneFvOptions(), null);
154 * This method initializes jScrollPaneFvOptions
156 * @return javax.swing.JScrollPane
158 private JScrollPane
getJScrollPaneFvOptions() {
159 if (jScrollPaneFvOptions
== null) {
160 jScrollPaneFvOptions
= new JScrollPane();
161 jScrollPaneFvOptions
.setPreferredSize(new java
.awt
.Dimension(600,320));
162 jScrollPaneFvOptions
.setViewportView(getJTableFvOptions());
164 return jScrollPaneFvOptions
;
168 * This method initializes jTableFvOptions
170 * @return javax.swing.JTable
172 private JTable
getJTableFvOptions() {
173 if (jTableFvOptions
== null) {
174 jTableFvOptions
= new JTable();
175 jTableFvOptions
.setRowHeight(20);
176 jTableFvOptions
.setModel(getTableModel());
178 jTableFvOptions
.getModel().addTableModelListener(new TableModelListener() {
179 public void tableChanged(TableModelEvent arg0
) {
180 // TODO Auto-generated method stub
181 int row
= arg0
.getFirstRow();
182 // int col = arg0.getColumn();
183 TableModel m
= (TableModel
) arg0
.getSource();
185 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
186 if (m
.getValueAt(row
, 0).equals("")) {
189 ffc
.setTypedNamedFvImageNameValue(fvName
, "Options", m
.getValueAt(row
, 0)+"", m
.getValueAt(row
, 1)+"");
190 docConsole
.setSaved(false);
195 return jTableFvOptions
;
198 protected DefaultTableModel
getTableModel() {
202 protected void setTableModel(DefaultTableModel tableModel
) {
204 this.tableModel
= tableModel
;
209 Start the window at the center of screen
212 protected void centerWindow(int intWidth
, int intHeight
) {
213 Dimension d
= Toolkit
.getDefaultToolkit().getScreenSize();
214 this.setLocation((d
.width
- intWidth
) / 2, (d
.height
- intHeight
) / 2);
218 Start the window at the center of screen
221 protected void centerWindow() {
222 centerWindow(this.getSize().width
, this.getSize().height
);
226 * This method initializes jButtonNew
228 * @return javax.swing.JButton
230 private JButton
getJButtonNew() {
231 if (jButtonNew
== null) {
232 jButtonNew
= new JButton();
233 jButtonNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
234 jButtonNew
.setText("New");
235 jButtonNew
.addActionListener(new java
.awt
.event
.ActionListener() {
236 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
237 tableModel
.addRow(new String
[]{"", ""});
245 * This method initializes jButtonDelete
247 * @return javax.swing.JButton
249 private JButton
getJButtonDelete() {
250 if (jButtonDelete
== null) {
251 jButtonDelete
= new JButton();
252 jButtonDelete
.setPreferredSize(new java
.awt
.Dimension(80,20));
253 jButtonDelete
.setText("Delete");
254 jButtonDelete
.addActionListener(new java
.awt
.event
.ActionListener() {
255 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
256 int selectedRow
= jTableFvOptions
.getSelectedRow();
257 if (selectedRow
< 0) {
260 String optName
= tableModel
.getValueAt(selectedRow
, 0)+"";
261 if (((FvOptsTableModel
)tableModel
).getVKeyWords().contains(optName
)){
264 if (((FvOptsTableModel
)tableModel
).getVNonEditableName().contains(optName
)){
268 ffc
.removeTypedNamedFvImageNameValue(fvName
, "Options", optName
);
269 tableModel
.removeRow(selectedRow
);
270 docConsole
.setSaved(false);
274 return jButtonDelete
;