]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
Fix not able to save after change build target.
[mirror_edk2.git] / Tools / Java / 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.JFileChooser;\r
20import javax.swing.JFrame;\r
908b1c05 21import javax.swing.JOptionPane;\r
a13899c5 22import javax.swing.JTabbedPane;\r
23import javax.swing.JButton;\r
24import javax.swing.ListSelectionModel;\r
25\r
26import org.tianocore.PlatformSurfaceAreaDocument;\r
98c20797 27import org.tianocore.frameworkwizard.common.DataValidation;\r
ed850fbf 28import org.tianocore.frameworkwizard.common.IDefaultTableModel;\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
61919f8c 33import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
a13899c5 34\r
35import java.awt.FlowLayout;\r
36import java.awt.event.ActionEvent;\r
2b70a636 37import java.awt.event.ComponentAdapter;\r
38import java.awt.event.ComponentEvent;\r
a13899c5 39import java.awt.event.ItemEvent;\r
40import java.awt.event.ItemListener;\r
17bd391e 41import java.awt.event.MouseAdapter;\r
42import java.awt.event.MouseEvent;\r
3658f95e 43import java.io.BufferedReader;\r
a13899c5 44import java.io.File;\r
3658f95e 45import java.io.FileReader;\r
2b70a636 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
a13899c5 66import javax.swing.table.TableModel;\r
67import javax.swing.JComboBox;\r
68import java.awt.Dimension;\r
3658f95e 69import javax.swing.JSplitPane;\r
a13899c5 70\r
71public class FpdFlash extends IInternalFrame {\r
72\r
44053733 73 /**\r
74 * \r
75 */\r
76 private static final long serialVersionUID = 1L;\r
eb8ea829 77 private final int startIndexOfDynamicTab = 2;\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 JLabel jLabelFvParaType = null;\r
104 private JComboBox jComboBoxFvParaType = null;\r
105 private JLabel jLabelFvImageNames = null;\r
106 private JLabel jLabelFvParaName = null;\r
107 private JTextField jTextFieldFvParaName = null;\r
54aa8673 108 private JButton jButtonFvNameAdd = null;\r
4da2e625 109 private JScrollPane jScrollPaneFvImageNames = null;\r
110 private JTable jTableFvImageNames = null;\r
54aa8673 111 private JButton jButtonFvNameDel = null;\r
4da2e625 112 private JPanel jPanelFvImageOpts = null;\r
113 private JButton jButtonAddFvImage = null;\r
114 private JScrollPane jScrollPaneFvInfo = null;\r
115 private JTable jTableFvInfo = null;\r
116 private JButton jButtonDelFvImage = null;\r
4da2e625 117 private JPanel jPanelFvImagePara = null;\r
d6d24759 118 private OpeningPlatformType docConsole = null;\r
a13899c5 119 private FpdFileContents ffc = null;\r
4da2e625 120 private JPanel jPanelFdf = null;\r
121 private JCheckBox jCheckBoxFdf = null;\r
122 private JTextField jTextFieldFdf = null;\r
123 private JButton jButtonFdfBrowse = null;\r
124 private JLabel jLabelFvImageOptName = null;\r
125 private JTextField jTextFieldFvImageOptName = null;\r
126 private JLabel jLabelFvImageOptValue = null;\r
127 private JTextField jTextFieldFvImageOptValue = null;\r
128 private JPanel jPanelFvImageOptsButtonGroup = null;\r
129 private JButton jButtonFvImageOptAdd = null;\r
130 private JButton jButtonFvImageOptDel = null;\r
ae0d4fd2 131 private JScrollPane jScrollPane = null;\r
4da2e625 132 private JTable jTableFvImageOpts = null;\r
133 private JButton jButtonUpdateFvImage = null;\r
3658f95e 134 private JPanel jPanelFdfN = null;\r
135 private JPanel jPanelFdfS = null;\r
136 private JSplitPane jSplitPaneFdfC = null;\r
137 private JPanel jPanelFdfCTop = null;\r
138 private JPanel jPanelFdfCBottom = null;\r
139 private JPanel jPanelFdfCTopN = null;\r
140 private JPanel jPanelFdfCTopS = null;\r
141 private JPanel jPanelFdfCTopC = null;\r
142 private JPanel jPanelFdfCBottomN = null;\r
143 private JPanel jPanelFdfCBottomC = null;\r
144 private JLabel jLabelFvInFdf = null;\r
145 private JLabel jLabelFvAdditional = null;\r
146 private JScrollPane jScrollPaneFvInFdf = null;\r
147 private JTable jTableFvInFdf = null;\r
ed850fbf 148 private IDefaultTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
3658f95e 149 private JButton jButtonFvInFdfOptions = null;\r
150 private JScrollPane jScrollPaneFvAdditional = null;\r
151 private JTable jTableFvAdditional = null;\r
98c20797 152 private DefaultTableModel fvAdditionalTableModel = null; // @jve:decl-index=0:visual-constraint=""\r
3658f95e 153 private JButton jButtonAddFv = null;\r
154 private JButton jButtonDelFv = null;\r
155 private JButton jButtonAddFvOptions = null;\r
eb8ea829 156 private int tabIndexForFv = -1;\r
157 private int selectedRowInFvAdditionalTable = -1;\r
158 private String oldFvName = null;\r
98c20797 159 private Vector<String> vBlockSize = new Vector<String>();\r
701d95b3 160 private String determinedFvBlockSize = null;\r
72426064 161 private final String defaultBlkSize = "0x10000";\r
701d95b3 162 private String erasePolarity = "";\r
98c20797 163 boolean memModified = false;\r
b411fc1f 164 private FvOptsTableModel fvInFdfOptTableModel = null;\r
165 private FvOptsTableModel fvAdditionalOptTableModel = null;\r
72426064 166 private boolean sizeFromOptionDlg = false;\r
167 private boolean fileFromOptionDlg = false;\r
168 private JLabel jLabelOptions = null;\r
169 private JPanel jPanelBgFvName = null;\r
170 private JPanel jPanelBgFvImage = null;\r
171 private JPanel jPanelW = null;\r
31095724 172 private JPanel jPanelFvImageParaN = null;\r
173 private JPanel jPanelFvImageParaS = null;\r
174 private JPanel jPanelFvImageParaC = null;\r
175 private JPanel jPanelFvImageOptsN = null;\r
176 private JPanel jPanelFvImageOptsS = null;\r
177 private JPanel jPanelFvImageOptsC = null;\r
3658f95e 178 \r
a13899c5 179 public FpdFlash() {\r
180 super();\r
181 // TODO Auto-generated constructor stub\r
182\r
183 initialize();\r
184 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
185 this.setVisible(true);\r
186 }\r
187\r
188 public FpdFlash(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
189 this();\r
190 ffc = new FpdFileContents(fpd);\r
191 init(ffc);\r
192 }\r
193 \r
d6d24759 194 public FpdFlash(OpeningPlatformType opt) {\r
195 this(opt.getXmlFpd());\r
196 docConsole = opt;\r
701d95b3 197 if (memModified) {\r
198 docConsole.setSaved(false);\r
199 JOptionPane.showMessageDialog(frame, "Platform Synced with FDF file.");\r
200 memModified = false;\r
201 }\r
d6d24759 202 }\r
203 \r
a13899c5 204 /**\r
205 * This method initializes jPanel \r
206 * \r
207 * @return javax.swing.JPanel \r
208 */\r
4da2e625 209 private JPanel getJPanelContentEast() {\r
210 if (jPanelContentEast == null) {\r
72426064 211 FlowLayout flowLayout7 = new FlowLayout();\r
212 flowLayout7.setVgap(50);\r
4da2e625 213 jPanelContentEast = new JPanel();\r
72426064 214 jPanelContentEast.setLayout(flowLayout7);\r
a13899c5 215 }\r
4da2e625 216 return jPanelContentEast;\r
a13899c5 217 }\r
218\r
219 /**\r
220 * This method initializes jPanel1 \r
221 * \r
222 * @return javax.swing.JPanel \r
223 */\r
4da2e625 224 private JPanel getJPanelContentSouth() {\r
225 if (jPanelContentSouth == null) {\r
a13899c5 226 FlowLayout flowLayout = new FlowLayout();\r
227 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
228 flowLayout.setHgap(15);\r
4da2e625 229 jPanelContentSouth = new JPanel();\r
230 jPanelContentSouth.setLayout(flowLayout);\r
231 jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
a13899c5 232 }\r
4da2e625 233 return jPanelContentSouth;\r
a13899c5 234 }\r
235\r
236 /**\r
237 * This method initializes jPanel2 \r
238 * \r
239 * @return javax.swing.JPanel \r
240 */\r
4da2e625 241 private JPanel getJPanelContentWest() {\r
242 if (jPanelContentWest == null) {\r
243 jPanelContentWest = new JPanel();\r
a13899c5 244 }\r
4da2e625 245 return jPanelContentWest;\r
a13899c5 246 }\r
247\r
248 /**\r
249 * This method initializes jPanel3 \r
250 * \r
251 * @return javax.swing.JPanel \r
252 */\r
4da2e625 253 private JPanel getJPanelContentNorth() {\r
254 if (jPanelContentNorth == null) {\r
255 jPanelContentNorth = new JPanel();\r
a13899c5 256 }\r
4da2e625 257 return jPanelContentNorth;\r
a13899c5 258 }\r
259\r
260 /**\r
261 * This method initializes jTabbedPane \r
262 * \r
263 * @return javax.swing.JTabbedPane \r
264 */\r
265 private JTabbedPane getJTabbedPane() {\r
266 if (jTabbedPane == null) {\r
267 jTabbedPane = new JTabbedPane();\r
3658f95e 268 jTabbedPane.addTab("General", null, getJPanelFdf(), null);\r
61919f8c 269 jTabbedPane.addTab("Advanced", null, getJPanelFvImages(), null);\r
a13899c5 270 \r
271 }\r
272 return jTabbedPane;\r
273 }\r
274\r
275 /**\r
276 * This method initializes jPanelFvImages \r
277 * \r
278 * @return javax.swing.JPanel \r
279 */\r
280 private JPanel getJPanelFvImages() {\r
281 if (jPanelFvImages == null) {\r
282 jPanelFvImages = new JPanel();\r
283 jPanelFvImages.setLayout(new BorderLayout());\r
72426064 284 jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.NORTH);\r
285 jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.SOUTH);\r
a13899c5 286 jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);\r
72426064 287 jPanelFvImages.add(getJPanelW(), java.awt.BorderLayout.EAST);\r
eb8ea829 288 jPanelFvImages.addComponentListener(new java.awt.event.ComponentAdapter() {\r
289 public void componentShown(java.awt.event.ComponentEvent e) {\r
72426064 290// fvImageParaTableModel.setRowCount(0);\r
291// fvPropertyTableModel.setRowCount(0);\r
eb8ea829 292 \r
98c20797 293 \r
eb8ea829 294 }\r
295 });\r
a13899c5 296 \r
297 }\r
298 return jPanelFvImages;\r
299 }\r
300\r
a13899c5 301 /**\r
302 * This method initializes jPanelFvImageN \r
303 * \r
304 * @return javax.swing.JPanel \r
305 */\r
306 private JPanel getJPanelFvImageN() {\r
307 if (jPanelFvImageN == null) {\r
4da2e625 308 jLabelFvPropValue = new JLabel();\r
309 jLabelFvPropValue.setText("Value");\r
310 jLabelFvPropValue.setEnabled(false);\r
311 jLabelFvPropValue.setPreferredSize(new java.awt.Dimension(38,20));\r
312 jLabelFvPropName = new JLabel();\r
313 jLabelFvPropName.setText("Name");\r
314 jLabelFvPropName.setEnabled(false);\r
315 jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20));\r
a13899c5 316 FlowLayout flowLayout2 = new FlowLayout();\r
3658f95e 317 flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
72426064 318 flowLayout2.setHgap(5);\r
a13899c5 319 jPanelFvImageN = new JPanel();\r
72426064 320 jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,130));\r
a13899c5 321 jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));\r
322 jPanelFvImageN.setLayout(flowLayout2);\r
4da2e625 323 jPanelFvImageN.add(getJCheckBoxFvProperty(), null);\r
324 jPanelFvImageN.add(jLabelFvPropName, null);\r
325 jPanelFvImageN.add(getJTextFieldFvPropName(), null);\r
326 jPanelFvImageN.add(jLabelFvPropValue, null);\r
327 jPanelFvImageN.add(getJTextFieldFvPropValue(), null);\r
328 jPanelFvImageN.add(getJScrollPaneFvProp(), null);\r
329 jPanelFvImageN.add(getJPanelFvPropButtonGroup(), null);\r
a13899c5 330 }\r
331 return jPanelFvImageN;\r
332 }\r
333\r
a13899c5 334 /**\r
335 * This method initializes jPanelFvImageS \r
336 * \r
337 * @return javax.swing.JPanel \r
338 */\r
339 private JPanel getJPanelFvImageS() {\r
340 if (jPanelFvImageS == null) {\r
341 GridLayout gridLayout2 = new GridLayout();\r
342 gridLayout2.setRows(1);\r
343 jPanelFvImageS = new JPanel();\r
72426064 344 jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,150));\r
a13899c5 345 jPanelFvImageS.setLayout(gridLayout2);\r
4da2e625 346 jPanelFvImageS.add(getJScrollPaneFvInfo(), null);\r
a13899c5 347 }\r
348 return jPanelFvImageS;\r
349 }\r
350\r
351\r
352 /**\r
353 * This method initializes jCheckBox1 \r
354 * \r
355 * @return javax.swing.JCheckBox \r
356 */\r
4da2e625 357 private JCheckBox getJCheckBoxFvProperty() {\r
358 if (jCheckBoxFvProperty == null) {\r
359 jCheckBoxFvProperty = new JCheckBox();\r
3658f95e 360 jCheckBoxFvProperty.setText("Global FV Variables");\r
4da2e625 361 jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
a13899c5 362\r
363 public void itemStateChanged(ItemEvent arg0) {\r
364 // TODO Auto-generated method stub\r
4da2e625 365 boolean seleted = jCheckBoxFvProperty.isSelected();\r
a13899c5 366 \r
4da2e625 367 jLabelFvPropName.setEnabled(seleted);\r
368 jTextFieldFvPropName.setEnabled(seleted);\r
369 jLabelFvPropValue.setEnabled(seleted);\r
370 jTextFieldFvPropValue.setEnabled(seleted);\r
371 jTableFvProp.setEnabled(seleted);\r
372 jButtonFvPropAdd.setEnabled(seleted);\r
373 jButtonFvPropDel.setEnabled(seleted);\r
a13899c5 374 \r
375 \r
376 }\r
377 \r
378 });\r
379 }\r
4da2e625 380 return jCheckBoxFvProperty;\r
a13899c5 381 }\r
382\r
383\r
384 /**\r
385 * This method initializes jTextField \r
386 * \r
387 * @return javax.swing.JTextField \r
388 */\r
4da2e625 389 private JTextField getJTextFieldFvPropName() {\r
390 if (jTextFieldFvPropName == null) {\r
391 jTextFieldFvPropName = new JTextField();\r
392 jTextFieldFvPropName.setPreferredSize(new java.awt.Dimension(100,20));\r
393 jTextFieldFvPropName.setEnabled(false);\r
a13899c5 394 }\r
4da2e625 395 return jTextFieldFvPropName;\r
a13899c5 396 }\r
397\r
398\r
399 /**\r
400 * This method initializes jTextField1 \r
401 * \r
402 * @return javax.swing.JTextField \r
403 */\r
4da2e625 404 private JTextField getJTextFieldFvPropValue() {\r
405 if (jTextFieldFvPropValue == null) {\r
406 jTextFieldFvPropValue = new JTextField();\r
407 jTextFieldFvPropValue.setPreferredSize(new java.awt.Dimension(100,20));\r
408 jTextFieldFvPropValue.setEnabled(false);\r
a13899c5 409 }\r
4da2e625 410 return jTextFieldFvPropValue;\r
a13899c5 411 }\r
412\r
413\r
414 /**\r
415 * This method initializes jButton \r
416 * \r
417 * @return javax.swing.JButton \r
418 */\r
4da2e625 419 private JButton getJButtonFvPropAdd() {\r
420 if (jButtonFvPropAdd == null) {\r
421 jButtonFvPropAdd = new JButton();\r
422 jButtonFvPropAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
423 jButtonFvPropAdd.setEnabled(false);\r
424 jButtonFvPropAdd.setText("Add");\r
425 jButtonFvPropAdd.addActionListener(new AbstractAction() {\r
44053733 426 /**\r
427 * \r
428 */\r
429 private static final long serialVersionUID = 1L;\r
430\r
a13899c5 431 public void actionPerformed(ActionEvent e) {\r
4da2e625 432 if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){\r
433 String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; \r
a13899c5 434 fvPropertyTableModel.addRow(row);\r
d6d24759 435 docConsole.setSaved(false);\r
a13899c5 436 ffc.genFvImagesNameValue(row[0], row[1]);\r
437 }\r
438 }\r
439 });\r
440 }\r
4da2e625 441 return jButtonFvPropAdd;\r
a13899c5 442 }\r
443\r
444\r
445 /**\r
446 * This method initializes jScrollPane1 \r
447 * \r
448 * @return javax.swing.JScrollPane \r
449 */\r
4da2e625 450 private JScrollPane getJScrollPaneFvProp() {\r
451 if (jScrollPaneFvProp == null) {\r
452 jScrollPaneFvProp = new JScrollPane();\r
72426064 453 jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,100));\r
4da2e625 454 jScrollPaneFvProp.setViewportView(getJTableFvProp());\r
a13899c5 455 }\r
4da2e625 456 return jScrollPaneFvProp;\r
a13899c5 457 }\r
458\r
459\r
460 /**\r
461 * This method initializes jTable \r
462 * \r
463 * @return javax.swing.JTable \r
464 */\r
4da2e625 465 private JTable getJTableFvProp() {\r
466 if (jTableFvProp == null) {\r
a13899c5 467 fvPropertyTableModel = new DefaultTableModel();\r
4da2e625 468 jTableFvProp = new JTable(fvPropertyTableModel);\r
a13899c5 469 fvPropertyTableModel.addColumn("Name");\r
470 fvPropertyTableModel.addColumn("Value");\r
4da2e625 471 jTableFvProp.setRowHeight(20);\r
472 jTableFvProp.setEnabled(false);\r
a13899c5 473 \r
4da2e625 474 jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
475 jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 476 public void valueChanged(ListSelectionEvent e) {\r
477 if (e.getValueIsAdjusting()){\r
478 return;\r
479 }\r
480 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
481 if (lsm.isSelectionEmpty()) {\r
482 return;\r
483 }\r
484 else{\r
485// selectedRow = lsm.getMinSelectionIndex();\r
486 }\r
487 }\r
488 });\r
489 \r
4da2e625 490 jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
a13899c5 491 public void tableChanged(TableModelEvent arg0) {\r
492 // TODO Auto-generated method stub\r
493 int row = arg0.getFirstRow();\r
494 TableModel m = (TableModel)arg0.getSource();\r
495 if (arg0.getType() == TableModelEvent.UPDATE){\r
496 \r
497 String name = m.getValueAt(row, 0) + "";\r
498 String value = m.getValueAt(row, 1) + "";\r
d6d24759 499 docConsole.setSaved(false);\r
a13899c5 500 ffc.updateFvImagesNameValue(row, name, value);\r
501 }\r
502 }\r
503 });\r
504 }\r
4da2e625 505 return jTableFvProp;\r
a13899c5 506 }\r
507\r
508\r
509 /**\r
510 * This method initializes jPanel4 \r
511 * \r
512 * @return javax.swing.JPanel \r
513 */\r
4da2e625 514 private JPanel getJPanelFvPropButtonGroup() {\r
515 if (jPanelFvPropButtonGroup == null) {\r
516 jPanelFvPropButtonGroup = new JPanel();\r
517 jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55));\r
a13899c5 518 \r
4da2e625 519 jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
520 jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
a13899c5 521 }\r
4da2e625 522 return jPanelFvPropButtonGroup;\r
a13899c5 523 }\r
524\r
525\r
526 /**\r
527 * This method initializes jButton1 \r
528 * \r
529 * @return javax.swing.JButton \r
530 */\r
4da2e625 531 private JButton getJButtonFvPropDel() {\r
532 if (jButtonFvPropDel == null) {\r
533 jButtonFvPropDel = new JButton();\r
534 jButtonFvPropDel.setPreferredSize(new java.awt.Dimension(80,20));\r
535 jButtonFvPropDel.setEnabled(false);\r
536 jButtonFvPropDel.setText("Delete");\r
537 jButtonFvPropDel.addActionListener(new AbstractAction() {\r
44053733 538 /**\r
539 * \r
540 */\r
541 private static final long serialVersionUID = 1L;\r
542\r
a13899c5 543 public void actionPerformed(ActionEvent e) {\r
4da2e625 544 if (jTableFvProp.getSelectedRow() >= 0){\r
545 fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
d6d24759 546 docConsole.setSaved(false);\r
4da2e625 547 ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
a13899c5 548 }\r
549 }\r
550 });\r
551 }\r
4da2e625 552 return jButtonFvPropDel;\r
a13899c5 553 }\r
554\r
555\r
556 /**\r
557 * This method initializes jPanelFvImageC \r
558 * \r
559 * @return javax.swing.JPanel \r
560 */\r
561 private JPanel getJPanelFvImageC() {\r
562 if (jPanelFvImageC == null) {\r
31095724 563 GridLayout gridLayout = new GridLayout();\r
564 gridLayout.setRows(2);\r
4da2e625 565 jLabelFvParaName = new JLabel();\r
566 jLabelFvParaName.setPreferredSize(new Dimension(38, 20));\r
4da2e625 567 jLabelFvParaName.setText("Name");\r
568 jLabelFvImageNames = new JLabel();\r
569 jLabelFvImageNames.setText("FV Image Names");\r
4da2e625 570 jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20));\r
571 jLabelFvParaType = new JLabel();\r
572 jLabelFvParaType.setText("Type");\r
4da2e625 573 jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20));\r
a13899c5 574 jPanelFvImageC = new JPanel();\r
31095724 575 jPanelFvImageC.setLayout(gridLayout);\r
4da2e625 576 jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
4da2e625 577 jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
a13899c5 578 \r
31095724 579 \r
a13899c5 580 }\r
581 return jPanelFvImageC;\r
582 }\r
583\r
584\r
a13899c5 585 /**\r
586 * This method initializes jComboBox \r
587 * \r
588 * @return javax.swing.JComboBox \r
589 */\r
4da2e625 590 private JComboBox getJComboBoxFvParaType() {\r
591 if (jComboBoxFvParaType == null) {\r
592 jComboBoxFvParaType = new JComboBox();\r
4da2e625 593 jComboBoxFvParaType.addItem("Attributes");\r
72426064 594 jComboBoxFvParaType.addItem("Components");\r
54aa8673 595 jComboBoxFvParaType.setSelectedIndex(0);\r
4da2e625 596 jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20));\r
4da2e625 597 jComboBoxFvParaType.addItemListener(new ItemListener() {\r
a13899c5 598\r
599 public void itemStateChanged(ItemEvent arg0) {\r
600 // TODO disable attribute settings when ValidImageNames selected.\r
72426064 601 int selectedRow = jTableFvInfo.getSelectedRow();\r
602 if (selectedRow < 0) {\r
603 return;\r
604 }\r
605 String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
606 String oldType = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
607 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, oldType);\r
608 if (fvImagePos < 0) {\r
609 return;\r
610 }\r
a13899c5 611 \r
72426064 612 String type = jComboBoxFvParaType.getSelectedItem()+"";\r
613 ffc.updateFvImagesFvImageType(fvImagePos, type);\r
614 jTableFvInfo.setValueAt(type, selectedRow, 1);\r
615 docConsole.setSaved(false);\r
a13899c5 616 }\r
617 \r
618 });\r
619 }\r
4da2e625 620 return jComboBoxFvParaType;\r
a13899c5 621 }\r
622\r
623\r
624 /**\r
625 * This method initializes jTextField2 \r
626 * \r
627 * @return javax.swing.JTextField \r
628 */\r
4da2e625 629 private JTextField getJTextFieldFvParaName() {\r
630 if (jTextFieldFvParaName == null) {\r
631 jTextFieldFvParaName = new JTextField();\r
632 jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20));\r
a13899c5 633 }\r
4da2e625 634 return jTextFieldFvParaName;\r
a13899c5 635 }\r
636\r
637\r
638 /**\r
639 * This method initializes jButton2 \r
640 * \r
641 * @return javax.swing.JButton \r
642 */\r
54aa8673 643 private JButton getJButtonFvNameAdd() {\r
644 if (jButtonFvNameAdd == null) {\r
645 jButtonFvNameAdd = new JButton();\r
646 jButtonFvNameAdd.setPreferredSize(new Dimension(80, 20));\r
647 jButtonFvNameAdd.setEnabled(true);\r
648 jButtonFvNameAdd.setText("Add");\r
649 jButtonFvNameAdd.addActionListener(new AbstractAction() {\r
44053733 650 /**\r
651 * \r
652 */\r
653 private static final long serialVersionUID = 1L;\r
654\r
a13899c5 655 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 656 if (jTextFieldFvParaName.getText().length() > 0){\r
657 String[] row = {jTextFieldFvParaName.getText()}; \r
54aa8673 658 int selectedRow = jTableFvInfo.getSelectedRow();\r
659 if (selectedRow < 0) {\r
72426064 660 return;\r
661 }\r
662 \r
54aa8673 663 String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
664 String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
72426064 665 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
666 \r
667 if (fvImagePos < 0) {\r
668 // new FvImage.\r
54aa8673 669 ffc.genFvImagesFvImage(row, jComboBoxFvParaType.getSelectedItem()+"", null); \r
72426064 670 }\r
671 else {\r
54aa8673 672 //append Fv name.\r
673 ffc.addFvImageNamesInFvImage(fvImagePos, row); \r
72426064 674 }\r
54aa8673 675 docConsole.setSaved(false);\r
676 fvImageNameTableModel.addRow(row);\r
677 fvNameList += " ";\r
678 fvNameList += row[0];\r
679 jTableFvInfo.setValueAt(fvNameList.trim(), selectedRow, 0);\r
680 jTableFvImageNames.changeSelection(jTableFvImageNames.getRowCount() - 1, 0, false, false);\r
a13899c5 681 }\r
682 }\r
683 });\r
684 }\r
54aa8673 685 return jButtonFvNameAdd;\r
a13899c5 686 }\r
687\r
688\r
689 /**\r
690 * This method initializes jScrollPane2 \r
691 * \r
692 * @return javax.swing.JScrollPane \r
693 */\r
4da2e625 694 private JScrollPane getJScrollPaneFvImageNames() {\r
695 if (jScrollPaneFvImageNames == null) {\r
696 jScrollPaneFvImageNames = new JScrollPane();\r
72426064 697 jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,80));\r
4da2e625 698 jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames());\r
a13899c5 699 }\r
4da2e625 700 return jScrollPaneFvImageNames;\r
a13899c5 701 }\r
702\r
703\r
704 /**\r
705 * This method initializes jTable1 \r
706 * \r
707 * @return javax.swing.JTable \r
708 */\r
4da2e625 709 private JTable getJTableFvImageNames() {\r
710 if (jTableFvImageNames == null) {\r
ed850fbf 711 fvImageNameTableModel = new IDefaultTableModel();\r
4da2e625 712 jTableFvImageNames = new JTable(fvImageNameTableModel);\r
72426064 713 jTableFvImageNames.setRowHeight(20);\r
a13899c5 714 fvImageNameTableModel.addColumn("FV Image Name");\r
72426064 715 \r
a13899c5 716 }\r
4da2e625 717 return jTableFvImageNames;\r
a13899c5 718 }\r
719\r
720\r
721 /**\r
722 * This method initializes jButton3 \r
723 * \r
724 * @return javax.swing.JButton \r
725 */\r
54aa8673 726 private JButton getJButtonFvNameDel() {\r
727 if (jButtonFvNameDel == null) {\r
728 jButtonFvNameDel = new JButton();\r
729 jButtonFvNameDel.setPreferredSize(new Dimension(80, 20));\r
730 jButtonFvNameDel.setEnabled(true);\r
731 jButtonFvNameDel.setText("Delete");\r
732 jButtonFvNameDel.addActionListener(new AbstractAction() {\r
44053733 733 /**\r
734 * \r
735 */\r
736 private static final long serialVersionUID = 1L;\r
737\r
a13899c5 738 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 739 if (jTableFvImageNames.getSelectedRow() >= 0){\r
54aa8673 740 int selectedRow = jTableFvInfo.getSelectedRow();\r
741 if (selectedRow < 0) {\r
742 return;\r
743 }\r
744 \r
745 String selectedFvName = jTableFvImageNames.getValueAt(jTableFvImageNames.getSelectedRow(), 0)+"";\r
746 String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
747 String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
748 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
749 \r
750 if (fvImagePos < 0) {\r
751 return; \r
752 }\r
753 else {\r
754 //delete Fv name.\r
755 ffc.updateFvImageNamesInFvImage(fvImagePos, selectedFvName, null);\r
756 }\r
757 docConsole.setSaved(false);\r
758 String newList = removeFvNameFromList(fvNameList, selectedFvName);\r
759 jTableFvInfo.setValueAt(newList, selectedRow, 0); \r
4da2e625 760 fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
a13899c5 761 }\r
762 }\r
763 });\r
764 }\r
54aa8673 765 return jButtonFvNameDel;\r
766 }\r
767\r
768 private String removeFvNameFromList (String list, String name) {\r
769 String[] nameArray = list.split(" ");\r
770 int occursAt = -1;\r
771 for (int i = 0; i < nameArray.length; ++i) {\r
772 if (nameArray[i].equals(name)) {\r
773 occursAt = i;\r
774 break;\r
775 }\r
776 }\r
777 \r
778 if (occursAt == -1) {\r
779 return list;\r
780 }\r
781 \r
782 String newList = " ";\r
783 for (int j = 0; j < nameArray.length; ++j) {\r
784 if (j != occursAt) {\r
785 newList += nameArray[j];\r
786 newList += " ";\r
787 }\r
788 }\r
789 \r
790 return newList.trim();\r
791 }\r
a13899c5 792\r
793 \r
4da2e625 794 private JPanel getJPanelFvImageOpts() {\r
a13899c5 795 \r
796\r
4da2e625 797 if (jPanelFvImageOpts == null) {\r
a13899c5 798 //ToDo add ButtonGroup for RadioButtons\r
72426064 799 jLabelOptions = new JLabel();\r
800 jLabelOptions.setText("Attribute");\r
4da2e625 801 jLabelFvImageOptValue = new JLabel();\r
802 jLabelFvImageOptValue.setEnabled(true);\r
803 jLabelFvImageOptValue.setText("Value");\r
804 jLabelFvImageOptValue.setPreferredSize(new Dimension(38, 20));\r
805 jLabelFvImageOptName = new JLabel();\r
806 jLabelFvImageOptName.setEnabled(true);\r
807 jLabelFvImageOptName.setText("Name");\r
808 jLabelFvImageOptName.setPreferredSize(new Dimension(38, 20));\r
809 jPanelFvImageOpts = new JPanel();\r
31095724 810 jPanelFvImageOpts.setLayout(new BorderLayout());\r
72426064 811 jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(450,130));\r
a13899c5 812 \r
a13899c5 813 \r
4da2e625 814 jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
a13899c5 815\r
31095724 816 jPanelFvImageOpts.add(getJPanelFvImageOptsN(), java.awt.BorderLayout.NORTH);\r
817 jPanelFvImageOpts.add(getJPanelFvImageOptsS(), java.awt.BorderLayout.SOUTH);\r
818 jPanelFvImageOpts.add(getJPanelFvImageOptsC(), java.awt.BorderLayout.CENTER);\r
819\r
a13899c5 820 }\r
4da2e625 821 return jPanelFvImageOpts;\r
a13899c5 822 }\r
823\r
824\r
825 /**\r
826 * This method initializes jButton4 \r
827 * \r
828 * @return javax.swing.JButton \r
829 */\r
4da2e625 830 private JButton getJButtonAddFvImage() {\r
831 if (jButtonAddFvImage == null) {\r
832 jButtonAddFvImage = new JButton();\r
72426064 833 jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
834 jButtonAddFvImage.setText("New FV Attributes");\r
4da2e625 835 jButtonAddFvImage.addActionListener(new AbstractAction() {\r
44053733 836 /**\r
837 * \r
838 */\r
839 private static final long serialVersionUID = 1L;\r
840\r
a13899c5 841 public void actionPerformed(java.awt.event.ActionEvent e) {\r
a13899c5 842 \r
54aa8673 843// String imageName = " ";\r
844// for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){\r
845// imageName += (String)jTableFvImageNames.getValueAt(i, 0);\r
846// imageName += " ";\r
72426064 847// }\r
54aa8673 848// imageName = imageName.trim();\r
849 \r
850// LinkedHashMap<String, String> m = null;\r
851// m = new LinkedHashMap<String, String>();\r
852// getOptionNameValue(m);\r
853// ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
854// docConsole.setSaved(false);\r
855 fvImageNameTableModel.setRowCount(0);\r
856 fvOptionTableModel.setRowCount(0);\r
857 Object[] row = {"", jComboBoxFvParaType.getSelectedItem()};\r
858 fvImageParaTableModel.addRow(row);\r
859 jTableFvInfo.changeSelection(jTableFvInfo.getRowCount() - 1, 0, false, false);\r
a13899c5 860 }\r
861 });\r
862 }\r
4da2e625 863 return jButtonAddFvImage;\r
a13899c5 864 }\r
865\r
866\r
867 /**\r
868 * This method initializes jScrollPane3 \r
869 * \r
870 * @return javax.swing.JScrollPane \r
871 */\r
4da2e625 872 private JScrollPane getJScrollPaneFvInfo() {\r
873 if (jScrollPaneFvInfo == null) {\r
874 jScrollPaneFvInfo = new JScrollPane();\r
875 jScrollPaneFvInfo.setPreferredSize(new java.awt.Dimension(480,150));\r
876 jScrollPaneFvInfo.setViewportView(getJTableFvInfo());\r
a13899c5 877 }\r
4da2e625 878 return jScrollPaneFvInfo;\r
a13899c5 879 }\r
880\r
881\r
882 /**\r
883 * This method initializes jTable2 \r
884 * \r
885 * @return javax.swing.JTable \r
886 */\r
4da2e625 887 private JTable getJTableFvInfo() {\r
888 if (jTableFvInfo == null) {\r
a13899c5 889 fvImageParaTableModel = new ImageParaTableModel();\r
4da2e625 890 jTableFvInfo = new JTable(fvImageParaTableModel);\r
a13899c5 891 fvImageParaTableModel.addColumn("FvImageNames");\r
892 fvImageParaTableModel.addColumn("Type");\r
ae0d4fd2 893 \r
4da2e625 894 jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
72426064 895 jTableFvInfo.setRowHeight(20);\r
4da2e625 896 jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 897 public void valueChanged(ListSelectionEvent e) {\r
898 if (e.getValueIsAdjusting()){\r
899 return;\r
900 }\r
901 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
902 if (lsm.isSelectionEmpty()) {\r
903 return;\r
904 }\r
905 else{\r
ae0d4fd2 906 int selectedRow = lsm.getMinSelectionIndex();\r
72426064 907 String fvNameList = fvImageParaTableModel.getValueAt(selectedRow, 0)+"";\r
908 String type = fvImageParaTableModel.getValueAt(selectedRow, 1)+"";\r
909 jComboBoxFvParaType.setSelectedItem(type);\r
910 String[] fvNames = fvNameList.split(" ");\r
911 fvImageNameTableModel.setRowCount(0);\r
54aa8673 912 fvOptionTableModel.setRowCount(0);\r
72426064 913 for (int i = 0; i < fvNames.length; ++i) {\r
914 String[] row = { fvNames[i] };\r
54aa8673 915 if (row[0].length() > 0) {\r
916 fvImageNameTableModel.addRow(row);\r
917 }\r
72426064 918 }\r
919 \r
920 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
921 if (fvImagePos < 0) {\r
61919f8c 922 return;\r
923 }\r
ae0d4fd2 924 LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();\r
72426064 925 ffc.getFvImagesFvImageOptions(fvImagePos, optionMap);\r
ae0d4fd2 926 if (optionMap.size() > 0){\r
ae0d4fd2 927 Set<String> key = optionMap.keySet();\r
928 Iterator<String> i = key.iterator();\r
929 while (i.hasNext()) {\r
ae0d4fd2 930 String k = (String)i.next();\r
931 String[] row = {k, optionMap.get(k)};\r
ae0d4fd2 932 fvOptionTableModel.addRow(row);\r
933 }\r
a13899c5 934 }\r
a13899c5 935 }\r
936 }\r
937 });\r
ae0d4fd2 938 \r
939 \r
a13899c5 940 }\r
4da2e625 941 return jTableFvInfo;\r
a13899c5 942 }\r
943\r
944\r
945 /**\r
946 * This method initializes jButton6 \r
947 * \r
948 * @return javax.swing.JButton \r
949 */\r
4da2e625 950 private JButton getJButtonDelFvImage() {\r
951 if (jButtonDelFvImage == null) {\r
952 jButtonDelFvImage = new JButton();\r
72426064 953 jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
954 jButtonDelFvImage.setText("Delete FV Attributes");\r
4da2e625 955 jButtonDelFvImage.addActionListener(new AbstractAction() {\r
44053733 956 /**\r
957 * \r
958 */\r
959 private static final long serialVersionUID = 1L;\r
a13899c5 960\r
961 public void actionPerformed(ActionEvent arg0) {\r
962 // TODO Auto-generated method stub\r
4da2e625 963 if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
54aa8673 964 String fvNameList = fvImageParaTableModel.getValueAt(jTableFvInfo.getSelectedRow(), 0)+"";\r
965 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, jComboBoxFvParaType.getSelectedItem()+"");\r
966 \r
967 ffc.removeFvImagesFvImage(fvImagePos);\r
4da2e625 968 fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
d6d24759 969 docConsole.setSaved(false);\r
54aa8673 970 \r
971 fvImageNameTableModel.setRowCount(0);\r
972 fvOptionTableModel.setRowCount(0);\r
a13899c5 973 }\r
974 }\r
975 \r
976 });\r
977 }\r
4da2e625 978 return jButtonDelFvImage;\r
a13899c5 979 }\r
980\r
981\r
a13899c5 982 /**\r
983 * This method initializes jPanel6 \r
984 * \r
985 * @return javax.swing.JPanel \r
986 */\r
4da2e625 987 private JPanel getJPanelFvImagePara() {\r
988 if (jPanelFvImagePara == null) {\r
a13899c5 989 StarLabel starLabel = new StarLabel();\r
990 starLabel.setVisible(false);\r
4da2e625 991 jPanelFvImagePara = new JPanel();\r
31095724 992 jPanelFvImagePara.setLayout(new BorderLayout());\r
72426064 993 jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(450,140));\r
4da2e625 994 jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
31095724 995\r
996 jPanelFvImagePara.add(getJPanelFvImageParaN(), java.awt.BorderLayout.NORTH);\r
997 jPanelFvImagePara.add(getJPanelFvImageParaS(), java.awt.BorderLayout.SOUTH);\r
998 jPanelFvImagePara.add(getJPanelFvImageParaC(), java.awt.BorderLayout.CENTER);\r
999\r
1000// \r
1001// \r
1002// \r
a13899c5 1003 }\r
4da2e625 1004 return jPanelFvImagePara;\r
a13899c5 1005 }\r
1006\r
1007 /**\r
1008 * This method initializes jPanel7 \r
1009 * \r
1010 * @return javax.swing.JPanel \r
1011 */\r
4da2e625 1012 private JPanel getJPanelFdf() {\r
1013 if (jPanelFdf == null) {\r
4da2e625 1014 jPanelFdf = new JPanel();\r
3658f95e 1015 jPanelFdf.setLayout(new BorderLayout());\r
1016\r
1017 jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH);\r
1018 jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH);\r
1019 jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER);\r
2b70a636 1020 jPanelFdf.addComponentListener(new ComponentAdapter(){\r
1021 public void componentShown(ComponentEvent e) {\r
3658f95e 1022// if (ffc.getFlashDefinitionFile() != null) {\r
1023// jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
2b70a636 1024// initFvInFdfTable(System.getenv("WORKSPACE") + File.separator + jTextFieldFdf.getText());\r
1025// \r
3658f95e 1026// }\r
2b70a636 1027 }\r
1028 public void componentHidden(ComponentEvent e) {\r
1029 if (jCheckBoxFdf.isSelected()) {\r
1030 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1031 }\r
1032 }\r
1033 });\r
a13899c5 1034 }\r
4da2e625 1035 return jPanelFdf;\r
a13899c5 1036 }\r
1037\r
1038 /**\r
1039 * This method initializes jCheckBox \r
1040 * \r
1041 * @return javax.swing.JCheckBox \r
1042 */\r
4da2e625 1043 private JCheckBox getJCheckBoxFdf() {\r
1044 if (jCheckBoxFdf == null) {\r
1045 jCheckBoxFdf = new JCheckBox();\r
1046 jCheckBoxFdf.setText("Flash Definition File");\r
1047 jCheckBoxFdf.addItemListener(new ItemListener() {\r
a13899c5 1048\r
1049 public void itemStateChanged(ItemEvent arg0) {\r
1050 // TODO Auto-generated method stub\r
4da2e625 1051 if (jCheckBoxFdf.isSelected()){\r
1052 jTextFieldFdf.setEnabled(true);\r
1053 jButtonFdfBrowse.setEnabled(true);\r
a13899c5 1054 }\r
1055 else {\r
1056 \r
4da2e625 1057 jTextFieldFdf.setEnabled(false);\r
1058 jButtonFdfBrowse.setEnabled(false);\r
a13899c5 1059 }\r
1060 }\r
1061 });\r
1062 }\r
4da2e625 1063 return jCheckBoxFdf;\r
a13899c5 1064 }\r
1065\r
1066 /**\r
1067 * This method initializes jTextField3 \r
1068 * \r
1069 * @return javax.swing.JTextField \r
1070 */\r
4da2e625 1071 private JTextField getJTextFieldFdf() {\r
1072 if (jTextFieldFdf == null) {\r
1073 jTextFieldFdf = new JTextField();\r
1074 jTextFieldFdf.setEnabled(false);\r
2b70a636 1075 jTextFieldFdf.setEditable(false);\r
4da2e625 1076 jTextFieldFdf.setPreferredSize(new Dimension(300, 20));\r
1077 jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() {\r
908b1c05 1078 public void focusLost(java.awt.event.FocusEvent e) {\r
4da2e625 1079 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
908b1c05 1080 }\r
1081 });\r
a13899c5 1082 }\r
4da2e625 1083 return jTextFieldFdf;\r
a13899c5 1084 }\r
1085\r
1086 /**\r
1087 * This method initializes jButton5 \r
1088 * \r
1089 * @return javax.swing.JButton \r
1090 */\r
4da2e625 1091 private JButton getJButtonFdfBrowse() {\r
1092 if (jButtonFdfBrowse == null) {\r
1093 jButtonFdfBrowse = new JButton();\r
1094 jButtonFdfBrowse.setEnabled(false);\r
1095 jButtonFdfBrowse.setText("Browse");\r
1096 jButtonFdfBrowse.setPreferredSize(new Dimension(78, 20));\r
1097 jButtonFdfBrowse.addActionListener(new AbstractAction(){\r
44053733 1098 /**\r
1099 * \r
1100 */\r
1101 private static final long serialVersionUID = 1L;\r
1102\r
a13899c5 1103 public void actionPerformed(ActionEvent e) {\r
1104 // TODO Auto-generated method stub\r
908b1c05 1105 String wsDir = System.getenv("WORKSPACE");\r
1106 JFileChooser chooser = new JFileChooser(wsDir);\r
a13899c5 1107 chooser.setMultiSelectionEnabled(false);\r
1108 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
1109 int retval = chooser.showOpenDialog(frame);\r
1110 if (retval == JFileChooser.APPROVE_OPTION) {\r
1111\r
1112 File theFile = chooser.getSelectedFile();\r
908b1c05 1113 String filePath = theFile.getPath();\r
1114 if (!filePath.startsWith(wsDir)) {\r
1115 JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE.");\r
1116 return;\r
1117 }\r
4da2e625 1118 jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
3658f95e 1119 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1120 docConsole.setSaved(false);\r
2b70a636 1121 initFvInFdfTable(filePath);\r
a13899c5 1122 }\r
1123 }\r
1124 \r
1125 });\r
1126 }\r
4da2e625 1127 return jButtonFdfBrowse;\r
a13899c5 1128 }\r
eb8ea829 1129 \r
72426064 1130 private void initFvAttributes () {\r
1131 if (ffc.getFvImagesFvImageCount("Attributes") == 0 && ffc.getFvImagesFvImageCount("Components") == 0) {\r
1132 return;\r
1133 }\r
1134 String[][] saa = new String[ffc.getFvImagesFvImageCount("Attributes")][2];\r
1135 ffc.getFvImagesFvImages(saa, "Attributes");\r
1136 \r
1137 int i = 0;\r
1138 while (i < saa.length) {\r
1139 fvImageParaTableModel.addRow(saa[i]);\r
1140 ++i;\r
1141 }\r
1142 \r
1143 saa = new String[ffc.getFvImagesFvImageCount("Components")][2];\r
1144 ffc.getFvImagesFvImages(saa, "Components");\r
1145 i = 0;\r
1146 while (i < saa.length) {\r
1147 fvImageParaTableModel.addRow(saa[i]);\r
1148 ++i;\r
1149 }\r
1150 \r
1151 saa = new String[ffc.getFvImagesNameValueCount()][2];\r
1152 ffc.getFvImagesNameValues(saa);\r
1153 for (int m = 0; m < saa.length; ++m) {\r
1154 fvPropertyTableModel.addRow(saa[m]);\r
1155 }\r
1156 }\r
1157 \r
eb8ea829 1158 private void initFvAdditionalTable() {\r
98c20797 1159 Vector<String> vFvNames = new Vector<String>();\r
1160 ffc.getFvImagesFvImageFvImageNames(vFvNames);\r
1161 for (int i = 0; i < vFvNames.size(); ++i) {\r
1162 String fvName = vFvNames.get(i);\r
1163 if (fvNameExists(fvName)) {\r
1164 continue;\r
1165 }\r
72426064 1166 fvAdditionalTableModel.addRow(getBasicFvInfo(fvName));\r
98c20797 1167 addTabForFv(new FvInfoFromFdf(fvName, "", ""));\r
1168 }\r
eb8ea829 1169 }\r
a13899c5 1170\r
2b70a636 1171 private void initFvInFdfTable(String fdfPath){\r
1172 Vector<FvInfoFromFdf> vFvInfo = new Vector<FvInfoFromFdf>();\r
1173 getFvInfoFromFdf(fdfPath, vFvInfo);\r
701d95b3 1174 getFlashInfoFromFdf (fdfPath);\r
1175 if (!erasePolarity.equals("1") && !erasePolarity.equals("0")) {\r
1176 JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid Erase Polarity.");\r
1177 }\r
1178 else {\r
54aa8673 1179 ffc.setTypedFvImageNameValue("Attributes", "EFI_ERASE_POLARITY", erasePolarity);\r
701d95b3 1180 }\r
1181 \r
98c20797 1182 // BugBug: assume all blocks have same size;\r
701d95b3 1183 \r
72426064 1184 String blkSize = defaultBlkSize;\r
701d95b3 1185 if (vBlockSize.size() > 0) {\r
1186 blkSize = vBlockSize.get(0);\r
1187 if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
1188 JOptionPane.showMessageDialog(frame, "FDF file does NOT contain valid FV block size. Default size 0x10000 will be used.");\r
72426064 1189 blkSize = defaultBlkSize;\r
701d95b3 1190 }\r
1191 }\r
1192 determinedFvBlockSize = blkSize;\r
98c20797 1193 \r
2b70a636 1194 getFvInFdfTableModel().setRowCount(0);\r
1195 for (int j = 0; j < vFvInfo.size(); ++j) {\r
1196 FvInfoFromFdf fvInfo = vFvInfo.get(j);\r
1197 String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()};\r
701d95b3 1198 // if FV addtional table contains the same FV from fdf file, remove that row.\r
1199 for (int k = 0; k < jTableFvAdditional.getRowCount(); ++k) {\r
1200 if (fvAdditionalTableModel.getValueAt(k, 0).equals(row[0])) {\r
1201 fvAdditionalTableModel.removeRow(k);\r
1202 }\r
1203 }\r
2b70a636 1204 getFvInFdfTableModel().addRow(row);\r
98c20797 1205 try {\r
1206 int blockSize = Integer.decode(blkSize);\r
1207 int fvSize = Integer.decode(row[1]);\r
1208 int numBlocks = fvSize/blockSize;\r
701d95b3 1209 HashMap<String, String> mOptions = new HashMap<String, String>();\r
98c20797 1210 // if no options for this FV before, generate a new options entry for this FV.\r
1211 if (ffc.getFvImagesFvImageWithName(row[0], "Options") == null) {\r
701d95b3 1212 \r
98c20797 1213 mOptions.put("EFI_BLOCK_SIZE", blkSize);\r
1214 mOptions.put("EFI_NUM_BLOCKS", numBlocks+"");\r
1215 mOptions.put("EFI_FILE_NAME", row[2]);\r
1216 ffc.genFvImagesFvImage(new String[]{row[0]}, "Options", mOptions);\r
1217 memModified = true;\r
1218 }\r
1219 else {\r
701d95b3 1220 ffc.getFvImagesFvImageOptions(row[0], mOptions);\r
1221 if (mOptions.get("EFI_BLOCK_SIZE") == null || !mOptions.get("EFI_BLOCK_SIZE").equalsIgnoreCase(blkSize)) {\r
1222 ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_BLOCK_SIZE", blkSize);\r
1223 memModified = true;\r
1224 }\r
1225 if (mOptions.get("EFI_NUM_BLOCKS") == null || Integer.decode(mOptions.get("EFI_NUM_BLOCKS")) != numBlocks) {\r
1226 ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_NUM_BLOCKS", numBlocks + "");\r
1227 memModified = true;\r
1228 }\r
1229 if (mOptions.get("EFI_FILE_NAME") == null || !mOptions.get("EFI_FILE_NAME").equals(row[2])) {\r
1230 ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_FILE_NAME", row[2]);\r
1231 memModified = true;\r
1232 }\r
1233 \r
98c20797 1234 }\r
1235 }\r
1236 catch (NumberFormatException e){\r
1237 JOptionPane.showMessageDialog(frame, e.getMessage());\r
1238 }\r
2b70a636 1239 }\r
1240\r
1241 for (int k = 0; k < vFvInfo.size(); ++k) {\r
1242 FvInfoFromFdf fvInfo = vFvInfo.get(k);\r
1243 addTabForFv(fvInfo);\r
1244 }\r
98c20797 1245 \r
2b70a636 1246 }\r
1247 \r
1248 private void addTabForFv (FvInfoFromFdf fvInfo) {\r
1249 String fvName = fvInfo.getFvName();\r
1250 String outputFile = fvInfo.getEfiFileName();\r
eb8ea829 1251 int index = jTabbedPane.indexOfTab(fvName);\r
1252 if (index >= startIndexOfDynamicTab) {\r
1253 return;\r
2b70a636 1254 }\r
1255 jTabbedPane.addTab(fvName, null, new ModuleOrderPane(fvName, outputFile), null);\r
1256 }\r
44053733 1257 /**\r
ae0d4fd2 1258 * This method initializes jTextField4 \r
44053733 1259 * \r
ae0d4fd2 1260 * @return javax.swing.JTextField \r
44053733 1261 */\r
4da2e625 1262 private JTextField getJTextFieldFvImageOptName() {\r
1263 if (jTextFieldFvImageOptName == null) {\r
1264 jTextFieldFvImageOptName = new JTextField();\r
1265 jTextFieldFvImageOptName.setEnabled(true);\r
1266 jTextFieldFvImageOptName.setPreferredSize(new Dimension(100, 20));\r
44053733 1267 }\r
4da2e625 1268 return jTextFieldFvImageOptName;\r
ae0d4fd2 1269 }\r
1270\r
1271 /**\r
1272 * This method initializes jTextField5 \r
1273 * \r
1274 * @return javax.swing.JTextField \r
1275 */\r
4da2e625 1276 private JTextField getJTextFieldFvImageOptValue() {\r
1277 if (jTextFieldFvImageOptValue == null) {\r
1278 jTextFieldFvImageOptValue = new JTextField();\r
1279 jTextFieldFvImageOptValue.setEnabled(true);\r
1280 jTextFieldFvImageOptValue.setPreferredSize(new Dimension(100, 20));\r
ae0d4fd2 1281 }\r
4da2e625 1282 return jTextFieldFvImageOptValue;\r
ae0d4fd2 1283 }\r
1284\r
1285 /**\r
1286 * This method initializes jPanel8 \r
1287 * \r
1288 * @return javax.swing.JPanel \r
1289 */\r
4da2e625 1290 private JPanel getJPanelFvImageOptsButtonGroup() {\r
1291 if (jPanelFvImageOptsButtonGroup == null) {\r
1292 jPanelFvImageOptsButtonGroup = new JPanel();\r
1293 jPanelFvImageOptsButtonGroup.setPreferredSize(new Dimension(80, 55));\r
1294 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptAdd(), null);\r
1295 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptDel(), null);\r
ae0d4fd2 1296 }\r
4da2e625 1297 return jPanelFvImageOptsButtonGroup;\r
ae0d4fd2 1298 }\r
1299\r
1300 /**\r
1301 * This method initializes jButton7 \r
1302 * \r
1303 * @return javax.swing.JButton \r
1304 */\r
4da2e625 1305 private JButton getJButtonFvImageOptAdd() {\r
1306 if (jButtonFvImageOptAdd == null) {\r
1307 jButtonFvImageOptAdd = new JButton();\r
1308 jButtonFvImageOptAdd.setEnabled(true);\r
1309 jButtonFvImageOptAdd.setText("Add");\r
1310 jButtonFvImageOptAdd.setPreferredSize(new Dimension(80, 20));\r
1311 jButtonFvImageOptAdd.addActionListener(new AbstractAction() {\r
ae0d4fd2 1312 /**\r
1313 * \r
1314 */\r
1315 private static final long serialVersionUID = 1L;\r
1316\r
1317 public void actionPerformed(ActionEvent e) {\r
4da2e625 1318 if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
54aa8673 1319 int selectedRow = jTableFvInfo.getSelectedRow();\r
1320 if (selectedRow < 0) {\r
1321 return;\r
1322 }\r
1323 \r
1324 String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
1325 String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
1326 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
1327 String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()};\r
1328 \r
1329 if (fvImagePos < 0) {\r
1330 return;\r
1331 }\r
1332 else {\r
1333 //append options to FvImage.\r
1334 ffc.setFvImagesFvImageNameValue(fvImagePos, row[0], row[1]);\r
1335 }\r
1336 docConsole.setSaved(false);\r
ae0d4fd2 1337 fvOptionTableModel.addRow(row);\r
54aa8673 1338 jTableFvImageOpts.changeSelection(jTableFvImageOpts.getRowCount() - 1, 0, false, false);\r
ae0d4fd2 1339 }\r
1340 }\r
1341 });\r
1342 }\r
4da2e625 1343 return jButtonFvImageOptAdd;\r
ae0d4fd2 1344 }\r
1345\r
1346 /**\r
1347 * This method initializes jButton8 \r
1348 * \r
1349 * @return javax.swing.JButton \r
1350 */\r
4da2e625 1351 private JButton getJButtonFvImageOptDel() {\r
1352 if (jButtonFvImageOptDel == null) {\r
1353 jButtonFvImageOptDel = new JButton();\r
1354 jButtonFvImageOptDel.setEnabled(true);\r
1355 jButtonFvImageOptDel.setText("Delete");\r
1356 jButtonFvImageOptDel.setPreferredSize(new Dimension(80, 20));\r
1357 jButtonFvImageOptDel.addActionListener(new AbstractAction() {\r
ae0d4fd2 1358 /**\r
1359 * \r
1360 */\r
1361 private static final long serialVersionUID = 1L;\r
1362\r
1363 public void actionPerformed(ActionEvent e) {\r
4da2e625 1364 if (jTableFvImageOpts.getSelectedRow() >= 0){\r
54aa8673 1365 int selectedRow = jTableFvInfo.getSelectedRow();\r
1366 if (selectedRow < 0) {\r
1367 return;\r
1368 }\r
1369 \r
1370 String fvNameList = jTableFvInfo.getValueAt(selectedRow, 0)+"";\r
1371 String type = jTableFvInfo.getValueAt(selectedRow, 1)+"";\r
1372 int fvImagePos = ffc.getFvImagePosInFvImages(fvNameList, type);\r
1373 if (fvImagePos < 0) {\r
1374 return;\r
1375 }\r
1376 \r
1377 String optName = fvOptionTableModel.getValueAt(jTableFvImageOpts.getSelectedRow(), 0)+"";\r
1378 ffc.removeFvImageNameValue(fvImagePos, optName);\r
1379 docConsole.setSaved(false);\r
1380 fvOptionTableModel.removeRow(jTableFvImageOpts.getSelectedRow());\r
ae0d4fd2 1381 }\r
1382 }\r
1383 });\r
1384 }\r
4da2e625 1385 return jButtonFvImageOptDel;\r
ae0d4fd2 1386 }\r
1387\r
1388 /**\r
1389 * This method initializes jScrollPane \r
1390 * \r
1391 * @return javax.swing.JScrollPane \r
1392 */\r
1393 private JScrollPane getJScrollPane() {\r
1394 if (jScrollPane == null) {\r
1395 jScrollPane = new JScrollPane();\r
72426064 1396 jScrollPane.setPreferredSize(new java.awt.Dimension(350,100));\r
4da2e625 1397 jScrollPane.setViewportView(getJTableFvImageOpts());\r
ae0d4fd2 1398 }\r
1399 return jScrollPane;\r
1400 }\r
1401\r
1402 /**\r
1403 * This method initializes jTable3 \r
1404 * \r
1405 * @return javax.swing.JTable \r
1406 */\r
4da2e625 1407 private JTable getJTableFvImageOpts() {\r
1408 if (jTableFvImageOpts == null) {\r
ed850fbf 1409 fvOptionTableModel = new IDefaultTableModel();\r
ae0d4fd2 1410 fvOptionTableModel.addColumn("Name");\r
1411 fvOptionTableModel.addColumn("Value");\r
4da2e625 1412 jTableFvImageOpts = new JTable(fvOptionTableModel);\r
ae0d4fd2 1413\r
4da2e625 1414 jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1415 jTableFvImageOpts.setRowHeight(20);\r
ae0d4fd2 1416 \r
1417 }\r
4da2e625 1418 return jTableFvImageOpts;\r
ae0d4fd2 1419 }\r
1420\r
1421 /**\r
1422 * This method initializes jButton9 \r
1423 * \r
1424 * @return javax.swing.JButton \r
1425 */\r
4da2e625 1426 private JButton getJButtonUpdateFvImage() {\r
1427 if (jButtonUpdateFvImage == null) {\r
1428 jButtonUpdateFvImage = new JButton();\r
72426064 1429 jButtonUpdateFvImage.setPreferredSize(new java.awt.Dimension(150,20));\r
4da2e625 1430 jButtonUpdateFvImage.setActionCommand("Update");\r
72426064 1431 jButtonUpdateFvImage.setText("Update FV Attributes");\r
1432 jButtonUpdateFvImage.setVisible(false);\r
4da2e625 1433 jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() {\r
ae0d4fd2 1434 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1435 int row = jTableFvInfo.getSelectedRow();\r
1436 if (jTableFvInfo.isEditing()) {\r
1437 jTableFvInfo.getCellEditor().stopCellEditing();\r
ae0d4fd2 1438 }\r
4da2e625 1439 if (jTableFvImageOpts.isEditing()) {\r
1440 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
ae0d4fd2 1441 }\r
1442 \r
1443 //ToDo Check data validity before update\r
1444 String name = fvImageParaTableModel.getValueAt(row, 0) + "";\r
1445 String type = fvImageParaTableModel.getValueAt(row, 1) + "";\r
1446 \r
1447 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1448 getOptionNameValue(lhm);\r
1449 \r
d6d24759 1450 docConsole.setSaved(false);\r
ae0d4fd2 1451 ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
1452 \r
1453 }\r
1454 });\r
1455 }\r
4da2e625 1456 return jButtonUpdateFvImage;\r
44053733 1457 }\r
1458\r
3658f95e 1459 /**\r
1460 * This method initializes jPanelFdfN \r
1461 * \r
1462 * @return javax.swing.JPanel \r
1463 */\r
1464 private JPanel getJPanelFdfN() {\r
1465 if (jPanelFdfN == null) {\r
1466 jPanelFdfN = new JPanel();\r
1467 jPanelFdfN.add(getJCheckBoxFdf(), null);\r
1468 jPanelFdfN.add(getJTextFieldFdf(), null);\r
1469 jPanelFdfN.add(getJButtonFdfBrowse(), null);\r
1470 }\r
1471 return jPanelFdfN;\r
1472 }\r
1473\r
1474 /**\r
1475 * This method initializes jPanelFdfS \r
1476 * \r
1477 * @return javax.swing.JPanel \r
1478 */\r
1479 private JPanel getJPanelFdfS() {\r
1480 if (jPanelFdfS == null) {\r
1481 FlowLayout flowLayout4 = new FlowLayout();\r
1482 flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT);\r
1483 jPanelFdfS = new JPanel();\r
1484 jPanelFdfS.setLayout(flowLayout4);\r
1485 jPanelFdfS.add(getJButtonAddFv(), null);\r
1486 jPanelFdfS.add(getJButtonDelFv(), null);\r
1487 jPanelFdfS.add(getJButtonAddFvOptions(), null);\r
1488 }\r
1489 return jPanelFdfS;\r
1490 }\r
1491\r
1492 /**\r
1493 * This method initializes jSplitPaneFdfC \r
1494 * \r
1495 * @return javax.swing.JSplitPane \r
1496 */\r
1497 private JSplitPane getJSplitPaneFdfC() {\r
1498 if (jSplitPaneFdfC == null) {\r
1499 jSplitPaneFdfC = new JSplitPane();\r
1500 jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
1501 jSplitPaneFdfC.setDividerSize(5);\r
1502 jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop());\r
1503 jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom());\r
1504 jSplitPaneFdfC.setDividerLocation(280);\r
1505 }\r
1506 return jSplitPaneFdfC;\r
1507 }\r
1508\r
1509 /**\r
1510 * This method initializes jPanelFdfCTop \r
1511 * \r
1512 * @return javax.swing.JPanel \r
1513 */\r
1514 private JPanel getJPanelFdfCTop() {\r
1515 if (jPanelFdfCTop == null) {\r
1516 jPanelFdfCTop = new JPanel();\r
1517 jPanelFdfCTop.setLayout(new BorderLayout());\r
1518 jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH);\r
1519 jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH);\r
1520 jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER);\r
1521 }\r
1522 return jPanelFdfCTop;\r
1523 }\r
1524\r
1525 /**\r
1526 * This method initializes jPanelFdfCBottom \r
1527 * \r
1528 * @return javax.swing.JPanel \r
1529 */\r
1530 private JPanel getJPanelFdfCBottom() {\r
1531 if (jPanelFdfCBottom == null) {\r
1532 jPanelFdfCBottom = new JPanel();\r
1533 jPanelFdfCBottom.setLayout(new BorderLayout());\r
1534 jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH);\r
1535 jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER);\r
1536 }\r
1537 return jPanelFdfCBottom;\r
1538 }\r
1539\r
1540 /**\r
1541 * This method initializes jPanelFdfCTopN \r
1542 * \r
1543 * @return javax.swing.JPanel \r
1544 */\r
1545 private JPanel getJPanelFdfCTopN() {\r
1546 if (jPanelFdfCTopN == null) {\r
1547 jLabelFvInFdf = new JLabel();\r
1548 jLabelFvInFdf.setText("FVs in Flash Definition File");\r
1549 jPanelFdfCTopN = new JPanel();\r
1550 jPanelFdfCTopN.add(jLabelFvInFdf, null);\r
1551 }\r
1552 return jPanelFdfCTopN;\r
1553 }\r
1554\r
1555 /**\r
1556 * This method initializes jPanelFdfCTopS \r
1557 * \r
1558 * @return javax.swing.JPanel \r
1559 */\r
1560 private JPanel getJPanelFdfCTopS() {\r
1561 if (jPanelFdfCTopS == null) {\r
1562 FlowLayout flowLayout1 = new FlowLayout();\r
1563 flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
1564 jPanelFdfCTopS = new JPanel();\r
1565 jPanelFdfCTopS.setLayout(flowLayout1);\r
1566 jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null);\r
1567 }\r
1568 return jPanelFdfCTopS;\r
1569 }\r
1570\r
1571 /**\r
1572 * This method initializes jPanelFdfCTopC \r
1573 * \r
1574 * @return javax.swing.JPanel \r
1575 */\r
1576 private JPanel getJPanelFdfCTopC() {\r
1577 if (jPanelFdfCTopC == null) {\r
1578 jPanelFdfCTopC = new JPanel();\r
1579 jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null);\r
1580 }\r
1581 return jPanelFdfCTopC;\r
1582 }\r
1583\r
1584 /**\r
1585 * This method initializes jPanelFdfCBottomN \r
1586 * \r
1587 * @return javax.swing.JPanel \r
1588 */\r
1589 private JPanel getJPanelFdfCBottomN() {\r
1590 if (jPanelFdfCBottomN == null) {\r
1591 jLabelFvAdditional = new JLabel();\r
1592 jLabelFvAdditional.setText("Additional FVs");\r
1593 jPanelFdfCBottomN = new JPanel();\r
1594 jPanelFdfCBottomN.add(jLabelFvAdditional, null);\r
1595 }\r
1596 return jPanelFdfCBottomN;\r
1597 }\r
1598\r
1599 /**\r
1600 * This method initializes jPanelFdfCBottomC \r
1601 * \r
1602 * @return javax.swing.JPanel \r
1603 */\r
1604 private JPanel getJPanelFdfCBottomC() {\r
1605 if (jPanelFdfCBottomC == null) {\r
1606 jPanelFdfCBottomC = new JPanel();\r
1607 jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null);\r
1608 }\r
1609 return jPanelFdfCBottomC;\r
1610 }\r
1611\r
1612 /**\r
1613 * This method initializes jScrollPaneFvInFdf \r
1614 * \r
1615 * @return javax.swing.JScrollPane \r
1616 */\r
1617 private JScrollPane getJScrollPaneFvInFdf() {\r
1618 if (jScrollPaneFvInFdf == null) {\r
1619 jScrollPaneFvInFdf = new JScrollPane();\r
1620 jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200));\r
1621 jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf());\r
1622 }\r
1623 return jScrollPaneFvInFdf;\r
1624 }\r
1625\r
1626 /**\r
1627 * This method initializes jTableFvInFdf \r
1628 * \r
1629 * @return javax.swing.JTable \r
1630 */\r
1631 private JTable getJTableFvInFdf() {\r
1632 if (jTableFvInFdf == null) {\r
1633 jTableFvInFdf = new JTable();\r
1634 jTableFvInFdf.setRowHeight(20);\r
1635 jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
1636 jTableFvInFdf.setModel(getFvInFdfTableModel());\r
1637 }\r
1638 return jTableFvInFdf;\r
1639 }\r
1640\r
1641 /**\r
1642 * This method initializes fvInFdfTableModel \r
1643 * \r
1644 * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel \r
1645 */\r
ed850fbf 1646 private IDefaultTableModel getFvInFdfTableModel() {\r
3658f95e 1647 if (fvInFdfTableModel == null) {\r
ed850fbf 1648 fvInFdfTableModel = new IDefaultTableModel();\r
3658f95e 1649 fvInFdfTableModel.addColumn("FV Name");\r
1650 fvInFdfTableModel.addColumn("Size");\r
1651 fvInFdfTableModel.addColumn("Corresponding File Name");\r
1652 }\r
1653 return fvInFdfTableModel;\r
1654 }\r
1655\r
1656 /**\r
1657 * This method initializes jButtonFvInFdfOptions \r
1658 * \r
1659 * @return javax.swing.JButton \r
1660 */\r
1661 private JButton getJButtonFvInFdfOptions() {\r
1662 if (jButtonFvInFdfOptions == null) {\r
1663 jButtonFvInFdfOptions = new JButton();\r
1664 jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
b411fc1f 1665 jButtonFvInFdfOptions.setEnabled(true);\r
3658f95e 1666 jButtonFvInFdfOptions.setText("Options");\r
1667 jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() {\r
1668 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1669 int selectedRow = jTableFvInFdf.getSelectedRow();\r
61919f8c 1670 if (selectedRow < 0) {\r
3658f95e 1671 return;\r
1672 }\r
b411fc1f 1673 String fvName = jTableFvInFdf.getValueAt(selectedRow, 0)+"";\r
72426064 1674 if (fvName.length() == 0) {\r
1675 return;\r
1676 }\r
b411fc1f 1677 DefaultTableModel dtm = getFvInFdfOptTableModel();\r
1678 new FpdFvOptions(fvName, dtm, ffc, docConsole);\r
3658f95e 1679 }\r
1680 });\r
1681 }\r
1682 return jButtonFvInFdfOptions;\r
1683 }\r
b411fc1f 1684 \r
1685 private DefaultTableModel getFvInFdfOptTableModel() {\r
1686 if (fvInFdfOptTableModel == null) {\r
1687 fvInFdfOptTableModel = new FvOptsTableModel();\r
1688 fvInFdfOptTableModel.addColumn("Name");\r
1689 fvInFdfOptTableModel.addColumn("Value");\r
1690 Vector<Object> v = new Vector<Object>();\r
1691 v.add("EFI_BLOCK_SIZE");\r
1692 v.add("EFI_NUM_BLOCKS");\r
1693 v.add("EFI_FILE_NAME");\r
1694 fvInFdfOptTableModel.setVKeyWords(v);\r
1695 fvInFdfOptTableModel.setVNonEditableName(v);\r
1696 }\r
1697 return fvInFdfOptTableModel;\r
1698 }\r
72426064 1699 \r
1700 private DefaultTableModel getFvAdditionalOptTableModel() {\r
1701 if (fvAdditionalOptTableModel == null) {\r
1702 fvAdditionalOptTableModel = new FvOptsTableModel();\r
1703 fvAdditionalOptTableModel.addColumn("Name");\r
1704 fvAdditionalOptTableModel.addColumn("Value");\r
1705 Vector<Object> v = new Vector<Object>();\r
1706 v.add("EFI_BLOCK_SIZE");\r
1707 v.add("EFI_NUM_BLOCKS");\r
1708 v.add("EFI_FILE_NAME");\r
1709 fvAdditionalOptTableModel.setVNonEditableName(v);\r
1710 }\r
1711 return fvAdditionalOptTableModel;\r
1712 }\r
3658f95e 1713\r
1714 /**\r
1715 * This method initializes jScrollPaneFvAdditional \r
1716 * \r
1717 * @return javax.swing.JScrollPane \r
1718 */\r
1719 private JScrollPane getJScrollPaneFvAdditional() {\r
1720 if (jScrollPaneFvAdditional == null) {\r
1721 jScrollPaneFvAdditional = new JScrollPane();\r
1722 jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200));\r
1723 jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional());\r
1724 }\r
1725 return jScrollPaneFvAdditional;\r
1726 }\r
1727\r
1728 /**\r
1729 * This method initializes jTableFvAdditional \r
1730 * \r
1731 * @return javax.swing.JTable \r
1732 */\r
1733 private JTable getJTableFvAdditional() {\r
1734 if (jTableFvAdditional == null) {\r
1735 jTableFvAdditional = new JTable();\r
1736 jTableFvAdditional.setRowHeight(20);\r
1737 jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);\r
98c20797 1738 jTableFvAdditional.setModel(getFvAdditionalTableModel());\r
eb8ea829 1739 \r
1740 jTableFvAdditional.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
1741 public void valueChanged(ListSelectionEvent e) {\r
1742 if (e.getValueIsAdjusting()) {\r
1743 return;\r
1744 }\r
1745 ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
1746 if (lsm.isSelectionEmpty()) {\r
1747 return;\r
1748 } else {\r
1749 selectedRowInFvAdditionalTable = lsm.getMinSelectionIndex();\r
1750 oldFvName = jTableFvAdditional.getValueAt(selectedRowInFvAdditionalTable, 0)+"";\r
1751 }\r
1752 }\r
1753 });\r
1754 \r
1755 jTableFvAdditional.getModel().addTableModelListener(new TableModelListener() {\r
1756 public void tableChanged(TableModelEvent arg0) {\r
1757 // TODO Auto-generated method stub\r
1758 int row = arg0.getFirstRow();\r
1759 int col = arg0.getColumn();\r
1760 TableModel m = (TableModel) arg0.getSource();\r
701d95b3 1761 \r
eb8ea829 1762 if (arg0.getType() == TableModelEvent.UPDATE) {\r
1763 if (col == 0) {\r
1764 String newFvName = m.getValueAt(row, 0) + "";\r
1765 if (newFvName.equals(oldFvName)) {\r
1766 return;\r
1767 }\r
1768 if (fvNameExists(newFvName)) {\r
1769 JOptionPane.showMessageDialog(frame, "This FV already exists. Please choose another FV name.");\r
1770 m.setValueAt(oldFvName, row, 0);\r
1771 return;\r
1772 }\r
1773 \r
1774 tabIndexForFv = jTabbedPane.indexOfTab(oldFvName);\r
1775 if (tabIndexForFv >= startIndexOfDynamicTab) {\r
1776 jTabbedPane.setTitleAt(tabIndexForFv, newFvName);\r
1777 // change FvName in UserExtensions\r
1778 ffc.updateBuildOptionsUserExtensions(oldFvName, newFvName);\r
1779 // change FvBinding in ModuleSA\r
1780 ffc.appendFvBindingFor(oldFvName, newFvName);\r
1781 ffc.removeFvBindingAll(oldFvName);\r
1782 // change FvImageNames in Flash\r
1783 ffc.updateFvImageNameAll(oldFvName, newFvName);\r
1784 \r
1785 } else {\r
1786 jTabbedPane.addTab(newFvName, new ModuleOrderPane(newFvName, ""));\r
1787 // Add FvImageNames in Flash\r
1788 String[] fvNames = {newFvName};\r
54aa8673 1789 ffc.addFvImageFvImageNames(fvNames);\r
eb8ea829 1790 }\r
701d95b3 1791 docConsole.setSaved(false);\r
eb8ea829 1792 oldFvName = newFvName;\r
1793 }\r
701d95b3 1794 \r
72426064 1795 if (col == 1 && !sizeFromOptionDlg) {\r
701d95b3 1796 String fvSize = m.getValueAt(row, col) + "";\r
1797 if (!DataValidation.isInt(fvSize) && !DataValidation.isHexDoubleWordDataType(fvSize)) {\r
1798 JOptionPane.showMessageDialog(frame, "FV size should be Integer or Hex format.");\r
1799 return;\r
1800 }\r
1801 HashMap<String, String> mFvOpts = new HashMap<String, String>();\r
1802 ffc.getFvImagesFvImageOptions(oldFvName, mFvOpts);\r
1803 String blkSize = mFvOpts.get("EFI_BLOCK_SIZE");\r
1804 if (blkSize == null) {\r
72426064 1805 if (determinedFvBlockSize != null) {\r
1806 blkSize = determinedFvBlockSize;\r
1807 }\r
1808 else {\r
1809 blkSize = defaultBlkSize;\r
1810 }\r
1811 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", blkSize);\r
701d95b3 1812 int fs = Integer.decode(fvSize);\r
72426064 1813 int bs = Integer.decode(blkSize);\r
701d95b3 1814 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
1815 docConsole.setSaved(false);\r
1816 }\r
1817 else {\r
1818 if (!DataValidation.isInt(blkSize) && !DataValidation.isHexDoubleWordDataType(blkSize)) {\r
1819 int retVal = JOptionPane.showConfirmDialog(frame, "Confirm", "FPD file contains error block size format. Would you like to replace it with a default value?", JOptionPane.YES_NO_OPTION);\r
1820 if (retVal == JOptionPane.YES_OPTION) {\r
72426064 1821 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_BLOCK_SIZE", defaultBlkSize);\r
701d95b3 1822 int fs = Integer.decode(fvSize);\r
72426064 1823 int bs = Integer.decode(defaultBlkSize);\r
701d95b3 1824 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
1825 docConsole.setSaved(false);\r
1826 return;\r
1827 }\r
1828 else {\r
1829 return;\r
1830 }\r
1831 \r
1832 }\r
1833 int fs = Integer.decode(fvSize);\r
1834 int bs = Integer.decode(blkSize);\r
1835 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_NUM_BLOCKS", (fs/bs)+"");\r
1836 docConsole.setSaved(false);\r
1837 }\r
1838 }\r
1839 \r
72426064 1840 if (col == 2 && !fileFromOptionDlg) {\r
701d95b3 1841 ffc.setTypedNamedFvImageNameValue(oldFvName, "Options", "EFI_FILE_NAME", m.getValueAt(row, col)+"");\r
1842 docConsole.setSaved(false);\r
1843 }\r
1844 \r
eb8ea829 1845 }\r
1846 }\r
1847 });\r
3658f95e 1848 }\r
1849 return jTableFvAdditional;\r
1850 }\r
eb8ea829 1851 \r
98c20797 1852 private boolean fvNameExistsInFvInFdfTable (String fvName) {\r
eb8ea829 1853 for (int i = 0; i < jTableFvInFdf.getRowCount(); ++i) {\r
1854 if (fvInFdfTableModel.getValueAt(i, 0).equals(fvName)) {\r
1855 return true;\r
1856 }\r
1857 }\r
98c20797 1858 return false;\r
1859 }\r
1860 \r
1861 private boolean fvNameExists (String fvName) {\r
1862 if (fvNameExistsInFvInFdfTable(fvName)) {\r
1863 return true;\r
1864 }\r
1865 \r
eb8ea829 1866 for (int j = 0; j < jTableFvAdditional.getRowCount(); ++j) {\r
98c20797 1867 if (fvAdditionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) {\r
eb8ea829 1868 return true;\r
1869 }\r
1870 }\r
1871 return false;\r
1872 }\r
3658f95e 1873\r
1874 /**\r
98c20797 1875 * This method initializes fvAdditionalTableModel \r
3658f95e 1876 * \r
1877 * @return javax.swing.table.DefaultTableModel \r
1878 */\r
98c20797 1879 private DefaultTableModel getFvAdditionalTableModel() {\r
1880 if (fvAdditionalTableModel == null) {\r
1881 fvAdditionalTableModel = new DefaultTableModel();\r
1882 fvAdditionalTableModel.addColumn("FV Name");\r
1883 fvAdditionalTableModel.addColumn("Size");\r
1884 fvAdditionalTableModel.addColumn("Corresponding File Name");\r
3658f95e 1885 }\r
98c20797 1886 return fvAdditionalTableModel;\r
3658f95e 1887 }\r
1888\r
1889 /**\r
1890 * This method initializes jButtonAddFv \r
1891 * \r
1892 * @return javax.swing.JButton \r
1893 */\r
1894 private JButton getJButtonAddFv() {\r
1895 if (jButtonAddFv == null) {\r
1896 jButtonAddFv = new JButton();\r
1897 jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20));\r
eb8ea829 1898 jButtonAddFv.setEnabled(true);\r
3658f95e 1899 jButtonAddFv.setText("New");\r
2b70a636 1900 jButtonAddFv.addActionListener(new java.awt.event.ActionListener() {\r
1901 public void actionPerformed(java.awt.event.ActionEvent e) {\r
eb8ea829 1902 if (jTableFvAdditional.isEditing()) {\r
1903 jTableFvAdditional.getCellEditor().stopCellEditing();\r
1904 }\r
1905 String[] row = {"", "", ""};\r
98c20797 1906 fvAdditionalTableModel.addRow(row);\r
2b70a636 1907 }\r
1908 });\r
3658f95e 1909 }\r
1910 return jButtonAddFv;\r
1911 }\r
1912\r
1913 /**\r
1914 * This method initializes jButtonDelFv \r
1915 * \r
1916 * @return javax.swing.JButton \r
1917 */\r
1918 private JButton getJButtonDelFv() {\r
1919 if (jButtonDelFv == null) {\r
1920 jButtonDelFv = new JButton();\r
1921 jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20));\r
98c20797 1922 jButtonDelFv.setEnabled(true);\r
3658f95e 1923 jButtonDelFv.setText("Delete");\r
2b70a636 1924 jButtonDelFv.addActionListener(new java.awt.event.ActionListener() {\r
1925 public void actionPerformed(java.awt.event.ActionEvent e) {\r
98c20797 1926 //delete row in FvAdditional table.\r
1927 int selectedRow = jTableFvAdditional.getSelectedRow();\r
1928 if (selectedRow < 0) {\r
1929 return;\r
1930 }\r
1931 String fvName = fvAdditionalTableModel.getValueAt(selectedRow, 0) + "";\r
1932 fvAdditionalTableModel.removeRow(selectedRow);\r
1933 //\r
1934 //delete tab with selected FV name.\r
1935 //\r
1936 jTabbedPane.removeTabAt(jTabbedPane.indexOfTab(fvName));\r
1937 //delete FV Name from FvImages element.\r
1938 ffc.updateFvImageNameAll(fvName, null);\r
1939 //delete FvBinding from ModuleSA.\r
1940 ffc.removeFvBindingAll(fvName);\r
1941 docConsole.setSaved(false);\r
2b70a636 1942 }\r
1943 });\r
3658f95e 1944 }\r
1945 return jButtonDelFv;\r
1946 }\r
1947\r
1948 /**\r
1949 * This method initializes jButtonAddFvOptions \r
1950 * \r
1951 * @return javax.swing.JButton \r
1952 */\r
1953 private JButton getJButtonAddFvOptions() {\r
1954 if (jButtonAddFvOptions == null) {\r
1955 jButtonAddFvOptions = new JButton();\r
1956 jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
b411fc1f 1957 jButtonAddFvOptions.setEnabled(true);\r
3658f95e 1958 jButtonAddFvOptions.setText("Options");\r
2b70a636 1959 jButtonAddFvOptions.addActionListener(new java.awt.event.ActionListener() {\r
1960 public void actionPerformed(java.awt.event.ActionEvent e) {\r
72426064 1961 int selectedRow = jTableFvAdditional.getSelectedRow();\r
1962 if (selectedRow < 0) {\r
1963 return;\r
1964 }\r
1965 String fvName = jTableFvAdditional.getValueAt(selectedRow, 0)+"";\r
1966 String oldFvSize = jTableFvAdditional.getValueAt(selectedRow, 1)+"";\r
1967 String oldFileName = jTableFvAdditional.getValueAt(selectedRow, 2)+"";\r
1968 if (fvName.length() == 0) {\r
1969 return;\r
1970 }\r
1971 DefaultTableModel dtm = getFvAdditionalOptTableModel();\r
1972 new FpdFvOptions(fvName, dtm, ffc, docConsole);\r
1973 \r
1974 String[] updatedFvInfo = getBasicFvInfo (fvName);\r
1975 if (!oldFvSize.equalsIgnoreCase(updatedFvInfo[1])) {\r
1976 sizeFromOptionDlg = true;\r
1977 jTableFvAdditional.setValueAt(updatedFvInfo[1], selectedRow, 1);\r
1978 sizeFromOptionDlg = false;\r
1979 }\r
1980 if (!oldFileName.equals(updatedFvInfo[2])) {\r
1981 fileFromOptionDlg = true;\r
1982 jTableFvAdditional.setValueAt(updatedFvInfo[2], selectedRow, 2);\r
1983 fileFromOptionDlg = false;\r
1984 }\r
2b70a636 1985 }\r
1986 });\r
3658f95e 1987 }\r
1988 return jButtonAddFvOptions;\r
1989 }\r
3658f95e 1990 \r
72426064 1991 private String[] getBasicFvInfo (String fvName) {\r
1992 HashMap<String, String> mFvOpts = new HashMap<String, String>();\r
1993 ffc.getFvImagesFvImageOptions(fvName, mFvOpts);\r
1994 String bSize = "";\r
1995 String numBlks = "";\r
1996 String fvSize = "";\r
1997 String fvFile = "";\r
1998 if (mFvOpts.get("EFI_FILE_NAME") != null) {\r
1999 fvFile = mFvOpts.get("EFI_FILE_NAME");\r
2000 }\r
2001 if (mFvOpts.get("EFI_BLOCK_SIZE") != null && mFvOpts.get("EFI_NUM_BLOCKS") != null) {\r
2002 bSize = mFvOpts.get("EFI_BLOCK_SIZE");\r
2003 numBlks = mFvOpts.get("EFI_NUM_BLOCKS");\r
2004 boolean blockSizeWellFormat = true;\r
2005 boolean numOfBlockWellFormat = true;\r
2006 if (!DataValidation.isHexDoubleWordDataType(bSize) && !DataValidation.isInt(bSize)) {\r
2007 blockSizeWellFormat = false;\r
2008 JOptionPane.showMessageDialog(frame, fvName + " block size bad format.");\r
2009 } \r
2010 if (!DataValidation.isHexDoubleWordDataType(numBlks) && !DataValidation.isInt(numBlks)) {\r
2011 numOfBlockWellFormat = false;\r
2012 JOptionPane.showMessageDialog(frame, fvName + " number of blocks bad format.");\r
2013 }\r
2014 if (blockSizeWellFormat && numOfBlockWellFormat) {\r
2015 int size = Integer.decode(bSize);\r
2016 int num = Integer.decode(numBlks);\r
2017 fvSize = "0x" + Integer.toHexString(size*num);\r
2018 }\r
2019 }\r
2020 \r
2021 return new String[]{fvName, fvSize, fvFile};\r
2022\r
2023 }\r
2024 \r
2025 /**\r
2026 * This method initializes jPanelBgFvName \r
2027 * \r
2028 * @return javax.swing.JPanel \r
2029 */\r
2030 private JPanel getJPanelBgFvName() {\r
2031 if (jPanelBgFvName == null) {\r
2032 jPanelBgFvName = new JPanel();\r
2033 jPanelBgFvName.setPreferredSize(new java.awt.Dimension(80,55));\r
54aa8673 2034 jPanelBgFvName.add(getJButtonFvNameAdd(), null);\r
2035 jPanelBgFvName.add(getJButtonFvNameDel(), null);\r
72426064 2036 }\r
2037 return jPanelBgFvName;\r
2038 }\r
2039\r
2040 /**\r
2041 * This method initializes jPanelBgFvImage \r
2042 * \r
2043 * @return javax.swing.JPanel \r
2044 */\r
2045 private JPanel getJPanelBgFvImage() {\r
2046 if (jPanelBgFvImage == null) {\r
2047 jPanelBgFvImage = new JPanel();\r
2048 jPanelBgFvImage.setPreferredSize(new java.awt.Dimension(150,100));\r
2049 jPanelBgFvImage.add(getJButtonAddFvImage(), null);\r
2050 jPanelBgFvImage.add(getJButtonDelFvImage(), null);\r
2051 jPanelBgFvImage.add(getJButtonUpdateFvImage(), null);\r
2052 }\r
2053 return jPanelBgFvImage;\r
2054 }\r
2055\r
2056 /**\r
2057 * This method initializes jPanelW \r
2058 * \r
2059 * @return javax.swing.JPanel \r
2060 */\r
2061 private JPanel getJPanelW() {\r
2062 if (jPanelW == null) {\r
2063 jPanelW = new JPanel();\r
2064 jPanelW.add(getJPanelBgFvImage(), null);\r
2065 }\r
2066 return jPanelW;\r
2067 }\r
2068\r
31095724 2069 /**\r
2070 * This method initializes jPanelFvImageParaN \r
2071 * \r
2072 * @return javax.swing.JPanel \r
2073 */\r
2074 private JPanel getJPanelFvImageParaN() {\r
2075 if (jPanelFvImageParaN == null) {\r
2076 FlowLayout flowLayout3 = new FlowLayout();\r
2077 flowLayout3.setAlignment(java.awt.FlowLayout.CENTER);\r
2078 jPanelFvImageParaN = new JPanel();\r
2079 jPanelFvImageParaN.setLayout(flowLayout3);\r
2080 jPanelFvImageParaN.add(new StarLabel(), null);\r
2081 jPanelFvImageParaN.add(jLabelFvImageNames, null);\r
2082 jPanelFvImageParaN.add(jLabelFvParaName, null);\r
2083 jPanelFvImageParaN.add(getJTextFieldFvParaName(), null);\r
2084 }\r
2085 return jPanelFvImageParaN;\r
2086 }\r
2087\r
2088 /**\r
2089 * This method initializes jPanelFvImageParaS \r
2090 * \r
2091 * @return javax.swing.JPanel \r
2092 */\r
2093 private JPanel getJPanelFvImageParaS() {\r
2094 if (jPanelFvImageParaS == null) {\r
2095 FlowLayout flowLayout6 = new FlowLayout();\r
2096 flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);\r
2097 jPanelFvImageParaS = new JPanel();\r
2098 jPanelFvImageParaS.setLayout(flowLayout6);\r
2099 jPanelFvImageParaS.add(jLabelFvParaType, null);\r
2100 jPanelFvImageParaS.add(getJComboBoxFvParaType(), null);\r
2101 }\r
2102 return jPanelFvImageParaS;\r
2103 }\r
2104\r
2105 /**\r
2106 * This method initializes jPanelFvImageParaC \r
2107 * \r
2108 * @return javax.swing.JPanel \r
2109 */\r
2110 private JPanel getJPanelFvImageParaC() {\r
2111 if (jPanelFvImageParaC == null) {\r
2112 jPanelFvImageParaC = new JPanel();\r
2113 jPanelFvImageParaC.add(getJScrollPaneFvImageNames(), null);\r
2114 jPanelFvImageParaC.add(getJPanelBgFvName(), null);\r
2115 }\r
2116 return jPanelFvImageParaC;\r
2117 }\r
2118\r
2119 /**\r
2120 * This method initializes jPanelFvImageOptsN \r
2121 * \r
2122 * @return javax.swing.JPanel \r
2123 */\r
2124 private JPanel getJPanelFvImageOptsN() {\r
2125 if (jPanelFvImageOptsN == null) {\r
2126 jPanelFvImageOptsN = new JPanel();\r
2127 jPanelFvImageOptsN.add(jLabelOptions, null);\r
2128 jPanelFvImageOptsN.add(jLabelFvImageOptName, null);\r
2129 jPanelFvImageOptsN.add(getJTextFieldFvImageOptName(), null);\r
2130 jPanelFvImageOptsN.add(jLabelFvImageOptValue, null);\r
2131 jPanelFvImageOptsN.add(getJTextFieldFvImageOptValue(), null);\r
2132 }\r
2133 return jPanelFvImageOptsN;\r
2134 }\r
2135\r
2136 /**\r
2137 * This method initializes jPanelFvImageOptsS \r
2138 * \r
2139 * @return javax.swing.JPanel \r
2140 */\r
2141 private JPanel getJPanelFvImageOptsS() {\r
2142 if (jPanelFvImageOptsS == null) {\r
2143 jPanelFvImageOptsS = new JPanel();\r
2144 }\r
2145 return jPanelFvImageOptsS;\r
2146 }\r
2147\r
2148 /**\r
2149 * This method initializes jPanelFvImageOptsC \r
2150 * \r
2151 * @return javax.swing.JPanel \r
2152 */\r
2153 private JPanel getJPanelFvImageOptsC() {\r
2154 if (jPanelFvImageOptsC == null) {\r
2155 jPanelFvImageOptsC = new JPanel();\r
2156 jPanelFvImageOptsC.add(getJScrollPane(), null);\r
2157 jPanelFvImageOptsC.add(getJPanelFvImageOptsButtonGroup(), null);\r
2158 }\r
2159 return jPanelFvImageOptsC;\r
2160 }\r
2161\r
a13899c5 2162 /**\r
2163 * @param args\r
2164 */\r
2165 public static void main(String[] args) {\r
2166 // TODO Auto-generated method stub\r
2167 new FpdFlash().setVisible(true);\r
2168 }\r
2169\r
2170 /**\r
2171 * This method initializes this\r
2172 * \r
2173 * @return void\r
2174 */\r
2175 private void initialize() {\r
72426064 2176 this.setSize(660, 650);\r
a13899c5 2177 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
2178 this.setContentPane(getJContentPane());\r
2179 this.setTitle("FPD Flash Definitions");\r
44053733 2180 this.addInternalFrameListener(new InternalFrameAdapter(){\r
2181 public void internalFrameDeactivated(InternalFrameEvent e){\r
4da2e625 2182 if (jTableFvProp.isEditing()) {\r
2183 jTableFvProp.getCellEditor().stopCellEditing();\r
44053733 2184 }\r
4da2e625 2185 if (jTableFvImageNames.isEditing()) {\r
2186 jTableFvImageNames.getCellEditor().stopCellEditing();\r
44053733 2187 }\r
4da2e625 2188 if (jTableFvInfo.isEditing()) {\r
2189 jTableFvInfo.getCellEditor().stopCellEditing();\r
44053733 2190 }\r
98c20797 2191 if (jTableFvAdditional.isEditing()) {\r
2192 jTableFvAdditional.getCellEditor().stopCellEditing();\r
2193 }\r
44053733 2194 }\r
2195 });\r
a13899c5 2196 }\r
2197\r
2198 private void init(FpdFileContents ffc) {\r
72426064 2199 initFvAttributes();\r
3658f95e 2200 \r
2201 jTextFieldFdf.setText("");\r
2202 String fdfFile = ffc.getFlashDefinitionFile();\r
701d95b3 2203 if (fdfFile != null && fdfFile.length() > 0) {\r
3658f95e 2204 jTextFieldFdf.setText(fdfFile);\r
701d95b3 2205 String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile;\r
2206 initFvInFdfTable(fdfPath);\r
3658f95e 2207 }\r
2208 \r
eb8ea829 2209 initFvAdditionalTable();\r
a13899c5 2210 }\r
2211 \r
ae0d4fd2 2212 private void getOptionNameValue(Map<String, String> m){\r
4da2e625 2213 for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) {\r
ae0d4fd2 2214 m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
a13899c5 2215 }\r
2216 }\r
2217 /**\r
2218 * This method initializes jContentPane\r
2219 * \r
2220 * @return javax.swing.JPanel\r
2221 */\r
2222 private JPanel getJContentPane() {\r
2223 if (jContentPane == null) {\r
2224 jContentPane = new JPanel();\r
2225 jContentPane.setLayout(new BorderLayout());\r
4da2e625 2226 jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
2227 jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
2228 jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
2229 jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
a13899c5 2230 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
2231 }\r
2232 return jContentPane;\r
2233 }\r
3658f95e 2234 \r
701d95b3 2235 private void getFlashInfoFromFdf (String fdfPath) {\r
98c20797 2236 File fdf = new File(fdfPath);\r
2237 if (!fdf.exists()) {\r
2238 return;\r
2239 }\r
2240 int lines = 0;\r
2241\r
2242 try {\r
2243 FileReader reader = new FileReader(fdf);\r
2244 BufferedReader in = new BufferedReader(reader);\r
2245 String str;\r
2246\r
2247 while ((str = in.readLine()) != null) {\r
2248 ++lines;\r
2249 str = str.trim();\r
2250 //\r
2251 // skip empty line, comment (start with //) \r
2252 //\r
2253 if (str.length() == 0 || str.startsWith("//")) {\r
2254 continue;\r
2255 }\r
2256 //\r
2257 // ErasePolarity\r
2258 //\r
2259 if (str.startsWith("ErasePolarity")) {\r
701d95b3 2260 erasePolarity = str.substring(str.indexOf("=") + 1, str.lastIndexOf(",")).trim();\r
98c20797 2261 }\r
2262 //\r
2263 // dig into Block section.\r
2264 //\r
2265 if (str.startsWith("Block") && str.endsWith("}")) {\r
2266 String[] blockSec = str.split(",");\r
2267 String nv = blockSec[1].trim();\r
2268 String[] sizeSec = nv.split("=");\r
2269 vBlockSize.add(sizeSec[1].trim());\r
2270 }\r
2271 \r
2272 }\r
2273 \r
2274 reader.close();\r
2275 in.close();\r
2276 }\r
2277 catch (Exception e) {\r
2278 \r
2279 }\r
2280 }\r
2281 \r
3658f95e 2282 private void getFvInfoFromFdf(String fdfPath, Vector<FvInfoFromFdf> vFvInfo) {\r
2283 File fdf = new File(fdfPath);\r
2284 if (!fdf.exists()) {\r
2285 return;\r
2286 }\r
2287 int lines = 0;\r
2288\r
2289 try {\r
2290 FileReader reader = new FileReader(fdf);\r
2291 BufferedReader in = new BufferedReader(reader);\r
2292 String str;\r
2293\r
2294 while ((str = in.readLine()) != null) {\r
2295 ++lines;\r
2296 str = str.trim();\r
2297 //\r
2298 // skip empty line, comment (start with //) \r
2299 //\r
2300 if (str.length() == 0 || str.startsWith("//")) {\r
2301 continue;\r
2302 }\r
2303 //\r
2304 // dig into Region {} section, create FvInfoFromFdf object for it.\r
2305 //\r
2306 if (str.startsWith("Region") && str.endsWith("{")) {\r
2307 FvInfoFromFdf fvInfo = new FvInfoFromFdf();\r
2308 boolean nameFound = false;\r
2309 boolean sizeFound = false;\r
2310 while ((str = in.readLine()) != null) {\r
2311 ++lines;\r
2312 str = str.trim();\r
2313 //\r
2314 // skip empty line, comment (start with //) \r
2315 //\r
2316 if (str.length() == 0 || str.startsWith("//")) {\r
2317 continue;\r
2318 }\r
2319 \r
2320 if (str.startsWith("Name")) {\r
2321 int firstQuote = str.indexOf("\"");\r
2322 int lastQuote = str.lastIndexOf("\"");\r
2323 fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote));\r
2324 nameFound = true;\r
2325 }\r
2326 \r
2327 if (str.startsWith("Size")) {\r
2328 int equalIndex = str.indexOf("=");\r
2329 int commaIndex = str.indexOf(",");\r
2330 fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim());\r
2331 sizeFound = true;\r
2332 }\r
2333 \r
2334 if (nameFound && sizeFound) {\r
2335 break;\r
2336 }\r
2337 }\r
2338 \r
2339 vFvInfo.add(fvInfo);\r
2340 }\r
2341 //\r
2342 // dig into File {} section, supply file name information to existing FvInfoFromFdf object.\r
2343 //\r
2344 if (str.startsWith("File")) {\r
2345 boolean fileNameFound = false;\r
2346 boolean fvFound = false;\r
2347 String fileName = "";\r
2348 String fvName = "";\r
2349 while ((str = in.readLine()) != null) {\r
2350 ++lines;\r
2351 str = str.trim();\r
2352 //\r
2353 // skip empty line, comment (start with //) \r
2354 //\r
2355 if (str.length() == 0 || str.startsWith("//")) {\r
2356 continue;\r
2357 }\r
2358 \r
2359 if (str.startsWith("Name")) {\r
2360 int firstQuote = str.indexOf("\"");\r
2361 int lastQuote = str.lastIndexOf("\"");\r
2362 fileName = str.substring(firstQuote + 1, lastQuote);\r
2363 fileNameFound = true;\r
2364 }\r
2365 \r
2366 if (str.startsWith("Region")) {\r
2367 int firstQuote = str.indexOf("\"");\r
2368 int lastQuote = str.lastIndexOf("\"");\r
2369 fvName = str.substring(firstQuote + 1, lastQuote);\r
2370 fvFound = true;\r
2371 }\r
2372 \r
2373 if (fileNameFound && fvFound) {\r
2374 break;\r
2375 }\r
2376 }\r
2377 \r
2378 for (int i = 0; i <vFvInfo.size(); ++i) {\r
2379 if (vFvInfo.get(i).getFvName().equals(fvName)) {\r
2380 vFvInfo.get(i).setEfiFileName(fileName);\r
2381 }\r
2382 }\r
2383 }\r
2384 \r
2385 }\r
2b70a636 2386 \r
2387 reader.close();\r
2388 in.close();\r
2389 }\r
2390 catch (Exception e) {\r
3658f95e 2391 \r
2392 }\r
2393\r
2394 }\r
17bd391e 2395 \r
2396// class ModuleSAInfo {\r
2397// private int rowNumber = -1;\r
2398// private String moduleGuid = null;\r
2399// private String moduleVersion = null;\r
2400// private String packageGuid = null;\r
2401// private String packageVersion = null;\r
2402// private String arch = null;\r
2403// \r
2404// public ModuleSAInfo (String mg, String mv, String pg, String pv, String a) {\r
2405// moduleGuid = mg;\r
2406// moduleVersion = mv;\r
2407// packageGuid = pg;\r
2408// packageVersion = pv;\r
2409// arch = a;\r
2410// }\r
2411//\r
2412// /**\r
2413// * @return Returns the arch.\r
2414// */\r
2415// public String getArch() {\r
2416// return arch;\r
2417// }\r
2418//\r
2419// /**\r
2420// * @param arch The arch to set.\r
2421// */\r
2422// public void setArch(String arch) {\r
2423// this.arch = arch;\r
2424// }\r
2425//\r
2426// /**\r
2427// * @return Returns the moduleGuid.\r
2428// */\r
2429// public String getModuleGuid() {\r
2430// return moduleGuid;\r
2431// }\r
2432//\r
2433// /**\r
2434// * @param moduleGuid The moduleGuid to set.\r
2435// */\r
2436// public void setModuleGuid(String moduleGuid) {\r
2437// this.moduleGuid = moduleGuid;\r
2438// }\r
2439//\r
2440// /**\r
2441// * @return Returns the moduleVersion.\r
2442// */\r
2443// public String getModuleVersion() {\r
2444// return moduleVersion;\r
2445// }\r
2446//\r
2447// /**\r
2448// * @param moduleVersion The moduleVersion to set.\r
2449// */\r
2450// public void setModuleVersion(String moduleVersion) {\r
2451// this.moduleVersion = moduleVersion;\r
2452// }\r
2453//\r
2454// /**\r
2455// * @return Returns the packageGuid.\r
2456// */\r
2457// public String getPackageGuid() {\r
2458// return packageGuid;\r
2459// }\r
2460//\r
2461// /**\r
2462// * @param packageGuid The packageGuid to set.\r
2463// */\r
2464// public void setPackageGuid(String packageGuid) {\r
2465// this.packageGuid = packageGuid;\r
2466// }\r
2467//\r
2468// /**\r
2469// * @return Returns the packageVersion.\r
2470// */\r
2471// public String getPackageVersion() {\r
2472// return packageVersion;\r
2473// }\r
2474//\r
2475// /**\r
2476// * @param packageVersion The packageVersion to set.\r
2477// */\r
2478// public void setPackageVersion(String packageVersion) {\r
2479// this.packageVersion = packageVersion;\r
2480// }\r
2481//\r
2482// /**\r
2483// * @return Returns the rowNumber.\r
2484// */\r
2485// public int getRowNumber() {\r
2486// return rowNumber;\r
2487// }\r
2488//\r
2489// /**\r
2490// * @param rowNumber The rowNumber to set.\r
2491// */\r
2492// public void setRowNumber(int rowNumber) {\r
2493// this.rowNumber = rowNumber;\r
2494// }\r
2495// }\r
2496 \r
61919f8c 2497 private class ModuleOrderPane extends JPanel {\r
2498\r
2499 /**\r
2500 * \r
2501 */\r
2502 private static final long serialVersionUID = 1L;\r
2503 private JPanel jPanelModOrderN = null;\r
2504 private JPanel jPanelModOrderS = null;\r
2505 private JPanel jPanelModOrderC = null;\r
2506 private JScrollPane jScrollPaneModInFv = null;\r
2507 private JTable jTableModInFv = null;\r
2508 private JPanel jPanelController = null;\r
2509 private JScrollPane jScrollPaneFpdModules = null;\r
2510 private JTable jTableFpdModules = null;\r
2511 private JButton jButtonUp = null;\r
2512 private JButton jButtonInsert = null;\r
2513 private JButton jButtonRemove = null;\r
2514 private JButton jButtonDown = null;\r
2515 private JButton jButtonOk = null;\r
2516 private JButton jButtonCancel = null;\r
ed850fbf 2517 private IDefaultTableModel modInFvTableModel = null;\r
2518 private IDefaultTableModel fpdModTableModel = null;\r
17bd391e 2519// private ArrayList<ModuleSAInfo> listTableModInFvModuleSAInfo = null;\r
2520// private ArrayList<ModuleSAInfo> listTableFpdModulesModuleSAInfo = null;\r
2b70a636 2521 private String title = null;\r
2522 private String outputFileName = null;\r
61919f8c 2523 \r
2b70a636 2524 public ModuleOrderPane(String tabTitle, String file) {\r
61919f8c 2525 super(new BorderLayout());\r
2b70a636 2526 title = tabTitle;\r
2527 outputFileName = file;\r
17bd391e 2528// listTableModInFvModuleSAInfo = new ArrayList<ModuleSAInfo>();\r
2529// listTableFpdModulesModuleSAInfo = new ArrayList<ModuleSAInfo>();\r
61919f8c 2530 add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH);\r
2531 add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH);\r
2532 add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER);\r
2b70a636 2533 showModulesInFv(title);\r
2534 showAllModulesInPlatform();\r
61919f8c 2535 }\r
2536 \r
2537 private void showModulesInFv(String fvName) {\r
2538 int size = ffc.getUserExtsIncModCount(fvName);\r
2539 \r
2540 if (size != -1) {\r
17bd391e 2541 String[][] saa = new String[size][5];\r
61919f8c 2542 ffc.getUserExtsIncMods(fvName, saa);\r
2543\r
2544 for (int i = 0; i < size; ++i) {\r
17bd391e 2545 String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
2546 ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
2547 String name = "N/A";\r
2548 if (mi != null) {\r
2549 name = mi.getName();\r
2550 }\r
a0783edc 2551 \r
17bd391e 2552 String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
61919f8c 2553 modInFvTableModel.addRow(row);\r
2554 }\r
2555 }\r
2556 //\r
2557 // From ModuleSAs, get module guids with FvBinding = fvName.\r
2558 //\r
17bd391e 2559 Vector<String[]> vModuleSA = new Vector<String[]>();\r
2560 ffc.getFrameworkModuleSAByFvBinding(fvName, vModuleSA);\r
61919f8c 2561 //\r
2562 // If BuildOptions->UserExtensions already contain these module info,\r
2563 // no need to add them into table again.\r
2564 //\r
17bd391e 2565 Iterator<String[]> iter = vModuleSA.iterator();\r
61919f8c 2566 while (iter.hasNext()){\r
17bd391e 2567 String[] sa = iter.next();\r
2568 if (!moduleInfoInTable (sa, modInFvTableModel)) {\r
2569 String moduleKey = sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3];\r
2570 ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
2571 String name = "N/A";\r
2572 if (mi != null) {\r
2573 name = mi.getName();\r
2574 }\r
2575 String[] row = { name, sa[0] , sa[1], sa[2] , sa[3], sa[4] };\r
2b70a636 2576 modInFvTableModel.addRow(row);\r
61919f8c 2577 }\r
2578 }\r
2b70a636 2579\r
61919f8c 2580 }\r
2581 \r
2582 private void showAllModulesInPlatform() {\r
2583 int size = ffc.getFrameworkModulesCount();\r
2584 String[][] saa = new String[size][5];\r
2585 ffc.getFrameworkModulesInfo(saa);\r
2586 \r
2587 for (int i = 0; i < size; ++i) {\r
17bd391e 2588 if (moduleInfoInTable(saa[i], modInFvTableModel) || moduleInfoInTable(saa[i], fpdModTableModel)) {\r
61919f8c 2589 continue;\r
2590 }\r
17bd391e 2591 String moduleKey = saa[i][0] + " " + saa[i][1] + " " + saa[i][2] + " " + saa[i][3];\r
2592 ModuleIdentification mi = WorkspaceProfile.getModuleId(moduleKey);\r
2593 String name = "N/A";\r
2594 if (mi != null) {\r
2595 name = mi.getName();\r
2596 }\r
2597 String[] row = { name, saa[i][0] , saa[i][1], saa[i][2] , saa[i][3], saa[i][4] };\r
61919f8c 2598 fpdModTableModel.addRow(row);\r
2599 }\r
2600 \r
2601 TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
2602 sorter.setSortState(0, TableSorter.ASCENDING);\r
2603 }\r
2604 \r
61919f8c 2605 \r
17bd391e 2606 private boolean moduleInfoInTable (String[] moduleInfo, DefaultTableModel model) {\r
2607 boolean matched = false;\r
61919f8c 2608 int size = model.getDataVector().size();\r
2609 for (int i = 0; i < size; ++i) {\r
17bd391e 2610 Vector rowData = (Vector)model.getDataVector().elementAt(i);\r
2611 for (int j = 1; j < rowData.size(); ++j) {\r
2612 if (rowData.elementAt(j) == null && moduleInfo[j-1] == null) {\r
2613 matched = true;\r
2614 }\r
2615 else if (rowData.elementAt(j).equals("null") && moduleInfo[j-1] == null) {\r
2616 matched = true;\r
2617 }\r
2618 else if (rowData.elementAt(j) == null && moduleInfo[j-1].equals("null")) {\r
2619 matched = true;\r
2620 }\r
2621 else if (rowData.elementAt(j) != null && rowData.elementAt(j).toString().equalsIgnoreCase(moduleInfo[j-1])) {\r
2622 matched = true;\r
2623 }\r
2624 else {\r
2625 matched = false;\r
2626 break;\r
2627 }\r
2628 }\r
2629 \r
2630 if (matched) {\r
61919f8c 2631 return true;\r
2632 }\r
17bd391e 2633 \r
61919f8c 2634 }\r
2635 return false;\r
2636 }\r
2637 \r
2b70a636 2638 \r
2639 \r
61919f8c 2640 /**\r
2641 * This method initializes jPanelModOrderN \r
2642 * \r
2643 * @return javax.swing.JPanel \r
2644 */\r
2645 private JPanel getJPanelModOrderN() {\r
2646 if (jPanelModOrderN == null) {\r
2647 jPanelModOrderN = new JPanel();\r
2648 }\r
2649 return jPanelModOrderN;\r
2650 }\r
2651\r
2652 /**\r
2653 * This method initializes jPanelModOrderS \r
2654 * \r
2655 * @return javax.swing.JPanel \r
2656 */\r
2657 private JPanel getJPanelModOrderS() {\r
2658 if (jPanelModOrderS == null) {\r
2659 FlowLayout flowLayout6 = new FlowLayout();\r
2660 flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT);\r
2661 jPanelModOrderS = new JPanel();\r
2662 jPanelModOrderS.setLayout(flowLayout6);\r
2663 jPanelModOrderS.add(getJButtonOk(), null);\r
2664 jPanelModOrderS.add(getJButtonCancel(), null);\r
2665 }\r
2666 return jPanelModOrderS;\r
2667 }\r
2668\r
2669 /**\r
2670 * This method initializes jPanelModOrderC \r
2671 * \r
2672 * @return javax.swing.JPanel \r
2673 */\r
2674 private JPanel getJPanelModOrderC() {\r
2675 if (jPanelModOrderC == null) {\r
2676 jPanelModOrderC = new JPanel();\r
2677 jPanelModOrderC.add(getJScrollPaneModInFv(), null);\r
2678 jPanelModOrderC.add(getJPanelController(), null);\r
2679 jPanelModOrderC.add(getJScrollPaneFpdModules(), null);\r
2680 }\r
2681 return jPanelModOrderC;\r
2682 }\r
2683\r
2684 /**\r
2685 * This method initializes jScrollPaneModInFv \r
2686 * \r
2687 * @return javax.swing.JScrollPane \r
2688 */\r
2689 private JScrollPane getJScrollPaneModInFv() {\r
2690 if (jScrollPaneModInFv == null) {\r
2691 jScrollPaneModInFv = new JScrollPane();\r
2692 jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(200,500));\r
2693 jScrollPaneModInFv.setViewportView(getJTableModInFv());\r
2694 }\r
2695 return jScrollPaneModInFv;\r
2696 }\r
2697\r
2698 /**\r
2699 * This method initializes jTableModInFv \r
2700 * \r
2701 * @return javax.swing.JTable \r
2702 */\r
2703 private JTable getJTableModInFv() {\r
2704 if (jTableModInFv == null) {\r
ed850fbf 2705 modInFvTableModel = new IDefaultTableModel();\r
17bd391e 2706 \r
2707 jTableModInFv = new JTable(modInFvTableModel){\r
2708 /**\r
2709 * \r
2710 */\r
2711 private static final long serialVersionUID = 4903583933542581721L;\r
2712\r
2713 public String getToolTipText(MouseEvent e) {\r
2714 String tip = null;\r
2715 java.awt.Point p = e.getPoint();\r
2716 int rowIndex = rowAtPoint(p);\r
2717// int colIndex = columnAtPoint(p);\r
2718// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
2719\r
2720 TableModel model = getModel();\r
2721 String mg = (String) model.getValueAt(rowIndex, 1);\r
2722 String mv = (String) model.getValueAt(rowIndex, 2);\r
2723 String pg = (String) model.getValueAt(rowIndex, 3);\r
2724 String pv = (String) model.getValueAt(rowIndex, 4);\r
2725 String arch = (String) model.getValueAt(rowIndex, 5);\r
2726 ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
2727 if (mi != null) {\r
2728 tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
2729 }\r
2730 else {\r
2731 tip = "No Module Path Information."; \r
2732 }\r
2733 \r
2734 return tip;\r
2735 }\r
2736\r
2737 };\r
61919f8c 2738 modInFvTableModel.addColumn("Module Orders in FV");\r
17bd391e 2739 modInFvTableModel.addColumn("mg");\r
2740 modInFvTableModel.addColumn("mv");\r
2741 modInFvTableModel.addColumn("pg");\r
2742 modInFvTableModel.addColumn("pv");\r
2743 modInFvTableModel.addColumn("arch");\r
2744 \r
2745 for (int i = 1; i < 6; ++i) {\r
2746 jTableModInFv.removeColumn(jTableModInFv.getColumnModel().getColumn(jTableModInFv.getColumnCount()-1));\r
2747 }\r
2748 \r
61919f8c 2749 jTableModInFv.setRowHeight(20);\r
2750 jTableModInFv.setShowGrid(false);\r
423ba71f 2751 jTableModInFv.setAutoCreateColumnsFromModel(false);\r
17bd391e 2752 jTableModInFv.addMouseListener(new MouseAdapter() {\r
2753\r
2754 /* (non-Javadoc)\r
2755 * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
2756 */\r
2757 @Override\r
2758 public void mouseClicked(MouseEvent arg0) {\r
2759 if (arg0.getButton() == MouseEvent.BUTTON3) {\r
2760 java.awt.Point p = arg0.getPoint();\r
2761 int rowIndex = jTableModInFv.rowAtPoint(p);\r
2762 TableModel model = jTableModInFv.getModel();\r
2763 String mg = (String) model.getValueAt(rowIndex, 1);\r
2764 String mv = (String) model.getValueAt(rowIndex, 2);\r
2765 String pg = (String) model.getValueAt(rowIndex, 3);\r
2766 String pv = (String) model.getValueAt(rowIndex, 4);\r
2767 ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
2768 String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
2769 if (mi != null) {\r
2770 details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
2771 }\r
2772 JOptionPane.showMessageDialog(frame, details);\r
2773 }\r
2774 }\r
2775 \r
2776 });\r
61919f8c 2777 }\r
2778 return jTableModInFv;\r
2779 }\r
2780\r
2781 /**\r
2782 * This method initializes jPanelController \r
2783 * \r
2784 * @return javax.swing.JPanel \r
2785 */\r
2786 private JPanel getJPanelController() {\r
2787 if (jPanelController == null) {\r
2788 FlowLayout flowLayout5 = new FlowLayout();\r
2789 flowLayout5.setVgap(50);\r
2790 flowLayout5.setHgap(50);\r
2791 jPanelController = new JPanel();\r
2792 jPanelController.setLayout(flowLayout5);\r
2793 jPanelController.setPreferredSize(new java.awt.Dimension(150,500));\r
2794 jPanelController.add(getJButtonUp(), null);\r
2795 jPanelController.add(getJButtonInsert(), null);\r
2796 jPanelController.add(getJButtonRemove(), null);\r
2797 jPanelController.add(getJButtonDown(), null);\r
2798 }\r
2799 return jPanelController;\r
2800 }\r
2801\r
2802 /**\r
2803 * This method initializes jScrollPaneFpdModules \r
2804 * \r
2805 * @return javax.swing.JScrollPane \r
2806 */\r
2807 private JScrollPane getJScrollPaneFpdModules() {\r
2808 if (jScrollPaneFpdModules == null) {\r
2809 jScrollPaneFpdModules = new JScrollPane();\r
2810 jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(200,500));\r
2811 jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
2812 }\r
2813 return jScrollPaneFpdModules;\r
2814 }\r
2815\r
2816 /**\r
2817 * This method initializes jTableFpdModules \r
2818 * \r
2819 * @return javax.swing.JTable \r
2820 */\r
2821 private JTable getJTableFpdModules() {\r
2822 if (jTableFpdModules == null) {\r
ed850fbf 2823 fpdModTableModel = new IDefaultTableModel();\r
61919f8c 2824 TableSorter sorter = new TableSorter(fpdModTableModel);\r
17bd391e 2825 jTableFpdModules = new JTable(sorter){\r
2826 /**\r
2827 * \r
2828 */\r
2829 private static final long serialVersionUID = -4666296888377637808L;\r
2830\r
2831 public String getToolTipText(MouseEvent e) {\r
2832 String tip = null;\r
2833 java.awt.Point p = e.getPoint();\r
2834 int rowIndex = rowAtPoint(p);\r
2835// int colIndex = columnAtPoint(p);\r
2836// int realColumnIndex = convertColumnIndexToModel(colIndex);\r
2837\r
2838 TableModel model = getModel();\r
2839 String mg = (String) model.getValueAt(rowIndex, 1);\r
2840 String mv = (String) model.getValueAt(rowIndex, 2);\r
2841 String pg = (String) model.getValueAt(rowIndex, 3);\r
2842 String pv = (String) model.getValueAt(rowIndex, 4);\r
2843 String arch = (String) model.getValueAt(rowIndex, 5);\r
2844 ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
2845 if (mi != null) {\r
2846 tip = "Path: " + mi.getPath() + "; Arch: " + arch + ";";\r
2847 }\r
2848 else {\r
2849 tip = "No Module Path Information."; \r
2850 }\r
2851 \r
2852 return tip;\r
2853 }\r
2854\r
2855 };\r
2856 \r
2857 fpdModTableModel.addColumn("Modules in Platform");\r
2858 fpdModTableModel.addColumn("mg");\r
2859 fpdModTableModel.addColumn("mv");\r
2860 fpdModTableModel.addColumn("pg");\r
2861 fpdModTableModel.addColumn("pv");\r
2862 fpdModTableModel.addColumn("arch");\r
2863 \r
2864 for (int i = 1; i < 6; ++i) {\r
2865 jTableFpdModules.removeColumn(jTableFpdModules.getColumnModel().getColumn(jTableFpdModules.getColumnCount()-1));\r
2866 }\r
61919f8c 2867 jTableFpdModules.setRowHeight(20);\r
2868 jTableFpdModules.setShowGrid(false);\r
423ba71f 2869 jTableFpdModules.setAutoCreateColumnsFromModel(false);\r
17bd391e 2870 jTableFpdModules.addMouseListener(new MouseAdapter() {\r
2871\r
2872 /* (non-Javadoc)\r
2873 * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)\r
2874 */\r
2875 @Override\r
2876 public void mouseClicked(MouseEvent arg0) {\r
2877 if (arg0.getButton() == MouseEvent.BUTTON3) {\r
2878 java.awt.Point p = arg0.getPoint();\r
2879 int rowIndex = jTableFpdModules.rowAtPoint(p);\r
2880 TableModel model = jTableFpdModules.getModel();\r
2881 String mg = (String) model.getValueAt(rowIndex, 1);\r
2882 String mv = (String) model.getValueAt(rowIndex, 2);\r
2883 String pg = (String) model.getValueAt(rowIndex, 3);\r
2884 String pv = (String) model.getValueAt(rowIndex, 4);\r
2885 ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
2886 String details = "PackageGuid: " + pg + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
2887 if (mi != null) {\r
2888 details = "In Package " + mi.getPackageId().getName() + "; ModuleVer:" + mv + "; PkgVer:" + pv;\r
2889 }\r
2890 JOptionPane.showMessageDialog(frame, details);\r
2891 }\r
2892 }\r
2893 \r
2894 });\r
2b70a636 2895\r
61919f8c 2896 }\r
2897 return jTableFpdModules;\r
2898 }\r
2899\r
2900 /**\r
2901 * This method initializes jButtonUp \r
2902 * \r
2903 * @return javax.swing.JButton \r
2904 */\r
2905 private JButton getJButtonUp() {\r
2906 if (jButtonUp == null) {\r
2907 jButtonUp = new JButton();\r
2908 jButtonUp.setPreferredSize(new java.awt.Dimension(60,20));\r
2909 jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14));\r
2910 jButtonUp.setText("^");\r
2911 jButtonUp.addActionListener(new java.awt.event.ActionListener() {\r
2912 public void actionPerformed(java.awt.event.ActionEvent e) {\r
2913 int selectedRow = jTableModInFv.getSelectedRow();\r
2914 if (selectedRow <= 0) {\r
2915 return;\r
2916 }\r
2917 modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1);\r
2918 jTableModInFv.changeSelection(selectedRow - 1, 0, false, false);\r
2919 }\r
2920 });\r
2921 }\r
2922 return jButtonUp;\r
2923 }\r
2924\r
2925 /**\r
2926 * This method initializes jButtonInsert \r
2927 * \r
2928 * @return javax.swing.JButton \r
2929 */\r
2930 private JButton getJButtonInsert() {\r
2931 if (jButtonInsert == null) {\r
2932 jButtonInsert = new JButton();\r
53427242 2933 jButtonInsert.setText("<");\r
61919f8c 2934 jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20));\r
2935 jButtonInsert.addActionListener(new java.awt.event.ActionListener() {\r
2936 public void actionPerformed(java.awt.event.ActionEvent e) {\r
2937 int selectedRowRight = jTableFpdModules.getSelectedRow();\r
2938 if (selectedRowRight < 0) {\r
2939 return;\r
2940 }\r
2941 \r
2942 int rowInModel = ((TableSorter)jTableFpdModules.getModel()).getModelRowIndex(selectedRowRight);\r
423ba71f 2943 String name = fpdModTableModel.getValueAt(rowInModel, 0)+"";\r
2944 String mg = fpdModTableModel.getValueAt(rowInModel, 1)+"";\r
2945 String mv = fpdModTableModel.getValueAt(rowInModel, 2)+"";\r
2946 String pg = fpdModTableModel.getValueAt(rowInModel, 3)+"";\r
2947 String pv = fpdModTableModel.getValueAt(rowInModel, 4)+"";\r
2948 String arch = fpdModTableModel.getValueAt(rowInModel, 5)+"";\r
17bd391e 2949 String[] row = {name, mg, mv, pg, pv, arch};\r
2950 if (name.length() == 0 || name.equals("N/A")) {\r
2951 return;\r
2952 }\r
61919f8c 2953 \r
61919f8c 2954 int selectedRowLeft = jTableModInFv.getSelectedRow();\r
2955 if (selectedRowLeft < 0) {\r
2956 modInFvTableModel.addRow(row);\r
2957 jTableModInFv.changeSelection(jTableModInFv.getRowCount() - 1, 0, false, false);\r
61919f8c 2958 }\r
2959 else {\r
2960 modInFvTableModel.insertRow(selectedRowLeft, row);\r
2961 jTableModInFv.changeSelection(selectedRowLeft, 0, false, false);\r
2962 }\r
2b70a636 2963 fpdModTableModel.removeRow(rowInModel);\r
61919f8c 2964 }\r
2965 });\r
2966 }\r
2967 return jButtonInsert;\r
2968 }\r
2969\r
2970 /**\r
2971 * This method initializes jButtonRemove \r
2972 * \r
2973 * @return javax.swing.JButton \r
2974 */\r
2975 private JButton getJButtonRemove() {\r
2976 if (jButtonRemove == null) {\r
2977 jButtonRemove = new JButton();\r
2978 jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20));\r
53427242 2979 jButtonRemove.setText(">");\r
61919f8c 2980 jButtonRemove.addActionListener(new java.awt.event.ActionListener() {\r
2981 public void actionPerformed(java.awt.event.ActionEvent e) {\r
2982 int selectedRowLeft = jTableModInFv.getSelectedRow();\r
2983 if (selectedRowLeft < 0) {\r
2984 return;\r
2985 }\r
2986 \r
17bd391e 2987 String name = modInFvTableModel.getValueAt(selectedRowLeft, 0)+"";\r
2988 String mg = modInFvTableModel.getValueAt(selectedRowLeft, 1)+"";\r
2989 String mv = modInFvTableModel.getValueAt(selectedRowLeft, 2)+"";\r
2990 String pg = modInFvTableModel.getValueAt(selectedRowLeft, 3)+"";\r
2991 String pv = modInFvTableModel.getValueAt(selectedRowLeft, 4)+"";\r
2992 String arch = modInFvTableModel.getValueAt(selectedRowLeft, 5)+"";\r
2993 String[] row = {name, mg, mv, pg, pv, arch};\r
a0783edc 2994 String moduleKey = mg + " " + mv + " " + pg + " " + pv + " " + arch; \r
2995 if (name.length() == 0 || name.equals("N/A") || ffc.getModuleSA(moduleKey) == null) {\r
2996 JOptionPane.showMessageDialog(frame, "Module " + name + " not exists in platform. If you want to add back this module, please first add it into current platform. " + moduleKey );\r
2997 modInFvTableModel.removeRow(selectedRowLeft);\r
17bd391e 2998 return;\r
2999 }\r
a0783edc 3000 \r
61919f8c 3001 fpdModTableModel.addRow(row);\r
3002 int viewIndex = ((TableSorter) jTableFpdModules.getModel()).getViewIndexArray()[jTableFpdModules\r
3003 .getRowCount() - 1];\r
3004 jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
3005 modInFvTableModel.removeRow(selectedRowLeft);\r
3006 }\r
3007 });\r
3008 }\r
3009 return jButtonRemove;\r
3010 }\r
3011\r
3012 /**\r
3013 * This method initializes jButtonDown \r
3014 * \r
3015 * @return javax.swing.JButton \r
3016 */\r
3017 private JButton getJButtonDown() {\r
3018 if (jButtonDown == null) {\r
3019 jButtonDown = new JButton();\r
3020 jButtonDown.setPreferredSize(new java.awt.Dimension(60,20));\r
3021 jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));\r
3022 jButtonDown.setText("v");\r
3023 jButtonDown.addActionListener(new java.awt.event.ActionListener() {\r
3024 public void actionPerformed(java.awt.event.ActionEvent e) {\r
3025 int selectedRow = jTableModInFv.getSelectedRow();\r
3026 if (selectedRow >= jTableModInFv.getRowCount() - 1) {\r
3027 return;\r
3028 }\r
3029 modInFvTableModel.moveRow(selectedRow, selectedRow, selectedRow + 1);\r
3030 jTableModInFv.changeSelection(selectedRow + 1, 0, false, false);\r
3031 }\r
3032 });\r
3033 }\r
3034 return jButtonDown;\r
3035 }\r
3036 \r
3037 /**\r
3038 * This method initializes jButtonOk \r
3039 * \r
3040 * @return javax.swing.JButton \r
3041 */\r
3042 private JButton getJButtonOk() {\r
3043 if (jButtonOk == null) {\r
3044 jButtonOk = new JButton();\r
3045 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
eb8ea829 3046 jButtonOk.setText("Ok");\r
2b70a636 3047 jButtonOk.addActionListener(new java.awt.event.ActionListener() {\r
3048 public void actionPerformed(java.awt.event.ActionEvent e) {\r
3049 // need reset FvBindings in ModuleSA.\r
3050 ffc.removeFvBindingAll(title);\r
3051 //\r
3052 // collect module order information to store them into <BuildOptions> -> <UserExtensions>.\r
3053 // also update the FvBinding info in <ModuleSA>.\r
3054 //\r
3055 Vector<String[]> vModInFv = new Vector<String[]>();\r
3056 for (int i = 0; i < jTableModInFv.getRowCount(); ++i) {\r
17bd391e 3057 String moduleName = modInFvTableModel.getValueAt(i, 0)+"";\r
3058 if (moduleName.length() == 0 || moduleName.equals("N/A")) {\r
2b70a636 3059 continue;\r
3060 }\r
17bd391e 3061 \r
3062 String mg = modInFvTableModel.getValueAt(i, 1)+"";\r
3063 String mv = modInFvTableModel.getValueAt(i, 2)+"";\r
3064 String pg = modInFvTableModel.getValueAt(i, 3)+"";\r
3065 String pv = modInFvTableModel.getValueAt(i, 4)+"";\r
3066 String arch = modInFvTableModel.getValueAt(i, 5)+"";\r
3067 \r
3068 String moduleInfo = mg + " " + mv + " " + pg + " " + pv + " " + arch;\r
3069 \r
3070 String[] sa = { mg, mv, pg, pv, arch};\r
3071 vModInFv.add(sa);\r
3072 ffc.updateFvBindingInModuleSA(moduleInfo, title);\r
2b70a636 3073 \r
3074 }\r
3075 ffc.removeBuildOptionsUserExtensions(title);\r
3076 ffc.genBuildOptionsUserExtensions(title, outputFileName, vModInFv);\r
3077 \r
3078 docConsole.setSaved(false);\r
3079 jTabbedPane.setSelectedIndex(0);\r
3080 }\r
3081 });\r
61919f8c 3082 }\r
3083 return jButtonOk;\r
3084 }\r
3085\r
3086 /**\r
3087 * This method initializes jButtonCancel \r
3088 * \r
3089 * @return javax.swing.JButton \r
3090 */\r
3091 private JButton getJButtonCancel() {\r
3092 if (jButtonCancel == null) {\r
3093 jButtonCancel = new JButton();\r
3094 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
3095 jButtonCancel.setText("Cancel");\r
3096 jButtonCancel.addActionListener(new java.awt.event.ActionListener() {\r
3097 public void actionPerformed(java.awt.event.ActionEvent e) {\r
3098 jTabbedPane.setSelectedIndex(0);\r
3099 }\r
3100 });\r
3101 }\r
3102 return jButtonCancel;\r
3103 }\r
3104 }\r
a13899c5 3105\r
3106} // @jve:decl-index=0:visual-constraint="10,10"\r
3107\r
b411fc1f 3108class FvOptsTableModel extends DefaultTableModel {\r
3109\r
3110 private static final long serialVersionUID = 1L;\r
3111 \r
3112 private Vector<Object> vNonEditableName = new Vector<Object>();\r
3113 private Vector<Object> vKeyWords = new Vector<Object>();\r
3114 \r
3115 public boolean isCellEditable(int row, int col) {\r
3116 if (vNonEditableName.size() > 0 || vKeyWords.size() > 0) {\r
3117 if (vKeyWords.contains(getValueAt(row, 0))) {\r
3118 return false;\r
3119 }\r
3120 if (vNonEditableName.contains(getValueAt(row, 0)) && col == 0) {\r
3121 return false;\r
3122 }\r
3123 } \r
3124 \r
3125 return true;\r
3126 }\r
3127\r
3128 /**\r
3129 * @return Returns the vKeyWords.\r
3130 */\r
3131 protected Vector<Object> getVKeyWords() {\r
3132 return vKeyWords;\r
3133 }\r
3134\r
3135 /**\r
3136 * @param keyWords The vKeyWords to set.\r
3137 */\r
3138 protected void setVKeyWords(Vector<Object> keyWords) {\r
3139 vKeyWords.removeAllElements();\r
3140 vKeyWords.addAll(keyWords);\r
3141 }\r
3142\r
3143 /**\r
3144 * @return Returns the vNonEditableName.\r
3145 */\r
3146 protected Vector<Object> getVNonEditableName() {\r
3147 return vNonEditableName;\r
3148 }\r
3149\r
3150 /**\r
3151 * @param nonEditableName The vNonEditableName to set.\r
3152 */\r
3153 protected void setVNonEditableName(Vector<Object> nonEditableName) {\r
3154 vNonEditableName.removeAllElements();\r
3155 vNonEditableName.addAll(nonEditableName);\r
3156 }\r
3157 \r
3158}\r
a13899c5 3159class ImageParaTableModel extends DefaultTableModel {\r
3160\r
44053733 3161 private static final long serialVersionUID = 1L;\r
44053733 3162 \r
3163 public boolean isCellEditable(int row, int col) {\r
98c20797 3164// if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
3165// return false;\r
3166// }\r
3167// return true;\r
3168 return false;\r
a13899c5 3169 }\r
3170}\r
ae0d4fd2 3171\r
3658f95e 3172class FvInfoFromFdf {\r
3173 private String fvName;\r
3174 private String size;\r
3175 private String efiFileName;\r
3176 \r
3177 public FvInfoFromFdf () {\r
3178 fvName = "";\r
3179 size = "";\r
3180 efiFileName = "";\r
3181 }\r
3182 public FvInfoFromFdf (String f, String s, String e) {\r
3183 this();\r
3184 fvName = f;\r
3185 size = s;\r
3186 efiFileName = e;\r
3187 }\r
3188 public String getEfiFileName() {\r
3189 return efiFileName;\r
3190 }\r
3191 public void setEfiFileName(String efiFileName) {\r
3192 this.efiFileName = efiFileName;\r
3193 }\r
3194 public String getFvName() {\r
3195 return fvName;\r
3196 }\r
3197 public void setFvName(String fvName) {\r
3198 this.fvName = fvName;\r
3199 }\r
3200 public String getSize() {\r
3201 return size;\r
3202 }\r
3203 public void setSize(String size) {\r
3204 this.size = size;\r
3205 }\r
3206 \r
3207}\r