let critic prepared
[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
eb8ea829 78 private final int startIndexOfDynamicTab = 2;\r
a13899c5 79 static JFrame frame;\r
80 private JPanel jContentPane = null;\r
4da2e625 81 private JPanel jPanelContentEast = null;\r
82 private JPanel jPanelContentSouth = null;\r
83 private JPanel jPanelContentWest = null;\r
84 private JPanel jPanelContentNorth = null;\r
a13899c5 85 private JTabbedPane jTabbedPane = null;\r
86 private JPanel jPanelFvImages = null;\r
a13899c5 87 private JPanel jPanelFvImageN = null;\r
a13899c5 88 private JPanel jPanelFvImageS = null;\r
4da2e625 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
a13899c5 99 private DefaultTableModel fvPropertyTableModel = null;\r
100 private DefaultTableModel fvImageNameTableModel = null;\r
101 private ImageParaTableModel fvImageParaTableModel = null;\r
ae0d4fd2 102 private DefaultTableModel fvOptionTableModel = null;\r
a13899c5 103 private JPanel jPanelFvImageC = null;\r
4da2e625 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
d6d24759 121 private OpeningPlatformType docConsole = null;\r
a13899c5 122 private FpdFileContents ffc = null;\r
4da2e625 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
ae0d4fd2 134 private JScrollPane jScrollPane = null;\r
4da2e625 135 private JTable jTableFvImageOpts = null;\r
136 private JButton jButtonUpdateFvImage = null;\r
3658f95e 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
eb8ea829 159 private int tabIndexForFv = -1;\r
160 private int selectedRowInFvAdditionalTable = -1;\r
161 private String oldFvName = null;\r
3658f95e 162 \r
3658f95e 163 \r
a13899c5 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
d6d24759 179 public FpdFlash(OpeningPlatformType opt) {\r
180 this(opt.getXmlFpd());\r
181 docConsole = opt;\r
182 }\r
183 \r
a13899c5 184 /**\r
185 * This method initializes jPanel \r
186 * \r
187 * @return javax.swing.JPanel \r
188 */\r
4da2e625 189 private JPanel getJPanelContentEast() {\r
190 if (jPanelContentEast == null) {\r
191 jPanelContentEast = new JPanel();\r
a13899c5 192 }\r
4da2e625 193 return jPanelContentEast;\r
a13899c5 194 }\r
195\r
196 /**\r
197 * This method initializes jPanel1 \r
198 * \r
199 * @return javax.swing.JPanel \r
200 */\r
4da2e625 201 private JPanel getJPanelContentSouth() {\r
202 if (jPanelContentSouth == null) {\r
a13899c5 203 FlowLayout flowLayout = new FlowLayout();\r
204 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
205 flowLayout.setHgap(15);\r
4da2e625 206 jPanelContentSouth = new JPanel();\r
207 jPanelContentSouth.setLayout(flowLayout);\r
208 jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
a13899c5 209 }\r
4da2e625 210 return jPanelContentSouth;\r
a13899c5 211 }\r
212\r
213 /**\r
214 * This method initializes jPanel2 \r
215 * \r
216 * @return javax.swing.JPanel \r
217 */\r
4da2e625 218 private JPanel getJPanelContentWest() {\r
219 if (jPanelContentWest == null) {\r
220 jPanelContentWest = new JPanel();\r
a13899c5 221 }\r
4da2e625 222 return jPanelContentWest;\r
a13899c5 223 }\r
224\r
225 /**\r
226 * This method initializes jPanel3 \r
227 * \r
228 * @return javax.swing.JPanel \r
229 */\r
4da2e625 230 private JPanel getJPanelContentNorth() {\r
231 if (jPanelContentNorth == null) {\r
232 jPanelContentNorth = new JPanel();\r
a13899c5 233 }\r
4da2e625 234 return jPanelContentNorth;\r
a13899c5 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
3658f95e 245 jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
61919f8c 246 jTabbedPane.addTab("Advanced", null, getJPanelFvImages(), null);\r
a13899c5 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
eb8ea829 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
a13899c5 289 \r
290 }\r
291 return jPanelFvImages;\r
292 }\r
293\r
a13899c5 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
4da2e625 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
a13899c5 309 FlowLayout flowLayout2 = new FlowLayout();\r
3658f95e 310 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
a13899c5 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
4da2e625 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
a13899c5 323 }\r
324 return jPanelFvImageN;\r
325 }\r
326\r
a13899c5 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
44053733 337 jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));\r
a13899c5 338 jPanelFvImageS.setLayout(gridLayout2);\r
4da2e625 339 jPanelFvImageS.add(getJScrollPaneFvInfo(), null);\r
a13899c5 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
4da2e625 350 private JCheckBox getJCheckBoxFvProperty() {\r
351 if (jCheckBoxFvProperty == null) {\r
352 jCheckBoxFvProperty = new JCheckBox();\r
3658f95e 353 jCheckBoxFvProperty.setText("Global FV Variables");\r
4da2e625 354 jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
a13899c5 355\r
356 public void itemStateChanged(ItemEvent arg0) {\r
357 // TODO Auto-generated method stub\r
4da2e625 358 boolean seleted = jCheckBoxFvProperty.isSelected();\r
a13899c5 359 \r
4da2e625 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
a13899c5 367 \r
368 \r
369 }\r
370 \r
371 });\r
372 }\r
4da2e625 373 return jCheckBoxFvProperty;\r
a13899c5 374 }\r
375\r
376\r
377 /**\r
378 * This method initializes jTextField \r
379 * \r
380 * @return javax.swing.JTextField \r
381 */\r
4da2e625 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
a13899c5 387 }\r
4da2e625 388 return jTextFieldFvPropName;\r
a13899c5 389 }\r
390\r
391\r
392 /**\r
393 * This method initializes jTextField1 \r
394 * \r
395 * @return javax.swing.JTextField \r
396 */\r
4da2e625 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
a13899c5 402 }\r
4da2e625 403 return jTextFieldFvPropValue;\r
a13899c5 404 }\r
405\r
406\r
407 /**\r
408 * This method initializes jButton \r
409 * \r
410 * @return javax.swing.JButton \r
411 */\r
4da2e625 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
44053733 419 /**\r
420 * \r
421 */\r
422 private static final long serialVersionUID = 1L;\r
423\r
a13899c5 424 public void actionPerformed(ActionEvent e) {\r
4da2e625 425 if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){\r
426 String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; \r
a13899c5 427 fvPropertyTableModel.addRow(row);\r
d6d24759 428 docConsole.setSaved(false);\r
a13899c5 429 ffc.genFvImagesNameValue(row[0], row[1]);\r
430 }\r
431 }\r
432 });\r
433 }\r
4da2e625 434 return jButtonFvPropAdd;\r
a13899c5 435 }\r
436\r
437\r
438 /**\r
439 * This method initializes jScrollPane1 \r
440 * \r
441 * @return javax.swing.JScrollPane \r
442 */\r
4da2e625 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
a13899c5 448 }\r
4da2e625 449 return jScrollPaneFvProp;\r
a13899c5 450 }\r
451\r
452\r
453 /**\r
454 * This method initializes jTable \r
455 * \r
456 * @return javax.swing.JTable \r
457 */\r
4da2e625 458 private JTable getJTableFvProp() {\r
459 if (jTableFvProp == null) {\r
a13899c5 460 fvPropertyTableModel = new DefaultTableModel();\r
4da2e625 461 jTableFvProp = new JTable(fvPropertyTableModel);\r
a13899c5 462 fvPropertyTableModel.addColumn("Name");\r
463 fvPropertyTableModel.addColumn("Value");\r
4da2e625 464 jTableFvProp.setRowHeight(20);\r
465 jTableFvProp.setEnabled(false);\r
a13899c5 466 \r
4da2e625 467 jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
468 jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 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
4da2e625 483 jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
a13899c5 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
d6d24759 492 docConsole.setSaved(false);\r
a13899c5 493 ffc.updateFvImagesNameValue(row, name, value);\r
494 }\r
495 }\r
496 });\r
497 }\r
4da2e625 498 return jTableFvProp;\r
a13899c5 499 }\r
500\r
501\r
502 /**\r
503 * This method initializes jPanel4 \r
504 * \r
505 * @return javax.swing.JPanel \r
506 */\r
4da2e625 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
a13899c5 511 \r
4da2e625 512 jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
513 jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
a13899c5 514 }\r
4da2e625 515 return jPanelFvPropButtonGroup;\r
a13899c5 516 }\r
517\r
518\r
519 /**\r
520 * This method initializes jButton1 \r
521 * \r
522 * @return javax.swing.JButton \r
523 */\r
4da2e625 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
44053733 531 /**\r
532 * \r
533 */\r
534 private static final long serialVersionUID = 1L;\r
535\r
a13899c5 536 public void actionPerformed(ActionEvent e) {\r
4da2e625 537 if (jTableFvProp.getSelectedRow() >= 0){\r
538 fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
d6d24759 539 docConsole.setSaved(false);\r
4da2e625 540 ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
a13899c5 541 }\r
542 }\r
543 });\r
544 }\r
4da2e625 545 return jButtonFvPropDel;\r
a13899c5 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
4da2e625 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
a13899c5 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
4da2e625 573 jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
a13899c5 574 \r
4da2e625 575 jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
a13899c5 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
4da2e625 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
a13899c5 593\r
594 public void itemStateChanged(ItemEvent arg0) {\r
595 // TODO Auto-generated method stub\r
4da2e625 596 boolean seleted = jCheckBoxFvImagePara.isSelected();\r
a13899c5 597 \r
4da2e625 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
a13899c5 603 \r
4da2e625 604 jTableFvImageNames.setEnabled(seleted);\r
605 jButtonFvParaAdd.setEnabled(seleted);\r
606 jButtonFvParaDel.setEnabled(seleted);\r
a13899c5 607 \r
608 \r
609 }\r
610 \r
611 });\r
612 }\r
4da2e625 613 return jCheckBoxFvImagePara;\r
a13899c5 614 }\r
615\r
616\r
617 /**\r
618 * This method initializes jComboBox \r
619 * \r
620 * @return javax.swing.JComboBox \r
621 */\r
4da2e625 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
a13899c5 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
4da2e625 640 return jComboBoxFvParaType;\r
a13899c5 641 }\r
642\r
643\r
644 /**\r
645 * This method initializes jTextField2 \r
646 * \r
647 * @return javax.swing.JTextField \r
648 */\r
4da2e625 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
a13899c5 654 }\r
4da2e625 655 return jTextFieldFvParaName;\r
a13899c5 656 }\r
657\r
658\r
659 /**\r
660 * This method initializes jButton2 \r
661 * \r
662 * @return javax.swing.JButton \r
663 */\r
4da2e625 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
44053733 671 /**\r
672 * \r
673 */\r
674 private static final long serialVersionUID = 1L;\r
675\r
a13899c5 676 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 677 if (jTextFieldFvParaName.getText().length() > 0){\r
678 String[] row = {jTextFieldFvParaName.getText()}; \r
a13899c5 679 fvImageNameTableModel.addRow(row);\r
680 }\r
681 }\r
682 });\r
683 }\r
4da2e625 684 return jButtonFvParaAdd;\r
a13899c5 685 }\r
686\r
687\r
688 /**\r
689 * This method initializes jScrollPane2 \r
690 * \r
691 * @return javax.swing.JScrollPane \r
692 */\r
4da2e625 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
a13899c5 698 }\r
4da2e625 699 return jScrollPaneFvImageNames;\r
a13899c5 700 }\r
701\r
702\r
703 /**\r
704 * This method initializes jTable1 \r
705 * \r
706 * @return javax.swing.JTable \r
707 */\r
4da2e625 708 private JTable getJTableFvImageNames() {\r
709 if (jTableFvImageNames == null) {\r
a13899c5 710 fvImageNameTableModel = new DefaultTableModel();\r
4da2e625 711 jTableFvImageNames = new JTable(fvImageNameTableModel);\r
712 jTableFvImageNames.setEnabled(false);\r
a13899c5 713 fvImageNameTableModel.addColumn("FV Image Name");\r
714 }\r
4da2e625 715 return jTableFvImageNames;\r
a13899c5 716 }\r
717\r
718\r
719 /**\r
720 * This method initializes jButton3 \r
721 * \r
722 * @return javax.swing.JButton \r
723 */\r
4da2e625 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
44053733 731 /**\r
732 * \r
733 */\r
734 private static final long serialVersionUID = 1L;\r
735\r
a13899c5 736 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 737 if (jTableFvImageNames.getSelectedRow() >= 0){\r
a13899c5 738 \r
4da2e625 739 fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
a13899c5 740 }\r
741 }\r
742 });\r
743 }\r
4da2e625 744 return jButtonFvParaDel;\r
a13899c5 745 }\r
746\r
747\r
748\r
749 \r
4da2e625 750 private JPanel getJPanelFvImageOpts() {\r
a13899c5 751 \r
752\r
4da2e625 753 if (jPanelFvImageOpts == null) {\r
a13899c5 754 //ToDo add ButtonGroup for RadioButtons\r
4da2e625 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
a13899c5 765 \r
4da2e625 766 jPanelFvImageOpts.setLayout(new FlowLayout());\r
a13899c5 767 \r
4da2e625 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
a13899c5 779 \r
780 \r
781 \r
782\r
783 \r
784 }\r
4da2e625 785 return jPanelFvImageOpts;\r
a13899c5 786 }\r
787\r
788\r
789 /**\r
790 * This method initializes jButton4 \r
791 * \r
792 * @return javax.swing.JButton \r
793 */\r
4da2e625 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
a13899c5 798// jButton4.setEnabled(false);\r
4da2e625 799 jButtonAddFvImage.setText("Add FV Image");\r
800 jButtonAddFvImage.addActionListener(new AbstractAction() {\r
44053733 801 /**\r
802 * \r
803 */\r
804 private static final long serialVersionUID = 1L;\r
805\r
a13899c5 806 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 807 if (jTableFvInfo.isEditing()) {\r
808 jTableFvInfo.getCellEditor().stopCellEditing();\r
ae0d4fd2 809 }\r
4da2e625 810 if (jTableFvImageOpts.isEditing()) {\r
811 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
ae0d4fd2 812 }\r
4da2e625 813 if (jTableFvImageNames.getRowCount()== 0){\r
a13899c5 814 return;\r
815 }\r
816 String imageName = " ";\r
4da2e625 817 for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){\r
818 imageName += (String)jTableFvImageNames.getValueAt(i, 0);\r
a13899c5 819 imageName += " ";\r
820 }\r
821 imageName = imageName.trim();\r
822 \r
4da2e625 823 if (!jCheckBoxFvImageOpts.isSelected() && jComboBoxFvParaType.getSelectedIndex() != 0){\r
a13899c5 824 return;\r
825 \r
826 }\r
827 \r
44053733 828 LinkedHashMap<String, String> m = null;\r
4da2e625 829 if (jCheckBoxFvImageOpts.isSelected()) {\r
44053733 830 m = new LinkedHashMap<String, String>();\r
ae0d4fd2 831 getOptionNameValue(m);\r
44053733 832 }\r
4da2e625 833 ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
d6d24759 834 docConsole.setSaved(false);\r
4da2e625 835 Object[] row = {imageName, jComboBoxFvParaType.getSelectedItem()};\r
ae0d4fd2 836 fvImageParaTableModel.addRow(row); \r
a13899c5 837 }\r
838 });\r
839 }\r
4da2e625 840 return jButtonAddFvImage;\r
a13899c5 841 }\r
842\r
843\r
844 /**\r
845 * This method initializes jScrollPane3 \r
846 * \r
847 * @return javax.swing.JScrollPane \r
848 */\r
4da2e625 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
a13899c5 854 }\r
4da2e625 855 return jScrollPaneFvInfo;\r
a13899c5 856 }\r
857\r
858\r
859 /**\r
860 * This method initializes jTable2 \r
861 * \r
862 * @return javax.swing.JTable \r
863 */\r
4da2e625 864 private JTable getJTableFvInfo() {\r
865 if (jTableFvInfo == null) {\r
a13899c5 866 fvImageParaTableModel = new ImageParaTableModel();\r
4da2e625 867 jTableFvInfo = new JTable(fvImageParaTableModel);\r
a13899c5 868 fvImageParaTableModel.addColumn("FvImageNames");\r
869 fvImageParaTableModel.addColumn("Type");\r
ae0d4fd2 870 \r
a13899c5 871 \r
4da2e625 872 TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1);\r
a13899c5 873 JComboBox cb = new JComboBox();\r
61919f8c 874 cb.addItem("ImageName");\r
a13899c5 875 cb.addItem("Attributes");\r
876 cb.addItem("Options");\r
877 cb.addItem("Components");\r
878 typeCol.setCellEditor(new DefaultCellEditor(cb));\r
879 \r
4da2e625 880 jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
881 jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 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
ae0d4fd2 891 int selectedRow = lsm.getMinSelectionIndex();\r
61919f8c 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
ae0d4fd2 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
a13899c5 913 }\r
ae0d4fd2 914 \r
a13899c5 915 }\r
916 }\r
917 });\r
ae0d4fd2 918 \r
919 \r
a13899c5 920 }\r
4da2e625 921 return jTableFvInfo;\r
a13899c5 922 }\r
923\r
924\r
925 /**\r
926 * This method initializes jButton6 \r
927 * \r
928 * @return javax.swing.JButton \r
929 */\r
4da2e625 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
a13899c5 934// jButton6.setEnabled(false);\r
4da2e625 935 jButtonDelFvImage.setText("Delete Row");\r
936 jButtonDelFvImage.addActionListener(new AbstractAction() {\r
44053733 937 /**\r
938 * \r
939 */\r
940 private static final long serialVersionUID = 1L;\r
a13899c5 941\r
942 public void actionPerformed(ActionEvent arg0) {\r
943 // TODO Auto-generated method stub\r
4da2e625 944 if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
945 ffc.removeFvImagesFvImage(jTableFvInfo.getSelectedRow());\r
946 fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
d6d24759 947 docConsole.setSaved(false);\r
a13899c5 948 }\r
949 }\r
950 \r
951 });\r
952 }\r
4da2e625 953 return jButtonDelFvImage;\r
a13899c5 954 }\r
955\r
956\r
957 /**\r
958 * This method initializes jCheckBox3 \r
959 * \r
960 * @return javax.swing.JCheckBox \r
961 */\r
4da2e625 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
a13899c5 967\r
968 public void itemStateChanged(ItemEvent arg0) {\r
969 // TODO Auto-generated method stub\r
1800d80f 970// boolean selected = jCheckBox3.isSelected();\r
a13899c5 971 \r
4da2e625 972 if (!jCheckBoxFvImagePara.isSelected() || jComboBoxFvParaType.getSelectedIndex() == 0) {\r
a13899c5 973 return;\r
974 }\r
975 \r
a13899c5 976 }\r
977 \r
978 });\r
979 }\r
4da2e625 980 return jCheckBoxFvImageOpts;\r
a13899c5 981 }\r
982\r
983\r
a13899c5 984 /**\r
985 * This method initializes jPanel6 \r
986 * \r
987 * @return javax.swing.JPanel \r
988 */\r
4da2e625 989 private JPanel getJPanelFvImagePara() {\r
990 if (jPanelFvImagePara == null) {\r
a13899c5 991 StarLabel starLabel = new StarLabel();\r
992 starLabel.setVisible(false);\r
4da2e625 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
a13899c5 1006 }\r
4da2e625 1007 return jPanelFvImagePara;\r
a13899c5 1008 }\r
1009\r
1010 /**\r
1011 * This method initializes jPanel7 \r
1012 * \r
1013 * @return javax.swing.JPanel \r
1014 */\r
4da2e625 1015 private JPanel getJPanelFdf() {\r
1016 if (jPanelFdf == null) {\r
4da2e625 1017 jPanelFdf = new JPanel();\r
3658f95e 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
2b70a636 1023 jPanelFdf.addComponentListener(new ComponentAdapter(){\r
1024 public void componentShown(ComponentEvent e) {\r
3658f95e 1025// if (ffc.getFlashDefinitionFile() != null) {\r
1026// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
2b70a636 1027// initFvInFdfTable(System.getenv("WORKSPACE") + File.separator + jTextFieldFdf.getText());\r
1028// \r
3658f95e 1029// }\r
2b70a636 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
a13899c5 1037 }\r
4da2e625 1038 return jPanelFdf;\r
a13899c5 1039 }\r
1040\r
1041 /**\r
1042 * This method initializes jCheckBox \r
1043 * \r
1044 * @return javax.swing.JCheckBox \r
1045 */\r
4da2e625 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
a13899c5 1051\r
1052 public void itemStateChanged(ItemEvent arg0) {\r
1053 // TODO Auto-generated method stub\r
4da2e625 1054 if (jCheckBoxFdf.isSelected()){\r
1055 jTextFieldFdf.setEnabled(true);\r
1056 jButtonFdfBrowse.setEnabled(true);\r
a13899c5 1057 }\r
1058 else {\r
1059 \r
4da2e625 1060 jTextFieldFdf.setEnabled(false);\r
1061 jButtonFdfBrowse.setEnabled(false);\r
a13899c5 1062 }\r
1063 }\r
1064 });\r
1065 }\r
4da2e625 1066 return jCheckBoxFdf;\r
a13899c5 1067 }\r
1068\r
1069 /**\r
1070 * This method initializes jTextField3 \r
1071 * \r
1072 * @return javax.swing.JTextField \r
1073 */\r
4da2e625 1074 private JTextField getJTextFieldFdf() {\r
1075 if (jTextFieldFdf == null) {\r
1076 jTextFieldFdf = new JTextField();\r
1077 jTextFieldFdf.setEnabled(false);\r
2b70a636 1078 jTextFieldFdf.setEditable(false);\r
4da2e625 1079 jTextFieldFdf.setPreferredSize(new Dimension(300, 20));\r
1080 jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() {\r
908b1c05 1081 public void focusLost(java.awt.event.FocusEvent e) {\r
4da2e625 1082 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
908b1c05 1083 }\r
1084 });\r
a13899c5 1085 }\r
4da2e625 1086 return jTextFieldFdf;\r
a13899c5 1087 }\r
1088\r
1089 /**\r
1090 * This method initializes jButton5 \r
1091 * \r
1092 * @return javax.swing.JButton \r
1093 */\r
4da2e625 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
44053733 1101 /**\r
1102 * \r
1103 */\r
1104 private static final long serialVersionUID = 1L;\r
1105\r
a13899c5 1106 public void actionPerformed(ActionEvent e) {\r
1107 // TODO Auto-generated method stub\r
908b1c05 1108 String wsDir = System.getenv("WORKSPACE");\r
1109 JFileChooser chooser = new JFileChooser(wsDir);\r
a13899c5 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
908b1c05 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
4da2e625 1121 jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
3658f95e 1122 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1123 docConsole.setSaved(false);\r
2b70a636 1124 initFvInFdfTable(filePath);\r
a13899c5 1125 }\r
1126 }\r
1127 \r
1128 });\r
1129 }\r
4da2e625 1130 return jButtonFdfBrowse;\r
a13899c5 1131 }\r
eb8ea829 1132 \r
1133 private void initFvAdditionalTable() {\r
1134 \r
1135 }\r
a13899c5 1136\r
2b70a636 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
eb8ea829 1156 int index = jTabbedPane.indexOfTab(fvName);\r
1157 if (index >= startIndexOfDynamicTab) {\r
1158 return;\r
2b70a636 1159 }\r
1160 jTabbedPane.addTab(fvName, null, new ModuleOrderPane(fvName, outputFile), null);\r
1161 }\r
44053733 1162 /**\r
ae0d4fd2 1163 * This method initializes jTextField4 \r
44053733 1164 * \r
ae0d4fd2 1165 * @return javax.swing.JTextField \r
44053733 1166 */\r
4da2e625 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
44053733 1172 }\r
4da2e625 1173 return jTextFieldFvImageOptName;\r
ae0d4fd2 1174 }\r
1175\r
1176 /**\r
1177 * This method initializes jTextField5 \r
1178 * \r
1179 * @return javax.swing.JTextField \r
1180 */\r
4da2e625 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
ae0d4fd2 1186 }\r
4da2e625 1187 return jTextFieldFvImageOptValue;\r
ae0d4fd2 1188 }\r
1189\r
1190 /**\r
1191 * This method initializes jPanel8 \r
1192 * \r
1193 * @return javax.swing.JPanel \r
1194 */\r
4da2e625 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
ae0d4fd2 1201 }\r
4da2e625 1202 return jPanelFvImageOptsButtonGroup;\r
ae0d4fd2 1203 }\r
1204\r
1205 /**\r
1206 * This method initializes jButton7 \r
1207 * \r
1208 * @return javax.swing.JButton \r
1209 */\r
4da2e625 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
ae0d4fd2 1217 /**\r
1218 * \r
1219 */\r
1220 private static final long serialVersionUID = 1L;\r
1221\r
1222 public void actionPerformed(ActionEvent e) {\r
4da2e625 1223 if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
1224 String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()}; \r
ae0d4fd2 1225 fvOptionTableModel.addRow(row);\r
1226 }\r
1227 }\r
1228 });\r
1229 }\r
4da2e625 1230 return jButtonFvImageOptAdd;\r
ae0d4fd2 1231 }\r
1232\r
1233 /**\r
1234 * This method initializes jButton8 \r
1235 * \r
1236 * @return javax.swing.JButton \r
1237 */\r
4da2e625 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
ae0d4fd2 1245 /**\r
1246 * \r
1247 */\r
1248 private static final long serialVersionUID = 1L;\r
1249\r
1250 public void actionPerformed(ActionEvent e) {\r
4da2e625 1251 if (jTableFvImageOpts.getSelectedRow() >= 0){\r
1252 fvOptionTableModel.removeRow(jTableFvProp.getSelectedRow());\r
ae0d4fd2 1253 }\r
1254 }\r
1255 });\r
1256 }\r
4da2e625 1257 return jButtonFvImageOptDel;\r
ae0d4fd2 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
4da2e625 1269 jScrollPane.setViewportView(getJTableFvImageOpts());\r
ae0d4fd2 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
4da2e625 1279 private JTable getJTableFvImageOpts() {\r
1280 if (jTableFvImageOpts == null) {\r
ae0d4fd2 1281 fvOptionTableModel = new DefaultTableModel();\r
1282 fvOptionTableModel.addColumn("Name");\r
1283 fvOptionTableModel.addColumn("Value");\r
4da2e625 1284 jTableFvImageOpts = new JTable(fvOptionTableModel);\r
ae0d4fd2 1285\r
4da2e625 1286 jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1287 jTableFvImageOpts.setRowHeight(20);\r
ae0d4fd2 1288 \r
1289 }\r
4da2e625 1290 return jTableFvImageOpts;\r
ae0d4fd2 1291 }\r
1292\r
1293 /**\r
1294 * This method initializes jButton9 \r
1295 * \r
1296 * @return javax.swing.JButton \r
1297 */\r
4da2e625 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
ae0d4fd2 1305 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1306 int row = jTableFvInfo.getSelectedRow();\r
1307 if (jTableFvInfo.isEditing()) {\r
1308 jTableFvInfo.getCellEditor().stopCellEditing();\r
ae0d4fd2 1309 }\r
4da2e625 1310 if (jTableFvImageOpts.isEditing()) {\r
1311 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
ae0d4fd2 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
d6d24759 1321 docConsole.setSaved(false);\r
ae0d4fd2 1322 ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
1323 \r
1324 }\r
1325 });\r
1326 }\r
4da2e625 1327 return jButtonUpdateFvImage;\r
44053733 1328 }\r
1329\r
3658f95e 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
2b70a636 1555 jButtonFvInFdfOptions.setEnabled(false);\r
3658f95e 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
61919f8c 1560 if (selectedRow < 0) {\r
3658f95e 1561 return;\r
1562 }\r
3658f95e 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
eb8ea829 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
3658f95e 1652 }\r
1653 return jTableFvAdditional;\r
1654 }\r
eb8ea829 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
3658f95e 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
eb8ea829 1694 jButtonAddFv.setEnabled(true);\r
3658f95e 1695 jButtonAddFv.setText("New");\r
2b70a636 1696 jButtonAddFv.addActionListener(new java.awt.event.ActionListener() {\r
1697 public void actionPerformed(java.awt.event.ActionEvent e) {\r
eb8ea829 1698 if (jTableFvAdditional.isEditing()) {\r
1699 jTableFvAdditional.getCellEditor().stopCellEditing();\r
1700 }\r
1701 String[] row = {"", "", ""};\r
1702 fvAddtionalTableModel.addRow(row);\r
2b70a636 1703 }\r
1704 });\r
3658f95e 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
2b70a636 1718 jButtonDelFv.setEnabled(false);\r
3658f95e 1719 jButtonDelFv.setText("Delete");\r
2b70a636 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
3658f95e 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
2b70a636 1738 jButtonAddFvOptions.setEnabled(false);\r
3658f95e 1739 jButtonAddFvOptions.setText("Options");\r
2b70a636 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
3658f95e 1745 }\r
1746 return jButtonAddFvOptions;\r
1747 }\r
3658f95e 1748 \r
a13899c5 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
44053733 1767 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1768 public void internalFrameDeactivated(InternalFrameEvent e){\r
4da2e625 1769 if (jTableFvProp.isEditing()) {\r
1770 jTableFvProp.getCellEditor().stopCellEditing();\r
44053733 1771 }\r
4da2e625 1772 if (jTableFvImageNames.isEditing()) {\r
1773 jTableFvImageNames.getCellEditor().stopCellEditing();\r
44053733 1774 }\r
4da2e625 1775 if (jTableFvInfo.isEditing()) {\r
1776 jTableFvInfo.getCellEditor().stopCellEditing();\r
44053733 1777 }\r
1778 }\r
1779 });\r
a13899c5 1780 }\r
1781\r
1782 private void init(FpdFileContents ffc) {\r
3658f95e 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
2b70a636 1791 initFvInFdfTable(fdfPath);\r
eb8ea829 1792 initFvAdditionalTable();\r
a13899c5 1793 }\r
1794 \r
ae0d4fd2 1795 private void getOptionNameValue(Map<String, String> m){\r
4da2e625 1796 for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) {\r
ae0d4fd2 1797 m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
a13899c5 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
4da2e625 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
a13899c5 1813 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1814 }\r
1815 return jContentPane;\r
1816 }\r
3658f95e 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
2b70a636 1922 \r
1923 reader.close();\r
1924 in.close();\r
1925 }\r
1926 catch (Exception e) {\r
3658f95e 1927 \r
1928 }\r
1929\r
1930 }\r
1931 \r
61919f8c 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
2b70a636 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
61919f8c 1958 \r
2b70a636 1959 public ModuleOrderPane(String tabTitle, String file) {\r
61919f8c 1960 super(new BorderLayout());\r
2b70a636 1961 title = tabTitle;\r
1962 outputFileName = file;\r
1963 mGuidToModuleId = new HashMap<String, ModuleIdentification>();\r
1964 listModGuidInFv = new ArrayList<String>();\r
61919f8c 1965 add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
1966 add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
1967 add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
2b70a636 1968 showModulesInFv(title);\r
1969 showAllModulesInPlatform();\r
61919f8c 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
2b70a636 1980 listModGuidInFv.add(saa[i][0].toLowerCase());\r
61919f8c 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
2b70a636 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
61919f8c 2005 }\r
2006 }\r
2b70a636 2007\r
61919f8c 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
2b70a636 2031 ModuleIdentification mi = GlobalData.vModuleList.get(i);\r
2032 String mg = mi.getGuid();\r
61919f8c 2033 if (mg == null) {\r
2034 continue;\r
2035 }\r
2036 if (mg.equalsIgnoreCase(guid)) {\r
2b70a636 2037 mGuidToModuleId.put(guid.toLowerCase(), mi);\r
2038 return mi.getName();\r
61919f8c 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
2b70a636 2055 \r
2056 \r
61919f8c 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
2b70a636 2127 \r
61919f8c 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
2b70a636 2180\r
61919f8c 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
61919f8c 2234 }\r
2235 else {\r
2236 modInFvTableModel.insertRow(selectedRowLeft, row);\r
2237 jTableModInFv.changeSelection(selectedRowLeft, 0, false, false);\r
2238 }\r
2b70a636 2239 fpdModTableModel.removeRow(rowInModel);\r
61919f8c 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
eb8ea829 2309 jButtonOk.setText("Ok");\r
2b70a636 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
61919f8c 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
a13899c5 2369\r
2370} // @jve:decl-index=0:visual-constraint="10,10"\r
2371\r
2372class ImageParaTableModel extends DefaultTableModel {\r
2373\r
44053733 2374 private static final long serialVersionUID = 1L;\r
44053733 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
a13899c5 2381 }\r
2382}\r
ae0d4fd2 2383\r
3658f95e 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