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