]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
Started cleaning up the Build Options screen so that we can add some additional infor...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
CommitLineData
a13899c5 1/** @file\r
2 Java class FpdFlash is GUI for Flash element operation in SPD 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 javax.swing.JPanel;\r
17\r
18import javax.swing.AbstractAction;\r
a13899c5 19import javax.swing.DefaultCellEditor;\r
3658f95e 20import javax.swing.JComponent;\r
a13899c5 21import javax.swing.JFileChooser;\r
22import javax.swing.JFrame;\r
908b1c05 23import javax.swing.JOptionPane;\r
a13899c5 24import javax.swing.JTabbedPane;\r
25import javax.swing.JButton;\r
26import javax.swing.ListSelectionModel;\r
27\r
28import org.tianocore.PlatformSurfaceAreaDocument;\r
d6d24759 29import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
a13899c5 30import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
31import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
32\r
33\r
34import java.awt.FlowLayout;\r
35import java.awt.event.ActionEvent;\r
a13899c5 36import java.awt.event.ComponentAdapter;\r
37import java.awt.event.ComponentEvent;\r
a13899c5 38import java.awt.event.ItemEvent;\r
39import java.awt.event.ItemListener;\r
3658f95e 40import java.io.BufferedReader;\r
a13899c5 41import java.io.File;\r
3658f95e 42import java.io.FileReader;\r
a13899c5 43import java.util.Iterator;\r
44import java.util.LinkedHashMap;\r
45import java.util.Map;\r
46import java.util.Set;\r
3658f95e 47import java.util.Vector;\r
a13899c5 48\r
49import javax.swing.JCheckBox;\r
50import javax.swing.JTextField;\r
51import java.awt.GridLayout;\r
52import javax.swing.JLabel;\r
53import javax.swing.JScrollPane;\r
54import javax.swing.JTable;\r
44053733 55import javax.swing.event.InternalFrameAdapter;\r
56import javax.swing.event.InternalFrameEvent;\r
a13899c5 57import javax.swing.event.ListSelectionEvent;\r
58import javax.swing.event.ListSelectionListener;\r
59import javax.swing.event.TableModelEvent;\r
60import javax.swing.event.TableModelListener;\r
61import javax.swing.table.DefaultTableModel;\r
62import javax.swing.table.TableColumn;\r
63import javax.swing.table.TableModel;\r
64import javax.swing.JComboBox;\r
65import java.awt.Dimension;\r
3658f95e 66import javax.swing.JSplitPane;\r
a13899c5 67\r
68public class FpdFlash extends IInternalFrame {\r
69\r
44053733 70 /**\r
71 * \r
72 */\r
73 private static final long serialVersionUID = 1L;\r
a13899c5 74 static JFrame frame;\r
75 private JPanel jContentPane = null;\r
4da2e625 76 private JPanel jPanelContentEast = null;\r
77 private JPanel jPanelContentSouth = null;\r
78 private JPanel jPanelContentWest = null;\r
79 private JPanel jPanelContentNorth = null;\r
a13899c5 80 private JTabbedPane jTabbedPane = null;\r
81 private JPanel jPanelFvImages = null;\r
a13899c5 82 private JPanel jPanelFvImageN = null;\r
a13899c5 83 private JPanel jPanelFvImageS = null;\r
4da2e625 84 private JCheckBox jCheckBoxFvProperty = null;\r
85 private JLabel jLabelFvPropName = null;\r
86 private JTextField jTextFieldFvPropName = null;\r
87 private JLabel jLabelFvPropValue = null;\r
88 private JTextField jTextFieldFvPropValue = null;\r
89 private JButton jButtonFvPropAdd = null;\r
90 private JScrollPane jScrollPaneFvProp = null;\r
91 private JTable jTableFvProp = null;\r
92 private JPanel jPanelFvPropButtonGroup = null;\r
93 private JButton jButtonFvPropDel = null;\r
a13899c5 94 private DefaultTableModel fvPropertyTableModel = null;\r
95 private DefaultTableModel fvImageNameTableModel = null;\r
96 private ImageParaTableModel fvImageParaTableModel = null;\r
ae0d4fd2 97 private DefaultTableModel fvOptionTableModel = null;\r
a13899c5 98 private JPanel jPanelFvImageC = null;\r
4da2e625 99 private JCheckBox jCheckBoxFvImagePara = null;\r
100 private JLabel jLabelFvParaType = null;\r
101 private JComboBox jComboBoxFvParaType = null;\r
102 private JLabel jLabelFvImageNames = null;\r
103 private JLabel jLabelFvParaName = null;\r
104 private JTextField jTextFieldFvParaName = null;\r
105 private JButton jButtonFvParaAdd = null;\r
106 private JScrollPane jScrollPaneFvImageNames = null;\r
107 private JTable jTableFvImageNames = null;\r
108 private JButton jButtonFvParaDel = null;\r
109 private JPanel jPanelFvImageOpts = null;\r
110 private JButton jButtonAddFvImage = null;\r
111 private JScrollPane jScrollPaneFvInfo = null;\r
112 private JTable jTableFvInfo = null;\r
113 private JButton jButtonDelFvImage = null;\r
114 private JCheckBox jCheckBoxFvImageOpts = null;\r
115 private JPanel jPanelFvImagePara = null;\r
d6d24759 116 private OpeningPlatformType docConsole = null;\r
a13899c5 117 private FpdFileContents ffc = null;\r
4da2e625 118 private JPanel jPanelFdf = null;\r
119 private JCheckBox jCheckBoxFdf = null;\r
120 private JTextField jTextFieldFdf = null;\r
121 private JButton jButtonFdfBrowse = null;\r
122 private JLabel jLabelFvImageOptName = null;\r
123 private JTextField jTextFieldFvImageOptName = null;\r
124 private JLabel jLabelFvImageOptValue = null;\r
125 private JTextField jTextFieldFvImageOptValue = null;\r
126 private JPanel jPanelFvImageOptsButtonGroup = null;\r
127 private JButton jButtonFvImageOptAdd = null;\r
128 private JButton jButtonFvImageOptDel = null;\r
ae0d4fd2 129 private JScrollPane jScrollPane = null;\r
4da2e625 130 private JTable jTableFvImageOpts = null;\r
131 private JButton jButtonUpdateFvImage = null;\r
3658f95e 132 private JButton jButtonTest = null;\r
133 private JPanel jPanelFdfN = null;\r
134 private JPanel jPanelFdfS = null;\r
135 private JSplitPane jSplitPaneFdfC = null;\r
136 private JPanel jPanelFdfCTop = null;\r
137 private JPanel jPanelFdfCBottom = null;\r
138 private JPanel jPanelFdfCTopN = null;\r
139 private JPanel jPanelFdfCTopS = null;\r
140 private JPanel jPanelFdfCTopC = null;\r
141 private JPanel jPanelFdfCBottomN = null;\r
142 private JPanel jPanelFdfCBottomC = null;\r
143 private JLabel jLabelFvInFdf = null;\r
144 private JLabel jLabelFvAdditional = null;\r
145 private JScrollPane jScrollPaneFvInFdf = null;\r
146 private JTable jTableFvInFdf = null;\r
147 private NonEditableTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
148 private JButton jButtonFvInFdfOptions = null;\r
149 private JScrollPane jScrollPaneFvAdditional = null;\r
150 private JTable jTableFvAdditional = null;\r
151 private DefaultTableModel fvAddtionalTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
152 private JButton jButtonAddFv = null;\r
153 private JButton jButtonDelFv = null;\r
154 private JButton jButtonAddFvOptions = null;\r
155 \r
156 private NonEditableTableModel nonEditableTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
157 \r
158 private JPanel jPanelModOrder = null;\r
159 private JPanel jPanelModOrderN = null;\r
160 private JPanel jPanelModOrderS = null;\r
161 private JPanel jPanelModOrderC = null;\r
162 private JScrollPane jScrollPaneModInFv = null;\r
163 private JTable jTableModInFv = null;\r
164 private JPanel jPanelController = null;\r
165 private JScrollPane jScrollPaneFpdModules = null;\r
166 private JTable jTableFpdModules = null;\r
167 private JButton jButtonUp = null;\r
168 private JButton jButtonInsert = null;\r
169 private JButton jButtonRemove = null;\r
170 private JButton jButtonDown = null;\r
171 private JButton jButtonOk = null;\r
172 private JButton jButtonCancel = null;\r
173 \r
174 /**\r
175 * This method initializes jPanelModOrder \r
176 * \r
177 * @return javax.swing.JPanel \r
178 */\r
179 private JPanel getJPanelModOrder() {\r
180// if (jPanelModOrder == null) {\r
181 jPanelModOrder = new JPanel();\r
182 jPanelModOrder.setLayout(new BorderLayout());\r
183 jPanelModOrder.add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
184 jPanelModOrder.add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
185 jPanelModOrder.add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
186 jPanelModOrder.addComponentListener(new java.awt.event.ComponentAdapter() {\r
187 public void componentShown(java.awt.event.ComponentEvent e) {\r
188 System.out.println("componentShown()" + jTabbedPane.getTitleAt(jTabbedPane.getSelectedIndex())); // TODO Auto-generated Event stub componentShown()\r
189 }\r
190 });\r
191// }\r
192 return jPanelModOrder;\r
193 }\r
194\r
195 /**\r
196 * This method initializes jPanelModOrderN \r
197 * \r
198 * @return javax.swing.JPanel \r
199 */\r
200 private JPanel getJPanelModOrderN() {\r
201// if (jPanelModOrderN == null) {\r
202 jPanelModOrderN = new JPanel();\r
203// }\r
204 return jPanelModOrderN;\r
205 }\r
206\r
207 /**\r
208 * This method initializes jPanelModOrderS \r
209 * \r
210 * @return javax.swing.JPanel \r
211 */\r
212 private JPanel getJPanelModOrderS() {\r
213// if (jPanelModOrderS == null) {\r
214 FlowLayout flowLayout6 = new FlowLayout();\r
215 flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT);\r
216 jPanelModOrderS = new JPanel();\r
217 jPanelModOrderS.setLayout(flowLayout6);\r
218 jPanelModOrderS.add(getJButtonOk(), null);\r
219 jPanelModOrderS.add(getJButtonCancel(), null);\r
220// }\r
221 return jPanelModOrderS;\r
222 }\r
223\r
224 /**\r
225 * This method initializes jPanelModOrderC \r
226 * \r
227 * @return javax.swing.JPanel \r
228 */\r
229 private JPanel getJPanelModOrderC() {\r
230// if (jPanelModOrderC == null) {\r
231 jPanelModOrderC = new JPanel();\r
232 jPanelModOrderC.add(getJScrollPaneModInFv(), null);\r
233 jPanelModOrderC.add(getJPanelController(), null);\r
234 jPanelModOrderC.add(getJScrollPaneFpdModules(), null);\r
235// }\r
236 return jPanelModOrderC;\r
237 }\r
238\r
239 /**\r
240 * This method initializes jScrollPaneModInFv \r
241 * \r
242 * @return javax.swing.JScrollPane \r
243 */\r
244 private JScrollPane getJScrollPaneModInFv() {\r
245// if (jScrollPaneModInFv == null) {\r
246 jScrollPaneModInFv = new JScrollPane();\r
247 jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(150,500));\r
248 jScrollPaneModInFv.setViewportView(getJTableModInFv());\r
249// }\r
250 return jScrollPaneModInFv;\r
251 }\r
252\r
253 /**\r
254 * This method initializes jTableModInFv \r
255 * \r
256 * @return javax.swing.JTable \r
257 */\r
258 private JTable getJTableModInFv() {\r
259// if (jTableModInFv == null) {\r
260 NonEditableTableModel modInFvTableModel = new NonEditableTableModel();\r
261 modInFvTableModel.addColumn("Module Orders in FV");\r
262 jTableModInFv = new JTable(modInFvTableModel);\r
263 jTableModInFv.setRowHeight(20);\r
264// }\r
265 return jTableModInFv;\r
266 }\r
267\r
268 /**\r
269 * This method initializes jPanelController \r
270 * \r
271 * @return javax.swing.JPanel \r
272 */\r
273 private JPanel getJPanelController() {\r
274// if (jPanelController == null) {\r
275 FlowLayout flowLayout5 = new FlowLayout();\r
276 flowLayout5.setVgap(50);\r
277 flowLayout5.setHgap(50);\r
278 jPanelController = new JPanel();\r
279 jPanelController.setLayout(flowLayout5);\r
280 jPanelController.setPreferredSize(new java.awt.Dimension(150,500));\r
281 jPanelController.add(getJButtonUp(), null);\r
282 jPanelController.add(getJButtonInsert(), null);\r
283 jPanelController.add(getJButtonRemove(), null);\r
284 jPanelController.add(getJButtonDown(), null);\r
285// }\r
286 return jPanelController;\r
287 }\r
288\r
289 /**\r
290 * This method initializes jScrollPaneFpdModules \r
291 * \r
292 * @return javax.swing.JScrollPane \r
293 */\r
294 private JScrollPane getJScrollPaneFpdModules() {\r
295// if (jScrollPaneFpdModules == null) {\r
296 jScrollPaneFpdModules = new JScrollPane();\r
297 jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(150,500));\r
298 jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
299// }\r
300 return jScrollPaneFpdModules;\r
301 }\r
302\r
303 /**\r
304 * This method initializes jTableFpdModules \r
305 * \r
306 * @return javax.swing.JTable \r
307 */\r
308 private JTable getJTableFpdModules() {\r
309// if (jTableFpdModules == null) {\r
310 NonEditableTableModel fpdModTableModel = new NonEditableTableModel();\r
311 fpdModTableModel.addColumn("Modules in Platform");\r
312 jTableFpdModules = new JTable(fpdModTableModel);\r
313 jTableFpdModules.setRowHeight(20);\r
314// }\r
315 return jTableFpdModules;\r
316 }\r
317\r
318 /**\r
319 * This method initializes jButtonUp \r
320 * \r
321 * @return javax.swing.JButton \r
322 */\r
323 private JButton getJButtonUp() {\r
324// if (jButtonUp == null) {\r
325 jButtonUp = new JButton();\r
326 jButtonUp.setPreferredSize(new java.awt.Dimension(60,20));\r
327 jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));\r
328 jButtonUp.setText("^");\r
329// }\r
330 return jButtonUp;\r
331 }\r
332\r
333 /**\r
334 * This method initializes jButtonInsert \r
335 * \r
336 * @return javax.swing.JButton \r
337 */\r
338 private JButton getJButtonInsert() {\r
339// if (jButtonInsert == null) {\r
340 jButtonInsert = new JButton();\r
341 jButtonInsert.setText("<<");\r
342 jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20));\r
343// }\r
344 return jButtonInsert;\r
345 }\r
346\r
347 /**\r
348 * This method initializes jButtonRemove \r
349 * \r
350 * @return javax.swing.JButton \r
351 */\r
352 private JButton getJButtonRemove() {\r
353// if (jButtonRemove == null) {\r
354 jButtonRemove = new JButton();\r
355 jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20));\r
356 jButtonRemove.setText(">>");\r
357// }\r
358 return jButtonRemove;\r
359 }\r
360\r
361 /**\r
362 * This method initializes jButtonDown \r
363 * \r
364 * @return javax.swing.JButton \r
365 */\r
366 private JButton getJButtonDown() {\r
367// if (jButtonDown == null) {\r
368 jButtonDown = new JButton();\r
369 jButtonDown.setPreferredSize(new java.awt.Dimension(60,20));\r
370 jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));\r
371 jButtonDown.setText("v");\r
372// }\r
373 return jButtonDown;\r
374 }\r
375 \r
376 /**\r
377 * This method initializes jButtonOk \r
378 * \r
379 * @return javax.swing.JButton \r
380 */\r
381 private JButton getJButtonOk() {\r
382// if (jButtonOk == null) {\r
383 jButtonOk = new JButton();\r
384 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
385 jButtonOk.setText("Ok");\r
386// }\r
387 return jButtonOk;\r
388 }\r
389\r
390 /**\r
391 * This method initializes jButtonCancel \r
392 * \r
393 * @return javax.swing.JButton \r
394 */\r
395 private JButton getJButtonCancel() {\r
396// if (jButtonCancel == null) {\r
397 jButtonCancel = new JButton();\r
398 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
399 jButtonCancel.setText("Cancel");\r
400 jButtonCancel.addActionListener(new java.awt.event.ActionListener() {\r
401 public void actionPerformed(java.awt.event.ActionEvent e) {\r
402 getJTabbedPane().setSelectedIndex(0);\r
403 }\r
404 });\r
405// }\r
406 return jButtonCancel;\r
407 }\r
408\r
409 \r
a13899c5 410 public FpdFlash() {\r
411 super();\r
412 // TODO Auto-generated constructor stub\r
413\r
414 initialize();\r
415 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
416 this.setVisible(true);\r
417 }\r
418\r
419 public FpdFlash(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
420 this();\r
421 ffc = new FpdFileContents(fpd);\r
422 init(ffc);\r
423 }\r
424 \r
d6d24759 425 public FpdFlash(OpeningPlatformType opt) {\r
426 this(opt.getXmlFpd());\r
427 docConsole = opt;\r
428 }\r
429 \r
a13899c5 430 /**\r
431 * This method initializes jPanel \r
432 * \r
433 * @return javax.swing.JPanel \r
434 */\r
4da2e625 435 private JPanel getJPanelContentEast() {\r
436 if (jPanelContentEast == null) {\r
437 jPanelContentEast = new JPanel();\r
a13899c5 438 }\r
4da2e625 439 return jPanelContentEast;\r
a13899c5 440 }\r
441\r
442 /**\r
443 * This method initializes jPanel1 \r
444 * \r
445 * @return javax.swing.JPanel \r
446 */\r
4da2e625 447 private JPanel getJPanelContentSouth() {\r
448 if (jPanelContentSouth == null) {\r
a13899c5 449 FlowLayout flowLayout = new FlowLayout();\r
450 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
451 flowLayout.setHgap(15);\r
4da2e625 452 jPanelContentSouth = new JPanel();\r
453 jPanelContentSouth.setLayout(flowLayout);\r
454 jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
a13899c5 455 }\r
4da2e625 456 return jPanelContentSouth;\r
a13899c5 457 }\r
458\r
459 /**\r
460 * This method initializes jPanel2 \r
461 * \r
462 * @return javax.swing.JPanel \r
463 */\r
4da2e625 464 private JPanel getJPanelContentWest() {\r
465 if (jPanelContentWest == null) {\r
466 jPanelContentWest = new JPanel();\r
a13899c5 467 }\r
4da2e625 468 return jPanelContentWest;\r
a13899c5 469 }\r
470\r
471 /**\r
472 * This method initializes jPanel3 \r
473 * \r
474 * @return javax.swing.JPanel \r
475 */\r
4da2e625 476 private JPanel getJPanelContentNorth() {\r
477 if (jPanelContentNorth == null) {\r
478 jPanelContentNorth = new JPanel();\r
a13899c5 479 }\r
4da2e625 480 return jPanelContentNorth;\r
a13899c5 481 }\r
482\r
483 /**\r
484 * This method initializes jTabbedPane \r
485 * \r
486 * @return javax.swing.JTabbedPane \r
487 */\r
488 private JTabbedPane getJTabbedPane() {\r
489 if (jTabbedPane == null) {\r
490 jTabbedPane = new JTabbedPane();\r
3658f95e 491 jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
492 jTabbedPane.addTab("FV Parameters", null, getJPanelFvImages(), null);\r
a13899c5 493 \r
494 }\r
495 return jTabbedPane;\r
496 }\r
497\r
498 /**\r
499 * This method initializes jPanelFvImages \r
500 * \r
501 * @return javax.swing.JPanel \r
502 */\r
503 private JPanel getJPanelFvImages() {\r
504 if (jPanelFvImages == null) {\r
505 jPanelFvImages = new JPanel();\r
506 jPanelFvImages.setLayout(new BorderLayout());\r
507 jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.NORTH);\r
508// jPanelFvImages.add(getJPanelFvImageW(), java.awt.BorderLayout.WEST);\r
509 jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH);\r
510 jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);\r
511 \r
512 }\r
513 return jPanelFvImages;\r
514 }\r
515\r
a13899c5 516 /**\r
517 * This method initializes jPanelFvImageN \r
518 * \r
519 * @return javax.swing.JPanel \r
520 */\r
521 private JPanel getJPanelFvImageN() {\r
522 if (jPanelFvImageN == null) {\r
4da2e625 523 jLabelFvPropValue = new JLabel();\r
524 jLabelFvPropValue.setText("Value");\r
525 jLabelFvPropValue.setEnabled(false);\r
526 jLabelFvPropValue.setPreferredSize(new java.awt.Dimension(38,20));\r
527 jLabelFvPropName = new JLabel();\r
528 jLabelFvPropName.setText("Name");\r
529 jLabelFvPropName.setEnabled(false);\r
530 jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20));\r
a13899c5 531 FlowLayout flowLayout2 = new FlowLayout();\r
3658f95e 532 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
a13899c5 533 flowLayout2.setHgap(15);\r
534 jPanelFvImageN = new JPanel();\r
535 jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100));\r
536 jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));\r
537 jPanelFvImageN.setLayout(flowLayout2);\r
4da2e625 538 jPanelFvImageN.add(getJCheckBoxFvProperty(), null);\r
539 jPanelFvImageN.add(jLabelFvPropName, null);\r
540 jPanelFvImageN.add(getJTextFieldFvPropName(), null);\r
541 jPanelFvImageN.add(jLabelFvPropValue, null);\r
542 jPanelFvImageN.add(getJTextFieldFvPropValue(), null);\r
543 jPanelFvImageN.add(getJScrollPaneFvProp(), null);\r
544 jPanelFvImageN.add(getJPanelFvPropButtonGroup(), null);\r
a13899c5 545 }\r
546 return jPanelFvImageN;\r
547 }\r
548\r
a13899c5 549 /**\r
550 * This method initializes jPanelFvImageS \r
551 * \r
552 * @return javax.swing.JPanel \r
553 */\r
554 private JPanel getJPanelFvImageS() {\r
555 if (jPanelFvImageS == null) {\r
556 GridLayout gridLayout2 = new GridLayout();\r
557 gridLayout2.setRows(1);\r
558 jPanelFvImageS = new JPanel();\r
44053733 559 jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));\r
a13899c5 560 jPanelFvImageS.setLayout(gridLayout2);\r
4da2e625 561 jPanelFvImageS.add(getJScrollPaneFvInfo(), null);\r
a13899c5 562 }\r
563 return jPanelFvImageS;\r
564 }\r
565\r
566\r
567 /**\r
568 * This method initializes jCheckBox1 \r
569 * \r
570 * @return javax.swing.JCheckBox \r
571 */\r
4da2e625 572 private JCheckBox getJCheckBoxFvProperty() {\r
573 if (jCheckBoxFvProperty == null) {\r
574 jCheckBoxFvProperty = new JCheckBox();\r
3658f95e 575 jCheckBoxFvProperty.setText("Global FV Variables");\r
4da2e625 576 jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
a13899c5 577\r
578 public void itemStateChanged(ItemEvent arg0) {\r
579 // TODO Auto-generated method stub\r
4da2e625 580 boolean seleted = jCheckBoxFvProperty.isSelected();\r
a13899c5 581 \r
4da2e625 582 jLabelFvPropName.setEnabled(seleted);\r
583 jTextFieldFvPropName.setEnabled(seleted);\r
584 jLabelFvPropValue.setEnabled(seleted);\r
585 jTextFieldFvPropValue.setEnabled(seleted);\r
586 jTableFvProp.setEnabled(seleted);\r
587 jButtonFvPropAdd.setEnabled(seleted);\r
588 jButtonFvPropDel.setEnabled(seleted);\r
a13899c5 589 \r
590 \r
591 }\r
592 \r
593 });\r
594 }\r
4da2e625 595 return jCheckBoxFvProperty;\r
a13899c5 596 }\r
597\r
598\r
599 /**\r
600 * This method initializes jTextField \r
601 * \r
602 * @return javax.swing.JTextField \r
603 */\r
4da2e625 604 private JTextField getJTextFieldFvPropName() {\r
605 if (jTextFieldFvPropName == null) {\r
606 jTextFieldFvPropName = new JTextField();\r
607 jTextFieldFvPropName.setPreferredSize(new java.awt.Dimension(100,20));\r
608 jTextFieldFvPropName.setEnabled(false);\r
a13899c5 609 }\r
4da2e625 610 return jTextFieldFvPropName;\r
a13899c5 611 }\r
612\r
613\r
614 /**\r
615 * This method initializes jTextField1 \r
616 * \r
617 * @return javax.swing.JTextField \r
618 */\r
4da2e625 619 private JTextField getJTextFieldFvPropValue() {\r
620 if (jTextFieldFvPropValue == null) {\r
621 jTextFieldFvPropValue = new JTextField();\r
622 jTextFieldFvPropValue.setPreferredSize(new java.awt.Dimension(100,20));\r
623 jTextFieldFvPropValue.setEnabled(false);\r
a13899c5 624 }\r
4da2e625 625 return jTextFieldFvPropValue;\r
a13899c5 626 }\r
627\r
628\r
629 /**\r
630 * This method initializes jButton \r
631 * \r
632 * @return javax.swing.JButton \r
633 */\r
4da2e625 634 private JButton getJButtonFvPropAdd() {\r
635 if (jButtonFvPropAdd == null) {\r
636 jButtonFvPropAdd = new JButton();\r
637 jButtonFvPropAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
638 jButtonFvPropAdd.setEnabled(false);\r
639 jButtonFvPropAdd.setText("Add");\r
640 jButtonFvPropAdd.addActionListener(new AbstractAction() {\r
44053733 641 /**\r
642 * \r
643 */\r
644 private static final long serialVersionUID = 1L;\r
645\r
a13899c5 646 public void actionPerformed(ActionEvent e) {\r
4da2e625 647 if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){\r
648 String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; \r
a13899c5 649 fvPropertyTableModel.addRow(row);\r
d6d24759 650 docConsole.setSaved(false);\r
a13899c5 651 ffc.genFvImagesNameValue(row[0], row[1]);\r
652 }\r
653 }\r
654 });\r
655 }\r
4da2e625 656 return jButtonFvPropAdd;\r
a13899c5 657 }\r
658\r
659\r
660 /**\r
661 * This method initializes jScrollPane1 \r
662 * \r
663 * @return javax.swing.JScrollPane \r
664 */\r
4da2e625 665 private JScrollPane getJScrollPaneFvProp() {\r
666 if (jScrollPaneFvProp == null) {\r
667 jScrollPaneFvProp = new JScrollPane();\r
668 jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,55));\r
669 jScrollPaneFvProp.setViewportView(getJTableFvProp());\r
a13899c5 670 }\r
4da2e625 671 return jScrollPaneFvProp;\r
a13899c5 672 }\r
673\r
674\r
675 /**\r
676 * This method initializes jTable \r
677 * \r
678 * @return javax.swing.JTable \r
679 */\r
4da2e625 680 private JTable getJTableFvProp() {\r
681 if (jTableFvProp == null) {\r
a13899c5 682 fvPropertyTableModel = new DefaultTableModel();\r
4da2e625 683 jTableFvProp = new JTable(fvPropertyTableModel);\r
a13899c5 684 fvPropertyTableModel.addColumn("Name");\r
685 fvPropertyTableModel.addColumn("Value");\r
4da2e625 686 jTableFvProp.setRowHeight(20);\r
687 jTableFvProp.setEnabled(false);\r
a13899c5 688 \r
4da2e625 689 jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
690 jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 691 public void valueChanged(ListSelectionEvent e) {\r
692 if (e.getValueIsAdjusting()){\r
693 return;\r
694 }\r
695 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
696 if (lsm.isSelectionEmpty()) {\r
697 return;\r
698 }\r
699 else{\r
700// selectedRow = lsm.getMinSelectionIndex();\r
701 }\r
702 }\r
703 });\r
704 \r
4da2e625 705 jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
a13899c5 706 public void tableChanged(TableModelEvent arg0) {\r
707 // TODO Auto-generated method stub\r
708 int row = arg0.getFirstRow();\r
709 TableModel m = (TableModel)arg0.getSource();\r
710 if (arg0.getType() == TableModelEvent.UPDATE){\r
711 \r
712 String name = m.getValueAt(row, 0) + "";\r
713 String value = m.getValueAt(row, 1) + "";\r
d6d24759 714 docConsole.setSaved(false);\r
a13899c5 715 ffc.updateFvImagesNameValue(row, name, value);\r
716 }\r
717 }\r
718 });\r
719 }\r
4da2e625 720 return jTableFvProp;\r
a13899c5 721 }\r
722\r
723\r
724 /**\r
725 * This method initializes jPanel4 \r
726 * \r
727 * @return javax.swing.JPanel \r
728 */\r
4da2e625 729 private JPanel getJPanelFvPropButtonGroup() {\r
730 if (jPanelFvPropButtonGroup == null) {\r
731 jPanelFvPropButtonGroup = new JPanel();\r
732 jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55));\r
a13899c5 733 \r
4da2e625 734 jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
735 jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
a13899c5 736 }\r
4da2e625 737 return jPanelFvPropButtonGroup;\r
a13899c5 738 }\r
739\r
740\r
741 /**\r
742 * This method initializes jButton1 \r
743 * \r
744 * @return javax.swing.JButton \r
745 */\r
4da2e625 746 private JButton getJButtonFvPropDel() {\r
747 if (jButtonFvPropDel == null) {\r
748 jButtonFvPropDel = new JButton();\r
749 jButtonFvPropDel.setPreferredSize(new java.awt.Dimension(80,20));\r
750 jButtonFvPropDel.setEnabled(false);\r
751 jButtonFvPropDel.setText("Delete");\r
752 jButtonFvPropDel.addActionListener(new AbstractAction() {\r
44053733 753 /**\r
754 * \r
755 */\r
756 private static final long serialVersionUID = 1L;\r
757\r
a13899c5 758 public void actionPerformed(ActionEvent e) {\r
4da2e625 759 if (jTableFvProp.getSelectedRow() >= 0){\r
760 fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
d6d24759 761 docConsole.setSaved(false);\r
4da2e625 762 ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
a13899c5 763 }\r
764 }\r
765 });\r
766 }\r
4da2e625 767 return jButtonFvPropDel;\r
a13899c5 768 }\r
769\r
770\r
771 /**\r
772 * This method initializes jPanelFvImageC \r
773 * \r
774 * @return javax.swing.JPanel \r
775 */\r
776 private JPanel getJPanelFvImageC() {\r
777 if (jPanelFvImageC == null) {\r
4da2e625 778 jLabelFvParaName = new JLabel();\r
779 jLabelFvParaName.setPreferredSize(new Dimension(38, 20));\r
780 jLabelFvParaName.setEnabled(false);\r
781 jLabelFvParaName.setText("Name");\r
782 jLabelFvImageNames = new JLabel();\r
783 jLabelFvImageNames.setText("FV Image Names");\r
784 jLabelFvImageNames.setEnabled(false);\r
785 jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20));\r
786 jLabelFvParaType = new JLabel();\r
787 jLabelFvParaType.setText("Type");\r
788 jLabelFvParaType.setEnabled(false);\r
789 jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20));\r
a13899c5 790 FlowLayout flowLayout3 = new FlowLayout();\r
791 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
792 flowLayout3.setHgap(5);\r
793 jPanelFvImageC = new JPanel();\r
794 jPanelFvImageC.setLayout(flowLayout3);\r
4da2e625 795 jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
a13899c5 796 \r
4da2e625 797 jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
a13899c5 798 \r
799 }\r
800 return jPanelFvImageC;\r
801 }\r
802\r
803\r
804 /**\r
805 * This method initializes jCheckBox2 \r
806 * \r
807 * @return javax.swing.JCheckBox \r
808 */\r
4da2e625 809 private JCheckBox getJCheckBoxFvImagePara() {\r
810 if (jCheckBoxFvImagePara == null) {\r
811 jCheckBoxFvImagePara = new JCheckBox();\r
812 jCheckBoxFvImagePara.setText("FV Image Parameters");\r
813 jCheckBoxFvImagePara.setPreferredSize(new java.awt.Dimension(200,20));\r
814 jCheckBoxFvImagePara.addItemListener(new ItemListener(){\r
a13899c5 815\r
816 public void itemStateChanged(ItemEvent arg0) {\r
817 // TODO Auto-generated method stub\r
4da2e625 818 boolean seleted = jCheckBoxFvImagePara.isSelected();\r
a13899c5 819 \r
4da2e625 820 jLabelFvParaType.setEnabled(seleted);\r
821 jLabelFvImageNames.setEnabled(seleted);\r
822 jLabelFvParaName.setEnabled(seleted);\r
823 jComboBoxFvParaType.setEnabled(seleted);\r
824 jTextFieldFvParaName.setEnabled(seleted);\r
a13899c5 825 \r
4da2e625 826 jTableFvImageNames.setEnabled(seleted);\r
827 jButtonFvParaAdd.setEnabled(seleted);\r
828 jButtonFvParaDel.setEnabled(seleted);\r
a13899c5 829 \r
830 \r
831 }\r
832 \r
833 });\r
834 }\r
4da2e625 835 return jCheckBoxFvImagePara;\r
a13899c5 836 }\r
837\r
838\r
839 /**\r
840 * This method initializes jComboBox \r
841 * \r
842 * @return javax.swing.JComboBox \r
843 */\r
4da2e625 844 private JComboBox getJComboBoxFvParaType() {\r
845 if (jComboBoxFvParaType == null) {\r
846 jComboBoxFvParaType = new JComboBox();\r
847 jComboBoxFvParaType.addItem("ImageName");\r
848 jComboBoxFvParaType.addItem("Attributes");\r
849 jComboBoxFvParaType.addItem("Options");\r
850 jComboBoxFvParaType.addItem("Components");\r
851 jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20));\r
852 jComboBoxFvParaType.setEnabled(false);\r
853 jComboBoxFvParaType.addItemListener(new ItemListener() {\r
a13899c5 854\r
855 public void itemStateChanged(ItemEvent arg0) {\r
856 // TODO disable attribute settings when ValidImageNames selected.\r
857 \r
858 }\r
859 \r
860 });\r
861 }\r
4da2e625 862 return jComboBoxFvParaType;\r
a13899c5 863 }\r
864\r
865\r
866 /**\r
867 * This method initializes jTextField2 \r
868 * \r
869 * @return javax.swing.JTextField \r
870 */\r
4da2e625 871 private JTextField getJTextFieldFvParaName() {\r
872 if (jTextFieldFvParaName == null) {\r
873 jTextFieldFvParaName = new JTextField();\r
874 jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20));\r
875 jTextFieldFvParaName.setEnabled(false);\r
a13899c5 876 }\r
4da2e625 877 return jTextFieldFvParaName;\r
a13899c5 878 }\r
879\r
880\r
881 /**\r
882 * This method initializes jButton2 \r
883 * \r
884 * @return javax.swing.JButton \r
885 */\r
4da2e625 886 private JButton getJButtonFvParaAdd() {\r
887 if (jButtonFvParaAdd == null) {\r
888 jButtonFvParaAdd = new JButton();\r
889 jButtonFvParaAdd.setPreferredSize(new Dimension(80, 20));\r
890 jButtonFvParaAdd.setEnabled(false);\r
891 jButtonFvParaAdd.setText("Add");\r
892 jButtonFvParaAdd.addActionListener(new AbstractAction() {\r
44053733 893 /**\r
894 * \r
895 */\r
896 private static final long serialVersionUID = 1L;\r
897\r
a13899c5 898 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 899 if (jTextFieldFvParaName.getText().length() > 0){\r
900 String[] row = {jTextFieldFvParaName.getText()}; \r
a13899c5 901 fvImageNameTableModel.addRow(row);\r
902 }\r
903 }\r
904 });\r
905 }\r
4da2e625 906 return jButtonFvParaAdd;\r
a13899c5 907 }\r
908\r
909\r
910 /**\r
911 * This method initializes jScrollPane2 \r
912 * \r
913 * @return javax.swing.JScrollPane \r
914 */\r
4da2e625 915 private JScrollPane getJScrollPaneFvImageNames() {\r
916 if (jScrollPaneFvImageNames == null) {\r
917 jScrollPaneFvImageNames = new JScrollPane();\r
918 jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,50));\r
919 jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames());\r
a13899c5 920 }\r
4da2e625 921 return jScrollPaneFvImageNames;\r
a13899c5 922 }\r
923\r
924\r
925 /**\r
926 * This method initializes jTable1 \r
927 * \r
928 * @return javax.swing.JTable \r
929 */\r
4da2e625 930 private JTable getJTableFvImageNames() {\r
931 if (jTableFvImageNames == null) {\r
a13899c5 932 fvImageNameTableModel = new DefaultTableModel();\r
4da2e625 933 jTableFvImageNames = new JTable(fvImageNameTableModel);\r
934 jTableFvImageNames.setEnabled(false);\r
a13899c5 935 fvImageNameTableModel.addColumn("FV Image Name");\r
936 }\r
4da2e625 937 return jTableFvImageNames;\r
a13899c5 938 }\r
939\r
940\r
941 /**\r
942 * This method initializes jButton3 \r
943 * \r
944 * @return javax.swing.JButton \r
945 */\r
4da2e625 946 private JButton getJButtonFvParaDel() {\r
947 if (jButtonFvParaDel == null) {\r
948 jButtonFvParaDel = new JButton();\r
949 jButtonFvParaDel.setPreferredSize(new Dimension(80, 20));\r
950 jButtonFvParaDel.setEnabled(false);\r
951 jButtonFvParaDel.setText("Delete");\r
952 jButtonFvParaDel.addActionListener(new AbstractAction() {\r
44053733 953 /**\r
954 * \r
955 */\r
956 private static final long serialVersionUID = 1L;\r
957\r
a13899c5 958 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 959 if (jTableFvImageNames.getSelectedRow() >= 0){\r
a13899c5 960 \r
4da2e625 961 fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
a13899c5 962 }\r
963 }\r
964 });\r
965 }\r
4da2e625 966 return jButtonFvParaDel;\r
a13899c5 967 }\r
968\r
969\r
970\r
971 \r
4da2e625 972 private JPanel getJPanelFvImageOpts() {\r
a13899c5 973 \r
974\r
4da2e625 975 if (jPanelFvImageOpts == null) {\r
a13899c5 976 //ToDo add ButtonGroup for RadioButtons\r
4da2e625 977 jLabelFvImageOptValue = new JLabel();\r
978 jLabelFvImageOptValue.setEnabled(true);\r
979 jLabelFvImageOptValue.setText("Value");\r
980 jLabelFvImageOptValue.setPreferredSize(new Dimension(38, 20));\r
981 jLabelFvImageOptName = new JLabel();\r
982 jLabelFvImageOptName.setEnabled(true);\r
983 jLabelFvImageOptName.setText("Name");\r
984 jLabelFvImageOptName.setPreferredSize(new Dimension(38, 20));\r
985 jPanelFvImageOpts = new JPanel();\r
986 jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(480,150));\r
a13899c5 987 \r
4da2e625 988 jPanelFvImageOpts.setLayout(new FlowLayout());\r
a13899c5 989 \r
4da2e625 990 jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
991 jPanelFvImageOpts.add(getJCheckBoxFvImageOpts(), null);\r
992 jPanelFvImageOpts.add(jLabelFvImageOptName, null);\r
993 jPanelFvImageOpts.add(getJTextFieldFvImageOptName(), null);\r
994 jPanelFvImageOpts.add(jLabelFvImageOptValue, null);\r
995 jPanelFvImageOpts.add(getJTextFieldFvImageOptValue(), null);\r
996 jPanelFvImageOpts.add(getJScrollPane(), null);\r
997 jPanelFvImageOpts.add(getJPanelFvImageOptsButtonGroup(), null);\r
998 jPanelFvImageOpts.add(getJButtonAddFvImage(), null);\r
999 jPanelFvImageOpts.add(getJButtonDelFvImage(), null);\r
1000 jPanelFvImageOpts.add(getJButtonUpdateFvImage(), null);\r
a13899c5 1001 \r
1002 \r
1003 \r
1004\r
1005 \r
1006 }\r
4da2e625 1007 return jPanelFvImageOpts;\r
a13899c5 1008 }\r
1009\r
1010\r
1011 /**\r
1012 * This method initializes jButton4 \r
1013 * \r
1014 * @return javax.swing.JButton \r
1015 */\r
4da2e625 1016 private JButton getJButtonAddFvImage() {\r
1017 if (jButtonAddFvImage == null) {\r
1018 jButtonAddFvImage = new JButton();\r
1019 jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
a13899c5 1020// jButton4.setEnabled(false);\r
4da2e625 1021 jButtonAddFvImage.setText("Add FV Image");\r
1022 jButtonAddFvImage.addActionListener(new AbstractAction() {\r
44053733 1023 /**\r
1024 * \r
1025 */\r
1026 private static final long serialVersionUID = 1L;\r
1027\r
a13899c5 1028 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1029 if (jTableFvInfo.isEditing()) {\r
1030 jTableFvInfo.getCellEditor().stopCellEditing();\r
ae0d4fd2 1031 }\r
4da2e625 1032 if (jTableFvImageOpts.isEditing()) {\r
1033 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
ae0d4fd2 1034 }\r
4da2e625 1035 if (jTableFvImageNames.getRowCount()== 0){\r
a13899c5 1036 return;\r
1037 }\r
1038 String imageName = " ";\r
4da2e625 1039 for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){\r
1040 imageName += (String)jTableFvImageNames.getValueAt(i, 0);\r
a13899c5 1041 imageName += " ";\r
1042 }\r
1043 imageName = imageName.trim();\r
1044 \r
4da2e625 1045 if (!jCheckBoxFvImageOpts.isSelected() && jComboBoxFvParaType.getSelectedIndex() != 0){\r
a13899c5 1046 return;\r
1047 \r
1048 }\r
1049 \r
44053733 1050 LinkedHashMap<String, String> m = null;\r
4da2e625 1051 if (jCheckBoxFvImageOpts.isSelected()) {\r
44053733 1052 m = new LinkedHashMap<String, String>();\r
ae0d4fd2 1053 getOptionNameValue(m);\r
44053733 1054 }\r
4da2e625 1055 ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
d6d24759 1056 docConsole.setSaved(false);\r
4da2e625 1057 Object[] row = {imageName, jComboBoxFvParaType.getSelectedItem()};\r
ae0d4fd2 1058 fvImageParaTableModel.addRow(row); \r
a13899c5 1059 }\r
1060 });\r
1061 }\r
4da2e625 1062 return jButtonAddFvImage;\r
a13899c5 1063 }\r
1064\r
1065\r
1066 /**\r
1067 * This method initializes jScrollPane3 \r
1068 * \r
1069 * @return javax.swing.JScrollPane \r
1070 */\r
4da2e625 1071 private JScrollPane getJScrollPaneFvInfo() {\r
1072 if (jScrollPaneFvInfo == null) {\r
1073 jScrollPaneFvInfo = new JScrollPane();\r
1074 jScrollPaneFvInfo.setPreferredSize(new java.awt.Dimension(480,150));\r
1075 jScrollPaneFvInfo.setViewportView(getJTableFvInfo());\r
a13899c5 1076 }\r
4da2e625 1077 return jScrollPaneFvInfo;\r
a13899c5 1078 }\r
1079\r
1080\r
1081 /**\r
1082 * This method initializes jTable2 \r
1083 * \r
1084 * @return javax.swing.JTable \r
1085 */\r
4da2e625 1086 private JTable getJTableFvInfo() {\r
1087 if (jTableFvInfo == null) {\r
a13899c5 1088 fvImageParaTableModel = new ImageParaTableModel();\r
4da2e625 1089 jTableFvInfo = new JTable(fvImageParaTableModel);\r
a13899c5 1090 fvImageParaTableModel.addColumn("FvImageNames");\r
1091 fvImageParaTableModel.addColumn("Type");\r
ae0d4fd2 1092 \r
a13899c5 1093 \r
4da2e625 1094 TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1);\r
a13899c5 1095 JComboBox cb = new JComboBox();\r
1096 cb.addItem("ValidImageNames");\r
1097 cb.addItem("Attributes");\r
1098 cb.addItem("Options");\r
1099 cb.addItem("Components");\r
1100 typeCol.setCellEditor(new DefaultCellEditor(cb));\r
1101 \r
4da2e625 1102 jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1103 jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 1104 public void valueChanged(ListSelectionEvent e) {\r
1105 if (e.getValueIsAdjusting()){\r
1106 return;\r
1107 }\r
1108 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1109 if (lsm.isSelectionEmpty()) {\r
1110 return;\r
1111 }\r
1112 else{\r
ae0d4fd2 1113 int selectedRow = lsm.getMinSelectionIndex();\r
1114 LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();\r
1115 ffc.getFvImagesFvImageOptions(selectedRow, optionMap);\r
1116 if (optionMap.size() > 0){\r
1117 fvOptionTableModel.setRowCount(0);\r
1118 Set<String> key = optionMap.keySet();\r
1119 Iterator<String> i = key.iterator();\r
1120 while (i.hasNext()) {\r
1121 \r
1122 String k = (String)i.next();\r
1123 String[] row = {k, optionMap.get(k)};\r
1124 \r
1125 fvOptionTableModel.addRow(row);\r
1126 }\r
a13899c5 1127 }\r
ae0d4fd2 1128 \r
a13899c5 1129 }\r
1130 }\r
1131 });\r
ae0d4fd2 1132 \r
1133 \r
a13899c5 1134 }\r
4da2e625 1135 return jTableFvInfo;\r
a13899c5 1136 }\r
1137\r
1138\r
1139 /**\r
1140 * This method initializes jButton6 \r
1141 * \r
1142 * @return javax.swing.JButton \r
1143 */\r
4da2e625 1144 private JButton getJButtonDelFvImage() {\r
1145 if (jButtonDelFvImage == null) {\r
1146 jButtonDelFvImage = new JButton();\r
1147 jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
a13899c5 1148// jButton6.setEnabled(false);\r
4da2e625 1149 jButtonDelFvImage.setText("Delete Row");\r
1150 jButtonDelFvImage.addActionListener(new AbstractAction() {\r
44053733 1151 /**\r
1152 * \r
1153 */\r
1154 private static final long serialVersionUID = 1L;\r
a13899c5 1155\r
1156 public void actionPerformed(ActionEvent arg0) {\r
1157 // TODO Auto-generated method stub\r
4da2e625 1158 if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
1159 ffc.removeFvImagesFvImage(jTableFvInfo.getSelectedRow());\r
1160 fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
d6d24759 1161 docConsole.setSaved(false);\r
a13899c5 1162 }\r
1163 }\r
1164 \r
1165 });\r
1166 }\r
4da2e625 1167 return jButtonDelFvImage;\r
a13899c5 1168 }\r
1169\r
1170\r
1171 /**\r
1172 * This method initializes jCheckBox3 \r
1173 * \r
1174 * @return javax.swing.JCheckBox \r
1175 */\r
4da2e625 1176 private JCheckBox getJCheckBoxFvImageOpts() {\r
1177 if (jCheckBoxFvImageOpts == null) {\r
1178 jCheckBoxFvImageOpts = new JCheckBox();\r
1179 jCheckBoxFvImageOpts.setText("FV Image Options");\r
1180 jCheckBoxFvImageOpts.addItemListener(new ItemListener(){\r
a13899c5 1181\r
1182 public void itemStateChanged(ItemEvent arg0) {\r
1183 // TODO Auto-generated method stub\r
1800d80f 1184// boolean selected = jCheckBox3.isSelected();\r
a13899c5 1185 \r
4da2e625 1186 if (!jCheckBoxFvImagePara.isSelected() || jComboBoxFvParaType.getSelectedIndex() == 0) {\r
a13899c5 1187 return;\r
1188 }\r
1189 \r
ae0d4fd2 1190// jLabel5.setEnabled(selected);\r
1191// jTextField4.setEnabled(selected);\r
1192// jLabel6.setEnabled(selected);\r
1193// jTextField5.setEnabled(selected);\r
1194// jButton7.setEnabled(selected);\r
1195// jButton8.setEnabled(selected);\r
1196\r
a13899c5 1197 }\r
1198 \r
1199 });\r
1200 }\r
4da2e625 1201 return jCheckBoxFvImageOpts;\r
a13899c5 1202 }\r
1203\r
1204\r
a13899c5 1205 /**\r
1206 * This method initializes jPanel6 \r
1207 * \r
1208 * @return javax.swing.JPanel \r
1209 */\r
4da2e625 1210 private JPanel getJPanelFvImagePara() {\r
1211 if (jPanelFvImagePara == null) {\r
a13899c5 1212 StarLabel starLabel = new StarLabel();\r
1213 starLabel.setVisible(false);\r
4da2e625 1214 jPanelFvImagePara = new JPanel();\r
1215 jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(480,120));\r
1216 jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
1217 jPanelFvImagePara.add(getJCheckBoxFvImagePara(), null);\r
1218 jPanelFvImagePara.add(jLabelFvParaType, null);\r
1219 jPanelFvImagePara.add(getJComboBoxFvParaType(), null);\r
1220 jPanelFvImagePara.add(new StarLabel(), null);\r
1221 jPanelFvImagePara.add(jLabelFvImageNames, null);\r
1222 jPanelFvImagePara.add(jLabelFvParaName, null);\r
1223 jPanelFvImagePara.add(getJTextFieldFvParaName(), null);\r
1224 jPanelFvImagePara.add(getJButtonFvParaAdd(), null);\r
1225 jPanelFvImagePara.add(getJScrollPaneFvImageNames(), null);\r
1226 jPanelFvImagePara.add(getJButtonFvParaDel(), null);\r
a13899c5 1227 }\r
4da2e625 1228 return jPanelFvImagePara;\r
a13899c5 1229 }\r
1230\r
1231 /**\r
1232 * This method initializes jPanel7 \r
1233 * \r
1234 * @return javax.swing.JPanel \r
1235 */\r
4da2e625 1236 private JPanel getJPanelFdf() {\r
1237 if (jPanelFdf == null) {\r
4da2e625 1238 jPanelFdf = new JPanel();\r
3658f95e 1239 jPanelFdf.setLayout(new BorderLayout());\r
1240\r
1241 jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH);\r
1242 jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH);\r
1243 jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER);\r
1244// jPanelFdf.addComponentListener(new ComponentAdapter(){\r
1245// public void componentShown(ComponentEvent e) {\r
1246// if (ffc.getFlashDefinitionFile() != null) {\r
1247// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
1248// }\r
1249// }\r
1250// public void componentHidden(ComponentEvent e) {\r
1251// if (jCheckBoxFdf.isSelected()) {\r
1252// ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1253// }\r
1254// }\r
1255// });\r
a13899c5 1256 }\r
4da2e625 1257 return jPanelFdf;\r
a13899c5 1258 }\r
1259\r
1260 /**\r
1261 * This method initializes jCheckBox \r
1262 * \r
1263 * @return javax.swing.JCheckBox \r
1264 */\r
4da2e625 1265 private JCheckBox getJCheckBoxFdf() {\r
1266 if (jCheckBoxFdf == null) {\r
1267 jCheckBoxFdf = new JCheckBox();\r
1268 jCheckBoxFdf.setText("Flash Definition File");\r
1269 jCheckBoxFdf.addItemListener(new ItemListener() {\r
a13899c5 1270\r
1271 public void itemStateChanged(ItemEvent arg0) {\r
1272 // TODO Auto-generated method stub\r
4da2e625 1273 if (jCheckBoxFdf.isSelected()){\r
1274 jTextFieldFdf.setEnabled(true);\r
1275 jButtonFdfBrowse.setEnabled(true);\r
a13899c5 1276 }\r
1277 else {\r
1278 \r
4da2e625 1279 jTextFieldFdf.setEnabled(false);\r
1280 jButtonFdfBrowse.setEnabled(false);\r
a13899c5 1281 }\r
1282 }\r
1283 });\r
1284 }\r
4da2e625 1285 return jCheckBoxFdf;\r
a13899c5 1286 }\r
1287\r
1288 /**\r
1289 * This method initializes jTextField3 \r
1290 * \r
1291 * @return javax.swing.JTextField \r
1292 */\r
4da2e625 1293 private JTextField getJTextFieldFdf() {\r
1294 if (jTextFieldFdf == null) {\r
1295 jTextFieldFdf = new JTextField();\r
1296 jTextFieldFdf.setEnabled(false);\r
1297 jTextFieldFdf.setPreferredSize(new Dimension(300, 20));\r
1298 jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() {\r
908b1c05 1299 public void focusLost(java.awt.event.FocusEvent e) {\r
4da2e625 1300 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
908b1c05 1301 }\r
1302 });\r
a13899c5 1303 }\r
4da2e625 1304 return jTextFieldFdf;\r
a13899c5 1305 }\r
1306\r
1307 /**\r
1308 * This method initializes jButton5 \r
1309 * \r
1310 * @return javax.swing.JButton \r
1311 */\r
4da2e625 1312 private JButton getJButtonFdfBrowse() {\r
1313 if (jButtonFdfBrowse == null) {\r
1314 jButtonFdfBrowse = new JButton();\r
1315 jButtonFdfBrowse.setEnabled(false);\r
1316 jButtonFdfBrowse.setText("Browse");\r
1317 jButtonFdfBrowse.setPreferredSize(new Dimension(78, 20));\r
1318 jButtonFdfBrowse.addActionListener(new AbstractAction(){\r
44053733 1319 /**\r
1320 * \r
1321 */\r
1322 private static final long serialVersionUID = 1L;\r
1323\r
a13899c5 1324 public void actionPerformed(ActionEvent e) {\r
1325 // TODO Auto-generated method stub\r
908b1c05 1326 String wsDir = System.getenv("WORKSPACE");\r
1327 JFileChooser chooser = new JFileChooser(wsDir);\r
a13899c5 1328 chooser.setMultiSelectionEnabled(false);\r
1329 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
1330 int retval = chooser.showOpenDialog(frame);\r
1331 if (retval == JFileChooser.APPROVE_OPTION) {\r
1332\r
1333 File theFile = chooser.getSelectedFile();\r
908b1c05 1334 String filePath = theFile.getPath();\r
1335 if (!filePath.startsWith(wsDir)) {\r
1336 JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE.");\r
1337 return;\r
1338 }\r
4da2e625 1339 jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
3658f95e 1340 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1341 docConsole.setSaved(false);\r
1342 Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
1343 getFvInfoFromFdf(filePath, vFvInfo);\r
1344 getFvInFdfTableModel().setRowCount(0);\r
1345 for (int j = 0; j < vFvInfo.size(); ++j) {\r
1346 FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
1347 String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
1348 getFvInFdfTableModel().addRow(row);\r
1349 }\r
a13899c5 1350 }\r
1351 }\r
1352 \r
1353 });\r
1354 }\r
4da2e625 1355 return jButtonFdfBrowse;\r
a13899c5 1356 }\r
1357\r
44053733 1358 /**\r
ae0d4fd2 1359 * This method initializes jTextField4 \r
44053733 1360 * \r
ae0d4fd2 1361 * @return javax.swing.JTextField \r
44053733 1362 */\r
4da2e625 1363 private JTextField getJTextFieldFvImageOptName() {\r
1364 if (jTextFieldFvImageOptName == null) {\r
1365 jTextFieldFvImageOptName = new JTextField();\r
1366 jTextFieldFvImageOptName.setEnabled(true);\r
1367 jTextFieldFvImageOptName.setPreferredSize(new Dimension(100, 20));\r
44053733 1368 }\r
4da2e625 1369 return jTextFieldFvImageOptName;\r
ae0d4fd2 1370 }\r
1371\r
1372 /**\r
1373 * This method initializes jTextField5 \r
1374 * \r
1375 * @return javax.swing.JTextField \r
1376 */\r
4da2e625 1377 private JTextField getJTextFieldFvImageOptValue() {\r
1378 if (jTextFieldFvImageOptValue == null) {\r
1379 jTextFieldFvImageOptValue = new JTextField();\r
1380 jTextFieldFvImageOptValue.setEnabled(true);\r
1381 jTextFieldFvImageOptValue.setPreferredSize(new Dimension(100, 20));\r
ae0d4fd2 1382 }\r
4da2e625 1383 return jTextFieldFvImageOptValue;\r
ae0d4fd2 1384 }\r
1385\r
1386 /**\r
1387 * This method initializes jPanel8 \r
1388 * \r
1389 * @return javax.swing.JPanel \r
1390 */\r
4da2e625 1391 private JPanel getJPanelFvImageOptsButtonGroup() {\r
1392 if (jPanelFvImageOptsButtonGroup == null) {\r
1393 jPanelFvImageOptsButtonGroup = new JPanel();\r
1394 jPanelFvImageOptsButtonGroup.setPreferredSize(new Dimension(80, 55));\r
1395 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptAdd(), null);\r
1396 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptDel(), null);\r
ae0d4fd2 1397 }\r
4da2e625 1398 return jPanelFvImageOptsButtonGroup;\r
ae0d4fd2 1399 }\r
1400\r
1401 /**\r
1402 * This method initializes jButton7 \r
1403 * \r
1404 * @return javax.swing.JButton \r
1405 */\r
4da2e625 1406 private JButton getJButtonFvImageOptAdd() {\r
1407 if (jButtonFvImageOptAdd == null) {\r
1408 jButtonFvImageOptAdd = new JButton();\r
1409 jButtonFvImageOptAdd.setEnabled(true);\r
1410 jButtonFvImageOptAdd.setText("Add");\r
1411 jButtonFvImageOptAdd.setPreferredSize(new Dimension(80, 20));\r
1412 jButtonFvImageOptAdd.addActionListener(new AbstractAction() {\r
ae0d4fd2 1413 /**\r
1414 * \r
1415 */\r
1416 private static final long serialVersionUID = 1L;\r
1417\r
1418 public void actionPerformed(ActionEvent e) {\r
4da2e625 1419 if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
1420 String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()}; \r
ae0d4fd2 1421 fvOptionTableModel.addRow(row);\r
1422 }\r
1423 }\r
1424 });\r
1425 }\r
4da2e625 1426 return jButtonFvImageOptAdd;\r
ae0d4fd2 1427 }\r
1428\r
1429 /**\r
1430 * This method initializes jButton8 \r
1431 * \r
1432 * @return javax.swing.JButton \r
1433 */\r
4da2e625 1434 private JButton getJButtonFvImageOptDel() {\r
1435 if (jButtonFvImageOptDel == null) {\r
1436 jButtonFvImageOptDel = new JButton();\r
1437 jButtonFvImageOptDel.setEnabled(true);\r
1438 jButtonFvImageOptDel.setText("Delete");\r
1439 jButtonFvImageOptDel.setPreferredSize(new Dimension(80, 20));\r
1440 jButtonFvImageOptDel.addActionListener(new AbstractAction() {\r
ae0d4fd2 1441 /**\r
1442 * \r
1443 */\r
1444 private static final long serialVersionUID = 1L;\r
1445\r
1446 public void actionPerformed(ActionEvent e) {\r
4da2e625 1447 if (jTableFvImageOpts.getSelectedRow() >= 0){\r
1448 fvOptionTableModel.removeRow(jTableFvProp.getSelectedRow());\r
ae0d4fd2 1449 }\r
1450 }\r
1451 });\r
1452 }\r
4da2e625 1453 return jButtonFvImageOptDel;\r
ae0d4fd2 1454 }\r
1455\r
1456 /**\r
1457 * This method initializes jScrollPane \r
1458 * \r
1459 * @return javax.swing.JScrollPane \r
1460 */\r
1461 private JScrollPane getJScrollPane() {\r
1462 if (jScrollPane == null) {\r
1463 jScrollPane = new JScrollPane();\r
1464 jScrollPane.setPreferredSize(new java.awt.Dimension(350,80));\r
4da2e625 1465 jScrollPane.setViewportView(getJTableFvImageOpts());\r
ae0d4fd2 1466 }\r
1467 return jScrollPane;\r
1468 }\r
1469\r
1470 /**\r
1471 * This method initializes jTable3 \r
1472 * \r
1473 * @return javax.swing.JTable \r
1474 */\r
4da2e625 1475 private JTable getJTableFvImageOpts() {\r
1476 if (jTableFvImageOpts == null) {\r
ae0d4fd2 1477 fvOptionTableModel = new DefaultTableModel();\r
1478 fvOptionTableModel.addColumn("Name");\r
1479 fvOptionTableModel.addColumn("Value");\r
4da2e625 1480 jTableFvImageOpts = new JTable(fvOptionTableModel);\r
ae0d4fd2 1481\r
4da2e625 1482 jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1483 jTableFvImageOpts.setRowHeight(20);\r
ae0d4fd2 1484 \r
1485 }\r
4da2e625 1486 return jTableFvImageOpts;\r
ae0d4fd2 1487 }\r
1488\r
1489 /**\r
1490 * This method initializes jButton9 \r
1491 * \r
1492 * @return javax.swing.JButton \r
1493 */\r
4da2e625 1494 private JButton getJButtonUpdateFvImage() {\r
1495 if (jButtonUpdateFvImage == null) {\r
1496 jButtonUpdateFvImage = new JButton();\r
1497 jButtonUpdateFvImage.setPreferredSize(new Dimension(120, 20));\r
1498 jButtonUpdateFvImage.setActionCommand("Update");\r
1499 jButtonUpdateFvImage.setText("Update FV");\r
1500 jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() {\r
ae0d4fd2 1501 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1502 int row = jTableFvInfo.getSelectedRow();\r
1503 if (jTableFvInfo.isEditing()) {\r
1504 jTableFvInfo.getCellEditor().stopCellEditing();\r
ae0d4fd2 1505 }\r
4da2e625 1506 if (jTableFvImageOpts.isEditing()) {\r
1507 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
ae0d4fd2 1508 }\r
1509 \r
1510 //ToDo Check data validity before update\r
1511 String name = fvImageParaTableModel.getValueAt(row, 0) + "";\r
1512 String type = fvImageParaTableModel.getValueAt(row, 1) + "";\r
1513 \r
1514 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1515 getOptionNameValue(lhm);\r
1516 \r
d6d24759 1517 docConsole.setSaved(false);\r
ae0d4fd2 1518 ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
1519 \r
1520 }\r
1521 });\r
1522 }\r
4da2e625 1523 return jButtonUpdateFvImage;\r
44053733 1524 }\r
1525\r
3658f95e 1526 /**\r
1527 * This method initializes jButtonTest \r
1528 * \r
1529 * @return javax.swing.JButton \r
1530 */\r
1531// private JButton getJButtonTest() {\r
1532// if (jButtonTest == null) {\r
1533// jButtonTest = new JButton();\r
1534// jButtonTest.addActionListener(new java.awt.event.ActionListener() {\r
1535// public void actionPerformed(java.awt.event.ActionEvent e) {\r
1536// docConsole.setSaved(false);\r
1537// String[][] includeModules = {{"1", "a"}, {"2", "b"}};\r
1538// ffc.genBuildOptionsUserExtensions("FV_RECOVERY", "FvRecovery.inf", null, includeModules);\r
1539// int i = ffc.getUserExtsIncModCount("FV_RECOVERY");\r
1540// String[][] saa = new String[i][2];\r
1541// ffc.getUserExtsIncMods("FV_RECOVERY", saa);\r
1542// jTextFieldFdf.setText(saa[0][0] + saa[0][1] + saa[1][0] + saa[1][1]);\r
1543// \r
1544// }\r
1545// });\r
1546// }\r
1547// return jButtonTest;\r
1548// }\r
1549\r
1550 /**\r
1551 * This method initializes jPanelFdfN \r
1552 * \r
1553 * @return javax.swing.JPanel \r
1554 */\r
1555 private JPanel getJPanelFdfN() {\r
1556 if (jPanelFdfN == null) {\r
1557 jPanelFdfN = new JPanel();\r
1558 jPanelFdfN.add(getJCheckBoxFdf(), null);\r
1559 jPanelFdfN.add(getJTextFieldFdf(), null);\r
1560 jPanelFdfN.add(getJButtonFdfBrowse(), null);\r
1561 }\r
1562 return jPanelFdfN;\r
1563 }\r
1564\r
1565 /**\r
1566 * This method initializes jPanelFdfS \r
1567 * \r
1568 * @return javax.swing.JPanel \r
1569 */\r
1570 private JPanel getJPanelFdfS() {\r
1571 if (jPanelFdfS == null) {\r
1572 FlowLayout flowLayout4 = new FlowLayout();\r
1573 flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT);\r
1574 jPanelFdfS = new JPanel();\r
1575 jPanelFdfS.setLayout(flowLayout4);\r
1576 jPanelFdfS.add(getJButtonAddFv(), null);\r
1577 jPanelFdfS.add(getJButtonDelFv(), null);\r
1578 jPanelFdfS.add(getJButtonAddFvOptions(), null);\r
1579 }\r
1580 return jPanelFdfS;\r
1581 }\r
1582\r
1583 /**\r
1584 * This method initializes jSplitPaneFdfC \r
1585 * \r
1586 * @return javax.swing.JSplitPane \r
1587 */\r
1588 private JSplitPane getJSplitPaneFdfC() {\r
1589 if (jSplitPaneFdfC == null) {\r
1590 jSplitPaneFdfC = new JSplitPane();\r
1591 jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
1592 jSplitPaneFdfC.setDividerSize(5);\r
1593 jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop());\r
1594 jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom());\r
1595 jSplitPaneFdfC.setDividerLocation(280);\r
1596 }\r
1597 return jSplitPaneFdfC;\r
1598 }\r
1599\r
1600 /**\r
1601 * This method initializes jPanelFdfCTop \r
1602 * \r
1603 * @return javax.swing.JPanel \r
1604 */\r
1605 private JPanel getJPanelFdfCTop() {\r
1606 if (jPanelFdfCTop == null) {\r
1607 jPanelFdfCTop = new JPanel();\r
1608 jPanelFdfCTop.setLayout(new BorderLayout());\r
1609 jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH);\r
1610 jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH);\r
1611 jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER);\r
1612 }\r
1613 return jPanelFdfCTop;\r
1614 }\r
1615\r
1616 /**\r
1617 * This method initializes jPanelFdfCBottom \r
1618 * \r
1619 * @return javax.swing.JPanel \r
1620 */\r
1621 private JPanel getJPanelFdfCBottom() {\r
1622 if (jPanelFdfCBottom == null) {\r
1623 jPanelFdfCBottom = new JPanel();\r
1624 jPanelFdfCBottom.setLayout(new BorderLayout());\r
1625 jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH);\r
1626 jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER);\r
1627 }\r
1628 return jPanelFdfCBottom;\r
1629 }\r
1630\r
1631 /**\r
1632 * This method initializes jPanelFdfCTopN \r
1633 * \r
1634 * @return javax.swing.JPanel \r
1635 */\r
1636 private JPanel getJPanelFdfCTopN() {\r
1637 if (jPanelFdfCTopN == null) {\r
1638 jLabelFvInFdf = new JLabel();\r
1639 jLabelFvInFdf.setText("FVs in Flash Definition File");\r
1640 jPanelFdfCTopN = new JPanel();\r
1641 jPanelFdfCTopN.add(jLabelFvInFdf, null);\r
1642 }\r
1643 return jPanelFdfCTopN;\r
1644 }\r
1645\r
1646 /**\r
1647 * This method initializes jPanelFdfCTopS \r
1648 * \r
1649 * @return javax.swing.JPanel \r
1650 */\r
1651 private JPanel getJPanelFdfCTopS() {\r
1652 if (jPanelFdfCTopS == null) {\r
1653 FlowLayout flowLayout1 = new FlowLayout();\r
1654 flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
1655 jPanelFdfCTopS = new JPanel();\r
1656 jPanelFdfCTopS.setLayout(flowLayout1);\r
1657 jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null);\r
1658 }\r
1659 return jPanelFdfCTopS;\r
1660 }\r
1661\r
1662 /**\r
1663 * This method initializes jPanelFdfCTopC \r
1664 * \r
1665 * @return javax.swing.JPanel \r
1666 */\r
1667 private JPanel getJPanelFdfCTopC() {\r
1668 if (jPanelFdfCTopC == null) {\r
1669 jPanelFdfCTopC = new JPanel();\r
1670 jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null);\r
1671 }\r
1672 return jPanelFdfCTopC;\r
1673 }\r
1674\r
1675 /**\r
1676 * This method initializes jPanelFdfCBottomN \r
1677 * \r
1678 * @return javax.swing.JPanel \r
1679 */\r
1680 private JPanel getJPanelFdfCBottomN() {\r
1681 if (jPanelFdfCBottomN == null) {\r
1682 jLabelFvAdditional = new JLabel();\r
1683 jLabelFvAdditional.setText("Additional FVs");\r
1684 jPanelFdfCBottomN = new JPanel();\r
1685 jPanelFdfCBottomN.add(jLabelFvAdditional, null);\r
1686 }\r
1687 return jPanelFdfCBottomN;\r
1688 }\r
1689\r
1690 /**\r
1691 * This method initializes jPanelFdfCBottomC \r
1692 * \r
1693 * @return javax.swing.JPanel \r
1694 */\r
1695 private JPanel getJPanelFdfCBottomC() {\r
1696 if (jPanelFdfCBottomC == null) {\r
1697 jPanelFdfCBottomC = new JPanel();\r
1698 jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null);\r
1699 }\r
1700 return jPanelFdfCBottomC;\r
1701 }\r
1702\r
1703 /**\r
1704 * This method initializes jScrollPaneFvInFdf \r
1705 * \r
1706 * @return javax.swing.JScrollPane \r
1707 */\r
1708 private JScrollPane getJScrollPaneFvInFdf() {\r
1709 if (jScrollPaneFvInFdf == null) {\r
1710 jScrollPaneFvInFdf = new JScrollPane();\r
1711 jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200));\r
1712 jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf());\r
1713 }\r
1714 return jScrollPaneFvInFdf;\r
1715 }\r
1716\r
1717 /**\r
1718 * This method initializes jTableFvInFdf \r
1719 * \r
1720 * @return javax.swing.JTable \r
1721 */\r
1722 private JTable getJTableFvInFdf() {\r
1723 if (jTableFvInFdf == null) {\r
1724 jTableFvInFdf = new JTable();\r
1725 jTableFvInFdf.setRowHeight(20);\r
1726 jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
1727 jTableFvInFdf.setModel(getFvInFdfTableModel());\r
1728 }\r
1729 return jTableFvInFdf;\r
1730 }\r
1731\r
1732 /**\r
1733 * This method initializes fvInFdfTableModel \r
1734 * \r
1735 * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
1736 */\r
1737 private NonEditableTableModel getFvInFdfTableModel() {\r
1738 if (fvInFdfTableModel == null) {\r
1739 fvInFdfTableModel = new NonEditableTableModel();\r
1740 fvInFdfTableModel.addColumn("FV Name");\r
1741 fvInFdfTableModel.addColumn("Size");\r
1742 fvInFdfTableModel.addColumn("Corresponding File Name");\r
1743 }\r
1744 return fvInFdfTableModel;\r
1745 }\r
1746\r
1747 /**\r
1748 * This method initializes jButtonFvInFdfOptions \r
1749 * \r
1750 * @return javax.swing.JButton \r
1751 */\r
1752 private JButton getJButtonFvInFdfOptions() {\r
1753 if (jButtonFvInFdfOptions == null) {\r
1754 jButtonFvInFdfOptions = new JButton();\r
1755 jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
1756 jButtonFvInFdfOptions.setText("Options");\r
1757 jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() {\r
1758 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1759 int selectedRow = jTableFvInFdf.getSelectedRow();\r
1760 if (selectedRow <= 0) {\r
1761 return;\r
1762 }\r
1763 fvInFdfTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1);\r
1764 jTableFvInFdf.changeSelection(selectedRow - 1, 0, false, false);\r
1765 }\r
1766 });\r
1767 }\r
1768 return jButtonFvInFdfOptions;\r
1769 }\r
1770\r
1771 /**\r
1772 * This method initializes jScrollPaneFvAdditional \r
1773 * \r
1774 * @return javax.swing.JScrollPane \r
1775 */\r
1776 private JScrollPane getJScrollPaneFvAdditional() {\r
1777 if (jScrollPaneFvAdditional == null) {\r
1778 jScrollPaneFvAdditional = new JScrollPane();\r
1779 jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200));\r
1780 jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional());\r
1781 }\r
1782 return jScrollPaneFvAdditional;\r
1783 }\r
1784\r
1785 /**\r
1786 * This method initializes jTableFvAdditional \r
1787 * \r
1788 * @return javax.swing.JTable \r
1789 */\r
1790 private JTable getJTableFvAdditional() {\r
1791 if (jTableFvAdditional == null) {\r
1792 jTableFvAdditional = new JTable();\r
1793 jTableFvAdditional.setRowHeight(20);\r
1794 jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
1795 jTableFvAdditional.setModel(getFvAddtionalTableModel());\r
1796 }\r
1797 return jTableFvAdditional;\r
1798 }\r
1799\r
1800 /**\r
1801 * This method initializes fvAddtionalTableModel \r
1802 * \r
1803 * @return javax.swing.table.DefaultTableModel \r
1804 */\r
1805 private DefaultTableModel getFvAddtionalTableModel() {\r
1806 if (fvAddtionalTableModel == null) {\r
1807 fvAddtionalTableModel = new DefaultTableModel();\r
1808 fvAddtionalTableModel.addColumn("FV Name");\r
1809 fvAddtionalTableModel.addColumn("Size");\r
1810 fvAddtionalTableModel.addColumn("Corresponding File Name");\r
1811 }\r
1812 return fvAddtionalTableModel;\r
1813 }\r
1814\r
1815 /**\r
1816 * This method initializes jButtonAddFv \r
1817 * \r
1818 * @return javax.swing.JButton \r
1819 */\r
1820 private JButton getJButtonAddFv() {\r
1821 if (jButtonAddFv == null) {\r
1822 jButtonAddFv = new JButton();\r
1823 jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20));\r
1824 jButtonAddFv.setText("New");\r
1825 }\r
1826 return jButtonAddFv;\r
1827 }\r
1828\r
1829 /**\r
1830 * This method initializes jButtonDelFv \r
1831 * \r
1832 * @return javax.swing.JButton \r
1833 */\r
1834 private JButton getJButtonDelFv() {\r
1835 if (jButtonDelFv == null) {\r
1836 jButtonDelFv = new JButton();\r
1837 jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20));\r
1838 jButtonDelFv.setText("Delete");\r
1839 }\r
1840 return jButtonDelFv;\r
1841 }\r
1842\r
1843 /**\r
1844 * This method initializes jButtonAddFvOptions \r
1845 * \r
1846 * @return javax.swing.JButton \r
1847 */\r
1848 private JButton getJButtonAddFvOptions() {\r
1849 if (jButtonAddFvOptions == null) {\r
1850 jButtonAddFvOptions = new JButton();\r
1851 jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
1852 jButtonAddFvOptions.setText("Options");\r
1853 }\r
1854 return jButtonAddFvOptions;\r
1855 }\r
1856\r
1857 \r
1858\r
1859 /**\r
1860 * This method initializes nonEditableTableModel \r
1861 * \r
1862 * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
1863 */\r
1864 private NonEditableTableModel getNonEditableTableModel() {\r
1865 if (nonEditableTableModel == null) {\r
1866 nonEditableTableModel = new NonEditableTableModel();\r
1867 }\r
1868 return nonEditableTableModel;\r
1869 }\r
1870\r
1871 \r
a13899c5 1872 /**\r
1873 * @param args\r
1874 */\r
1875 public static void main(String[] args) {\r
1876 // TODO Auto-generated method stub\r
1877 new FpdFlash().setVisible(true);\r
1878 }\r
1879\r
1880 /**\r
1881 * This method initializes this\r
1882 * \r
1883 * @return void\r
1884 */\r
1885 private void initialize() {\r
1886 this.setSize(518, 650);\r
1887 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
1888 this.setContentPane(getJContentPane());\r
1889 this.setTitle("FPD Flash Definitions");\r
44053733 1890 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1891 public void internalFrameDeactivated(InternalFrameEvent e){\r
4da2e625 1892 if (jTableFvProp.isEditing()) {\r
1893 jTableFvProp.getCellEditor().stopCellEditing();\r
44053733 1894 }\r
4da2e625 1895 if (jTableFvImageNames.isEditing()) {\r
1896 jTableFvImageNames.getCellEditor().stopCellEditing();\r
44053733 1897 }\r
4da2e625 1898 if (jTableFvInfo.isEditing()) {\r
1899 jTableFvInfo.getCellEditor().stopCellEditing();\r
44053733 1900 }\r
1901 }\r
1902 });\r
a13899c5 1903 }\r
1904\r
1905 private void init(FpdFileContents ffc) {\r
1906 if (ffc.getFvImagesFvImageCount() == 0) {\r
1907 return;\r
1908 }\r
1909 String[][] saa = new String[ffc.getFvImagesFvImageCount()][2];\r
ae0d4fd2 1910 ffc.getFvImagesFvImages(saa);\r
ae0d4fd2 1911 \r
a13899c5 1912 int i = 0;\r
a13899c5 1913 while (i < saa.length) {\r
a13899c5 1914 \r
ae0d4fd2 1915 fvImageParaTableModel.addRow(saa[i]);\r
a13899c5 1916 ++i;\r
1917 }\r
908b1c05 1918 \r
3658f95e 1919 saa = new String[ffc.getFvImagesNameValueCount()][2];\r
1920 ffc.getFvImagesNameValues(saa);\r
1921 for (int m = 0; m < saa.length; ++m) {\r
1922 fvPropertyTableModel.addRow(saa[m]);\r
1923 }\r
1924 \r
1925 jTextFieldFdf.setText("");\r
1926 String fdfFile = ffc.getFlashDefinitionFile();\r
1927 if (fdfFile != null) {\r
1928 jTextFieldFdf.setText(fdfFile);\r
1929 }\r
1930 \r
1931 String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile;\r
1932 Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
1933 getFvInfoFromFdf(fdfPath, vFvInfo);\r
1934 getFvInFdfTableModel().setRowCount(0);\r
1935 for (int j = 0; j < vFvInfo.size(); ++j) {\r
1936 FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
1937 String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
1938 getFvInFdfTableModel().addRow(row);\r
1939 }\r
1940 \r
1941\r
1942 for (int k = 0; k < vFvInfo.size(); ++k) {\r
1943 FvInfoFromFdf fvInfo = vFvInfo.get(k);\r
1944 getJTabbedPane().addTab(fvInfo.getFvName(), null, getJPanelModOrder(), null);\r
1945\r
1946 }\r
a13899c5 1947 }\r
1948 \r
ae0d4fd2 1949 private void getOptionNameValue(Map<String, String> m){\r
4da2e625 1950 for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) {\r
ae0d4fd2 1951 m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
a13899c5 1952 }\r
1953 }\r
1954 /**\r
1955 * This method initializes jContentPane\r
1956 * \r
1957 * @return javax.swing.JPanel\r
1958 */\r
1959 private JPanel getJContentPane() {\r
1960 if (jContentPane == null) {\r
1961 jContentPane = new JPanel();\r
1962 jContentPane.setLayout(new BorderLayout());\r
4da2e625 1963 jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
1964 jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
1965 jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
1966 jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
a13899c5 1967 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1968 }\r
1969 return jContentPane;\r
1970 }\r
3658f95e 1971 \r
1972 private void getFvInfoFromFdf(String fdfPath, Vector<FvInfoFromFdf> vFvInfo) {\r
1973 File fdf = new File(fdfPath);\r
1974 if (!fdf.exists()) {\r
1975 return;\r
1976 }\r
1977 int lines = 0;\r
1978\r
1979 try {\r
1980 FileReader reader = new FileReader(fdf);\r
1981 BufferedReader in = new BufferedReader(reader);\r
1982 String str;\r
1983\r
1984 while ((str = in.readLine()) != null) {\r
1985 ++lines;\r
1986 str = str.trim();\r
1987 //\r
1988 // skip empty line, comment (start with //) \r
1989 //\r
1990 if (str.length() == 0 || str.startsWith("//")) {\r
1991 continue;\r
1992 }\r
1993 //\r
1994 // dig into Region {} section, create FvInfoFromFdf object for it.\r
1995 //\r
1996 if (str.startsWith("Region") && str.endsWith("{")) {\r
1997 FvInfoFromFdf fvInfo = new FvInfoFromFdf();\r
1998 boolean nameFound = false;\r
1999 boolean sizeFound = false;\r
2000 while ((str = in.readLine()) != null) {\r
2001 ++lines;\r
2002 str = str.trim();\r
2003 //\r
2004 // skip empty line, comment (start with //) \r
2005 //\r
2006 if (str.length() == 0 || str.startsWith("//")) {\r
2007 continue;\r
2008 }\r
2009 \r
2010 if (str.startsWith("Name")) {\r
2011 int firstQuote = str.indexOf("\"");\r
2012 int lastQuote = str.lastIndexOf("\"");\r
2013 fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote));\r
2014 nameFound = true;\r
2015 }\r
2016 \r
2017 if (str.startsWith("Size")) {\r
2018 int equalIndex = str.indexOf("=");\r
2019 int commaIndex = str.indexOf(",");\r
2020 fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim());\r
2021 sizeFound = true;\r
2022 }\r
2023 \r
2024 if (nameFound && sizeFound) {\r
2025 break;\r
2026 }\r
2027 }\r
2028 \r
2029 vFvInfo.add(fvInfo);\r
2030 }\r
2031 //\r
2032 // dig into File {} section, supply file name information to existing FvInfoFromFdf object.\r
2033 //\r
2034 if (str.startsWith("File")) {\r
2035 boolean fileNameFound = false;\r
2036 boolean fvFound = false;\r
2037 String fileName = "";\r
2038 String fvName = "";\r
2039 while ((str = in.readLine()) != null) {\r
2040 ++lines;\r
2041 str = str.trim();\r
2042 //\r
2043 // skip empty line, comment (start with //) \r
2044 //\r
2045 if (str.length() == 0 || str.startsWith("//")) {\r
2046 continue;\r
2047 }\r
2048 \r
2049 if (str.startsWith("Name")) {\r
2050 int firstQuote = str.indexOf("\"");\r
2051 int lastQuote = str.lastIndexOf("\"");\r
2052 fileName = str.substring(firstQuote + 1, lastQuote);\r
2053 fileNameFound = true;\r
2054 }\r
2055 \r
2056 if (str.startsWith("Region")) {\r
2057 int firstQuote = str.indexOf("\"");\r
2058 int lastQuote = str.lastIndexOf("\"");\r
2059 fvName = str.substring(firstQuote + 1, lastQuote);\r
2060 fvFound = true;\r
2061 }\r
2062 \r
2063 if (fileNameFound && fvFound) {\r
2064 break;\r
2065 }\r
2066 }\r
2067 \r
2068 for (int i = 0; i <vFvInfo.size(); ++i) {\r
2069 if (vFvInfo.get(i).getFvName().equals(fvName)) {\r
2070 vFvInfo.get(i).setEfiFileName(fileName);\r
2071 }\r
2072 }\r
2073 }\r
2074 \r
2075 }\r
2076 } catch (Exception e) {\r
2077 \r
2078 }\r
2079\r
2080 }\r
2081 \r
2082 \r
a13899c5 2083\r
2084} // @jve:decl-index=0:visual-constraint="10,10"\r
2085\r
2086class ImageParaTableModel extends DefaultTableModel {\r
2087\r
44053733 2088 private static final long serialVersionUID = 1L;\r
44053733 2089 \r
2090 public boolean isCellEditable(int row, int col) {\r
2091 if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
2092 return false;\r
2093 }\r
2094 return true;\r
a13899c5 2095 }\r
2096}\r
ae0d4fd2 2097\r
3658f95e 2098class FvInfoFromFdf {\r
2099 private String fvName;\r
2100 private String size;\r
2101 private String efiFileName;\r
2102 \r
2103 public FvInfoFromFdf () {\r
2104 fvName = "";\r
2105 size = "";\r
2106 efiFileName = "";\r
2107 }\r
2108 public FvInfoFromFdf (String f, String s, String e) {\r
2109 this();\r
2110 fvName = f;\r
2111 size = s;\r
2112 efiFileName = e;\r
2113 }\r
2114 public String getEfiFileName() {\r
2115 return efiFileName;\r
2116 }\r
2117 public void setEfiFileName(String efiFileName) {\r
2118 this.efiFileName = efiFileName;\r
2119 }\r
2120 public String getFvName() {\r
2121 return fvName;\r
2122 }\r
2123 public void setFvName(String fvName) {\r
2124 this.fvName = fvName;\r
2125 }\r
2126 public String getSize() {\r
2127 return size;\r
2128 }\r
2129 public void setSize(String size) {\r
2130 this.size = size;\r
2131 }\r
2132 \r
2133}\r