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