]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFvOptions.java
Fix for linux builds
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFvOptions.java
CommitLineData
b411fc1f 1/** @file\r
2 Java class FpdFvOptions is GUI for FV options in FPD file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.frameworkwizard.platform.ui;\r
14\r
15import java.awt.BorderLayout;\r
16import java.awt.Dimension;\r
17import java.awt.Toolkit;\r
18import java.util.HashMap;\r
19import java.util.Iterator;\r
20import java.util.Set;\r
21\r
22import javax.swing.JPanel;\r
23import javax.swing.JDialog;\r
24import javax.swing.JScrollPane;\r
25import javax.swing.JTable;\r
26import javax.swing.event.TableModelEvent;\r
27import javax.swing.event.TableModelListener;\r
28import javax.swing.table.DefaultTableModel;\r
29import javax.swing.table.TableModel;\r
30import javax.swing.JButton;\r
31\r
32import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
33\r
34/**\r
35 * \r
36 *\r
37 */\r
38public class FpdFvOptions extends JDialog {\r
39\r
72426064 40 /**\r
41 * \r
42 */\r
43 private static final long serialVersionUID = 1L;\r
b411fc1f 44 private JPanel jContentPane = null;\r
45 private JPanel jPanelN = null;\r
46 private JPanel jPanelS = null;\r
47 private JPanel jPanelC = null;\r
48 private JScrollPane jScrollPaneFvOptions = null;\r
49 private JTable jTableFvOptions = null;\r
50 private DefaultTableModel tableModel = null;\r
51 private String fvName = null;\r
52 private FpdFileContents ffc = null;\r
53 private OpeningPlatformType docConsole = null;\r
54 private JButton jButtonNew = null;\r
55 private JButton jButtonDelete = null;\r
56\r
57 /**\r
58 * This is the default constructor\r
59 */\r
60 public FpdFvOptions(String name, DefaultTableModel tm, FpdFileContents ffc, OpeningPlatformType dc) {\r
61 super();\r
62 fvName = name;\r
63 this.ffc = ffc;\r
64 this.docConsole = dc;\r
65 setTableModel(tm);\r
66 initOptions();\r
67 initialize();\r
68 \r
69 }\r
70\r
71 private void initOptions() {\r
72 tableModel.setRowCount(0);\r
73 HashMap<String, String> mOpts = new HashMap<String, String>();\r
74 ffc.getFvImagesFvImageOptions(fvName, mOpts);\r
75 Set<String> sKey = mOpts.keySet();\r
76 Iterator<String> iter = sKey.iterator();\r
77 while (iter.hasNext()) {\r
78 String name = iter.next();\r
79 String value = mOpts.get(name);\r
80 tableModel.addRow(new String[]{name, value});\r
81 }\r
82 }\r
83 /**\r
84 * This method initializes this\r
85 * \r
86 * @return void\r
87 */\r
88 private void initialize() {\r
89 this.setSize(650, 400);\r
90 this.setModal(true);\r
91 this.setTitle("FV Options");\r
92 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
93 this.setContentPane(getJContentPane());\r
94 this.centerWindow();\r
95 this.setVisible(true);\r
96 }\r
97\r
98 /**\r
99 * This method initializes jContentPane\r
100 * \r
101 * @return javax.swing.JPanel\r
102 */\r
103 private JPanel getJContentPane() {\r
104 if (jContentPane == null) {\r
105 jContentPane = new JPanel();\r
106 jContentPane.setLayout(new BorderLayout());\r
107 jContentPane.add(getJPanelN(), java.awt.BorderLayout.NORTH);\r
108 jContentPane.add(getJPanelS(), java.awt.BorderLayout.SOUTH);\r
109 jContentPane.add(getJPanelC(), java.awt.BorderLayout.CENTER);\r
110 }\r
111 return jContentPane;\r
112 }\r
113\r
114 /**\r
115 * This method initializes jPanelN \r
116 * \r
117 * @return javax.swing.JPanel \r
118 */\r
119 private JPanel getJPanelN() {\r
120 if (jPanelN == null) {\r
121 jPanelN = new JPanel();\r
122 }\r
123 return jPanelN;\r
124 }\r
125\r
126 /**\r
127 * This method initializes jPanelS \r
128 * \r
129 * @return javax.swing.JPanel \r
130 */\r
131 private JPanel getJPanelS() {\r
132 if (jPanelS == null) {\r
133 jPanelS = new JPanel();\r
134 jPanelS.add(getJButtonNew(), null);\r
135 jPanelS.add(getJButtonDelete(), null);\r
136 }\r
137 return jPanelS;\r
138 }\r
139\r
140 /**\r
141 * This method initializes jPanelC \r
142 * \r
143 * @return javax.swing.JPanel \r
144 */\r
145 private JPanel getJPanelC() {\r
146 if (jPanelC == null) {\r
147 jPanelC = new JPanel();\r
148 jPanelC.add(getJScrollPaneFvOptions(), null);\r
149 }\r
150 return jPanelC;\r
151 }\r
152\r
153 /**\r
154 * This method initializes jScrollPaneFvOptions \r
155 * \r
156 * @return javax.swing.JScrollPane \r
157 */\r
158 private JScrollPane getJScrollPaneFvOptions() {\r
159 if (jScrollPaneFvOptions == null) {\r
160 jScrollPaneFvOptions = new JScrollPane();\r
161 jScrollPaneFvOptions.setPreferredSize(new java.awt.Dimension(600,320));\r
162 jScrollPaneFvOptions.setViewportView(getJTableFvOptions());\r
163 }\r
164 return jScrollPaneFvOptions;\r
165 }\r
166\r
167 /**\r
168 * This method initializes jTableFvOptions \r
169 * \r
170 * @return javax.swing.JTable \r
171 */\r
172 private JTable getJTableFvOptions() {\r
173 if (jTableFvOptions == null) {\r
174 jTableFvOptions = new JTable();\r
175 jTableFvOptions.setRowHeight(20);\r
176 jTableFvOptions.setModel(getTableModel());\r
177 \r
178 jTableFvOptions.getModel().addTableModelListener(new TableModelListener() {\r
179 public void tableChanged(TableModelEvent arg0) {\r
180 // TODO Auto-generated method stub\r
181 int row = arg0.getFirstRow();\r
72426064 182// int col = arg0.getColumn();\r
b411fc1f 183 TableModel m = (TableModel) arg0.getSource();\r
184 \r
185 if (arg0.getType() == TableModelEvent.UPDATE) {\r
186 if (m.getValueAt(row, 0).equals("")) {\r
187 return;\r
188 }\r
189 ffc.setTypedNamedFvImageNameValue(fvName, "Options", m.getValueAt(row, 0)+"", m.getValueAt(row, 1)+"");\r
190 docConsole.setSaved(false);\r
191 }\r
192 }\r
193 });\r
194 }\r
195 return jTableFvOptions;\r
196 }\r
197\r
198 protected DefaultTableModel getTableModel() {\r
199 return tableModel;\r
200 }\r
201\r
202 protected void setTableModel(DefaultTableModel tableModel) {\r
203 \r
204 this.tableModel = tableModel;\r
205 \r
206 }\r
207\r
208 /**\r
209 Start the window at the center of screen\r
210 \r
211 **/\r
212 protected void centerWindow(int intWidth, int intHeight) {\r
213 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
214 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
215 }\r
216\r
217 /**\r
218 Start the window at the center of screen\r
219 \r
220 **/\r
221 protected void centerWindow() {\r
222 centerWindow(this.getSize().width, this.getSize().height);\r
223 }\r
224\r
225/**\r
226 * This method initializes jButtonNew \r
227 * \r
228 * @return javax.swing.JButton \r
229 */\r
230private JButton getJButtonNew() {\r
231 if (jButtonNew == null) {\r
232 jButtonNew = new JButton();\r
233 jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
234 jButtonNew.setText("New");\r
235 jButtonNew.addActionListener(new java.awt.event.ActionListener() {\r
236 public void actionPerformed(java.awt.event.ActionEvent e) {\r
237 tableModel.addRow(new String[]{"", ""});\r
238 }\r
239 });\r
240 }\r
241 return jButtonNew;\r
242}\r
243\r
244/**\r
245 * This method initializes jButtonDelete \r
246 * \r
247 * @return javax.swing.JButton \r
248 */\r
249private JButton getJButtonDelete() {\r
250 if (jButtonDelete == null) {\r
251 jButtonDelete = new JButton();\r
252 jButtonDelete.setPreferredSize(new java.awt.Dimension(80,20));\r
253 jButtonDelete.setText("Delete");\r
254 jButtonDelete.addActionListener(new java.awt.event.ActionListener() {\r
255 public void actionPerformed(java.awt.event.ActionEvent e) {\r
256 int selectedRow = jTableFvOptions.getSelectedRow();\r
257 if (selectedRow < 0) {\r
258 return;\r
259 }\r
260 String optName = tableModel.getValueAt(selectedRow, 0)+"";\r
261 if (((FvOptsTableModel)tableModel).getVKeyWords().contains(optName)){\r
262 return;\r
263 }\r
72426064 264 if (((FvOptsTableModel)tableModel).getVNonEditableName().contains(optName)){\r
265 return;\r
266 }\r
b411fc1f 267 \r
268 ffc.removeTypedNamedFvImageNameValue(fvName, "Options", optName);\r
269 tableModel.removeRow(selectedRow);\r
270 docConsole.setSaved(false);\r
271 }\r
272 });\r
273 }\r
274 return jButtonDelete;\r
275}\r
276}\r