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
{
40 private JPanel jContentPane
= null;
41 private JPanel jPanelN
= null;
42 private JPanel jPanelS
= null;
43 private JPanel jPanelC
= null;
44 private JScrollPane jScrollPaneFvOptions
= null;
45 private JTable jTableFvOptions
= null;
46 private DefaultTableModel tableModel
= null;
47 private String fvName
= null;
48 private FpdFileContents ffc
= null;
49 private OpeningPlatformType docConsole
= null;
50 private JButton jButtonNew
= null;
51 private JButton jButtonDelete
= null;
54 * This is the default constructor
56 public FpdFvOptions(String name
, DefaultTableModel tm
, FpdFileContents ffc
, OpeningPlatformType dc
) {
67 private void initOptions() {
68 tableModel
.setRowCount(0);
69 HashMap
<String
, String
> mOpts
= new HashMap
<String
, String
>();
70 ffc
.getFvImagesFvImageOptions(fvName
, mOpts
);
71 Set
<String
> sKey
= mOpts
.keySet();
72 Iterator
<String
> iter
= sKey
.iterator();
73 while (iter
.hasNext()) {
74 String name
= iter
.next();
75 String value
= mOpts
.get(name
);
76 tableModel
.addRow(new String
[]{name
, value
});
80 * This method initializes this
84 private void initialize() {
85 this.setSize(650, 400);
87 this.setTitle("FV Options");
88 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
89 this.setContentPane(getJContentPane());
91 this.setVisible(true);
95 * This method initializes jContentPane
97 * @return javax.swing.JPanel
99 private JPanel
getJContentPane() {
100 if (jContentPane
== null) {
101 jContentPane
= new JPanel();
102 jContentPane
.setLayout(new BorderLayout());
103 jContentPane
.add(getJPanelN(), java
.awt
.BorderLayout
.NORTH
);
104 jContentPane
.add(getJPanelS(), java
.awt
.BorderLayout
.SOUTH
);
105 jContentPane
.add(getJPanelC(), java
.awt
.BorderLayout
.CENTER
);
111 * This method initializes jPanelN
113 * @return javax.swing.JPanel
115 private JPanel
getJPanelN() {
116 if (jPanelN
== null) {
117 jPanelN
= new JPanel();
123 * This method initializes jPanelS
125 * @return javax.swing.JPanel
127 private JPanel
getJPanelS() {
128 if (jPanelS
== null) {
129 jPanelS
= new JPanel();
130 jPanelS
.add(getJButtonNew(), null);
131 jPanelS
.add(getJButtonDelete(), null);
137 * This method initializes jPanelC
139 * @return javax.swing.JPanel
141 private JPanel
getJPanelC() {
142 if (jPanelC
== null) {
143 jPanelC
= new JPanel();
144 jPanelC
.add(getJScrollPaneFvOptions(), null);
150 * This method initializes jScrollPaneFvOptions
152 * @return javax.swing.JScrollPane
154 private JScrollPane
getJScrollPaneFvOptions() {
155 if (jScrollPaneFvOptions
== null) {
156 jScrollPaneFvOptions
= new JScrollPane();
157 jScrollPaneFvOptions
.setPreferredSize(new java
.awt
.Dimension(600,320));
158 jScrollPaneFvOptions
.setViewportView(getJTableFvOptions());
160 return jScrollPaneFvOptions
;
164 * This method initializes jTableFvOptions
166 * @return javax.swing.JTable
168 private JTable
getJTableFvOptions() {
169 if (jTableFvOptions
== null) {
170 jTableFvOptions
= new JTable();
171 jTableFvOptions
.setRowHeight(20);
172 jTableFvOptions
.setModel(getTableModel());
174 jTableFvOptions
.getModel().addTableModelListener(new TableModelListener() {
175 public void tableChanged(TableModelEvent arg0
) {
176 // TODO Auto-generated method stub
177 int row
= arg0
.getFirstRow();
178 int col
= arg0
.getColumn();
179 TableModel m
= (TableModel
) arg0
.getSource();
181 if (arg0
.getType() == TableModelEvent
.UPDATE
) {
182 if (m
.getValueAt(row
, 0).equals("")) {
185 ffc
.setTypedNamedFvImageNameValue(fvName
, "Options", m
.getValueAt(row
, 0)+"", m
.getValueAt(row
, 1)+"");
186 docConsole
.setSaved(false);
191 return jTableFvOptions
;
194 protected DefaultTableModel
getTableModel() {
198 protected void setTableModel(DefaultTableModel tableModel
) {
200 this.tableModel
= tableModel
;
205 Start the window at the center of screen
208 protected void centerWindow(int intWidth
, int intHeight
) {
209 Dimension d
= Toolkit
.getDefaultToolkit().getScreenSize();
210 this.setLocation((d
.width
- intWidth
) / 2, (d
.height
- intHeight
) / 2);
214 Start the window at the center of screen
217 protected void centerWindow() {
218 centerWindow(this.getSize().width
, this.getSize().height
);
222 * This method initializes jButtonNew
224 * @return javax.swing.JButton
226 private JButton
getJButtonNew() {
227 if (jButtonNew
== null) {
228 jButtonNew
= new JButton();
229 jButtonNew
.setPreferredSize(new java
.awt
.Dimension(80,20));
230 jButtonNew
.setText("New");
231 jButtonNew
.addActionListener(new java
.awt
.event
.ActionListener() {
232 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
233 tableModel
.addRow(new String
[]{"", ""});
241 * This method initializes jButtonDelete
243 * @return javax.swing.JButton
245 private JButton
getJButtonDelete() {
246 if (jButtonDelete
== null) {
247 jButtonDelete
= new JButton();
248 jButtonDelete
.setPreferredSize(new java
.awt
.Dimension(80,20));
249 jButtonDelete
.setText("Delete");
250 jButtonDelete
.addActionListener(new java
.awt
.event
.ActionListener() {
251 public void actionPerformed(java
.awt
.event
.ActionEvent e
) {
252 int selectedRow
= jTableFvOptions
.getSelectedRow();
253 if (selectedRow
< 0) {
256 String optName
= tableModel
.getValueAt(selectedRow
, 0)+"";
257 if (((FvOptsTableModel
)tableModel
).getVKeyWords().contains(optName
)){
261 ffc
.removeTypedNamedFvImageNameValue(fvName
, "Options", optName
);
262 tableModel
.removeRow(selectedRow
);
263 docConsole
.setSaved(false);
267 return jButtonDelete
;