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