]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
1. Provide "Find" function for Ppi/Protocol/Guid/Pcd/LibraryClass.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
... / ...
CommitLineData
1/** @file\r
2 Java class FpdFlash is GUI for Flash element operation in SPD file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.frameworkwizard.platform.ui;\r
14\r
15import java.awt.BorderLayout;\r
16import javax.swing.JPanel;\r
17\r
18import javax.swing.AbstractAction;\r
19import javax.swing.DefaultCellEditor;\r
20import javax.swing.JFileChooser;\r
21import javax.swing.JFrame;\r
22import javax.swing.JOptionPane;\r
23import javax.swing.JTabbedPane;\r
24import javax.swing.JButton;\r
25import javax.swing.ListSelectionModel;\r
26\r
27import org.tianocore.PlatformSurfaceAreaDocument;\r
28import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
29import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
30import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
31\r
32\r
33import java.awt.FlowLayout;\r
34import java.awt.event.ActionEvent;\r
35import java.awt.event.ComponentAdapter;\r
36import java.awt.event.ComponentEvent;\r
37import java.awt.event.ItemEvent;\r
38import java.awt.event.ItemListener;\r
39import java.io.File;\r
40import java.util.Iterator;\r
41import java.util.LinkedHashMap;\r
42import java.util.Map;\r
43import java.util.Set;\r
44\r
45import javax.swing.JCheckBox;\r
46import javax.swing.JTextField;\r
47import java.awt.GridLayout;\r
48import javax.swing.JLabel;\r
49import javax.swing.JScrollPane;\r
50import javax.swing.JTable;\r
51import javax.swing.event.InternalFrameAdapter;\r
52import javax.swing.event.InternalFrameEvent;\r
53import javax.swing.event.ListSelectionEvent;\r
54import javax.swing.event.ListSelectionListener;\r
55import javax.swing.event.TableModelEvent;\r
56import javax.swing.event.TableModelListener;\r
57import javax.swing.table.DefaultTableModel;\r
58import javax.swing.table.TableColumn;\r
59import javax.swing.table.TableModel;\r
60import javax.swing.JComboBox;\r
61import java.awt.Dimension;\r
62\r
63public class FpdFlash extends IInternalFrame {\r
64\r
65 /**\r
66 * \r
67 */\r
68 private static final long serialVersionUID = 1L;\r
69 static JFrame frame;\r
70 private JPanel jContentPane = null;\r
71 private JPanel jPanelContentEast = null;\r
72 private JPanel jPanelContentSouth = null;\r
73 private JPanel jPanelContentWest = null;\r
74 private JPanel jPanelContentNorth = null;\r
75 private JTabbedPane jTabbedPane = null;\r
76 private JPanel jPanelFvImages = null;\r
77 private JPanel jPanelFvImageN = null;\r
78 private JPanel jPanelFvImageS = null;\r
79 private JCheckBox jCheckBoxFvProperty = null;\r
80 private JLabel jLabelFvPropName = null;\r
81 private JTextField jTextFieldFvPropName = null;\r
82 private JLabel jLabelFvPropValue = null;\r
83 private JTextField jTextFieldFvPropValue = null;\r
84 private JButton jButtonFvPropAdd = null;\r
85 private JScrollPane jScrollPaneFvProp = null;\r
86 private JTable jTableFvProp = null;\r
87 private JPanel jPanelFvPropButtonGroup = null;\r
88 private JButton jButtonFvPropDel = null;\r
89 private DefaultTableModel fvPropertyTableModel = null;\r
90 private DefaultTableModel fvImageNameTableModel = null;\r
91 private ImageParaTableModel fvImageParaTableModel = null;\r
92 private DefaultTableModel fvOptionTableModel = null;\r
93 private JPanel jPanelFvImageC = null;\r
94 private JCheckBox jCheckBoxFvImagePara = null;\r
95 private JLabel jLabelFvParaType = null;\r
96 private JComboBox jComboBoxFvParaType = null;\r
97 private JLabel jLabelFvImageNames = null;\r
98 private JLabel jLabelFvParaName = null;\r
99 private JTextField jTextFieldFvParaName = null;\r
100 private JButton jButtonFvParaAdd = null;\r
101 private JScrollPane jScrollPaneFvImageNames = null;\r
102 private JTable jTableFvImageNames = null;\r
103 private JButton jButtonFvParaDel = null;\r
104 private JPanel jPanelFvImageOpts = null;\r
105 private JButton jButtonAddFvImage = null;\r
106 private JScrollPane jScrollPaneFvInfo = null;\r
107 private JTable jTableFvInfo = null;\r
108 private JButton jButtonDelFvImage = null;\r
109 private JCheckBox jCheckBoxFvImageOpts = null;\r
110 private JPanel jPanelFvImagePara = null;\r
111 private OpeningPlatformType docConsole = null;\r
112 private FpdFileContents ffc = null;\r
113 private JPanel jPanelFdf = null;\r
114 private JCheckBox jCheckBoxFdf = null;\r
115 private JTextField jTextFieldFdf = null;\r
116 private JButton jButtonFdfBrowse = null;\r
117 private JLabel jLabelFvImageOptName = null;\r
118 private JTextField jTextFieldFvImageOptName = null;\r
119 private JLabel jLabelFvImageOptValue = null;\r
120 private JTextField jTextFieldFvImageOptValue = null;\r
121 private JPanel jPanelFvImageOptsButtonGroup = null;\r
122 private JButton jButtonFvImageOptAdd = null;\r
123 private JButton jButtonFvImageOptDel = null;\r
124 private JScrollPane jScrollPane = null;\r
125 private JTable jTableFvImageOpts = null;\r
126 private JButton jButtonUpdateFvImage = null;\r
127 public FpdFlash() {\r
128 super();\r
129 // TODO Auto-generated constructor stub\r
130\r
131 initialize();\r
132 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
133 this.setVisible(true);\r
134 }\r
135\r
136 public FpdFlash(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
137 this();\r
138 ffc = new FpdFileContents(fpd);\r
139 init(ffc);\r
140 }\r
141 \r
142 public FpdFlash(OpeningPlatformType opt) {\r
143 this(opt.getXmlFpd());\r
144 docConsole = opt;\r
145 }\r
146 \r
147 /**\r
148 * This method initializes jPanel \r
149 * \r
150 * @return javax.swing.JPanel \r
151 */\r
152 private JPanel getJPanelContentEast() {\r
153 if (jPanelContentEast == null) {\r
154 jPanelContentEast = new JPanel();\r
155 }\r
156 return jPanelContentEast;\r
157 }\r
158\r
159 /**\r
160 * This method initializes jPanel1 \r
161 * \r
162 * @return javax.swing.JPanel \r
163 */\r
164 private JPanel getJPanelContentSouth() {\r
165 if (jPanelContentSouth == null) {\r
166 FlowLayout flowLayout = new FlowLayout();\r
167 flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
168 flowLayout.setHgap(15);\r
169 jPanelContentSouth = new JPanel();\r
170 jPanelContentSouth.setLayout(flowLayout);\r
171 jPanelContentSouth.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);\r
172 }\r
173 return jPanelContentSouth;\r
174 }\r
175\r
176 /**\r
177 * This method initializes jPanel2 \r
178 * \r
179 * @return javax.swing.JPanel \r
180 */\r
181 private JPanel getJPanelContentWest() {\r
182 if (jPanelContentWest == null) {\r
183 jPanelContentWest = new JPanel();\r
184 }\r
185 return jPanelContentWest;\r
186 }\r
187\r
188 /**\r
189 * This method initializes jPanel3 \r
190 * \r
191 * @return javax.swing.JPanel \r
192 */\r
193 private JPanel getJPanelContentNorth() {\r
194 if (jPanelContentNorth == null) {\r
195 jPanelContentNorth = new JPanel();\r
196 }\r
197 return jPanelContentNorth;\r
198 }\r
199\r
200 /**\r
201 * This method initializes jTabbedPane \r
202 * \r
203 * @return javax.swing.JTabbedPane \r
204 */\r
205 private JTabbedPane getJTabbedPane() {\r
206 if (jTabbedPane == null) {\r
207 jTabbedPane = new JTabbedPane();\r
208 jTabbedPane.addTab("FV Images", null, getJPanelFvImages(), null);\r
209 jTabbedPane.addTab("Flash Definition File", null, getJPanelFdf(), null);\r
210 \r
211 }\r
212 return jTabbedPane;\r
213 }\r
214\r
215 /**\r
216 * This method initializes jPanelFvImages \r
217 * \r
218 * @return javax.swing.JPanel \r
219 */\r
220 private JPanel getJPanelFvImages() {\r
221 if (jPanelFvImages == null) {\r
222 jPanelFvImages = new JPanel();\r
223 jPanelFvImages.setLayout(new BorderLayout());\r
224 jPanelFvImages.add(getJPanelFvImageN(), java.awt.BorderLayout.NORTH);\r
225// jPanelFvImages.add(getJPanelFvImageW(), java.awt.BorderLayout.WEST);\r
226 jPanelFvImages.add(getJPanelFvImageS(), java.awt.BorderLayout.SOUTH);\r
227 jPanelFvImages.add(getJPanelFvImageC(), java.awt.BorderLayout.CENTER);\r
228 \r
229 }\r
230 return jPanelFvImages;\r
231 }\r
232\r
233 /**\r
234 * This method initializes jPanelFvImageN \r
235 * \r
236 * @return javax.swing.JPanel \r
237 */\r
238 private JPanel getJPanelFvImageN() {\r
239 if (jPanelFvImageN == null) {\r
240 jLabelFvPropValue = new JLabel();\r
241 jLabelFvPropValue.setText("Value");\r
242 jLabelFvPropValue.setEnabled(false);\r
243 jLabelFvPropValue.setPreferredSize(new java.awt.Dimension(38,20));\r
244 jLabelFvPropName = new JLabel();\r
245 jLabelFvPropName.setText("Name");\r
246 jLabelFvPropName.setEnabled(false);\r
247 jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20));\r
248 FlowLayout flowLayout2 = new FlowLayout();\r
249 flowLayout2.setAlignment(java.awt.FlowLayout.CENTER);\r
250 flowLayout2.setHgap(15);\r
251 jPanelFvImageN = new JPanel();\r
252 jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100));\r
253 jPanelFvImageN.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));\r
254 jPanelFvImageN.setLayout(flowLayout2);\r
255 jPanelFvImageN.add(getJCheckBoxFvProperty(), null);\r
256 jPanelFvImageN.add(jLabelFvPropName, null);\r
257 jPanelFvImageN.add(getJTextFieldFvPropName(), null);\r
258 jPanelFvImageN.add(jLabelFvPropValue, null);\r
259 jPanelFvImageN.add(getJTextFieldFvPropValue(), null);\r
260 jPanelFvImageN.add(getJScrollPaneFvProp(), null);\r
261 jPanelFvImageN.add(getJPanelFvPropButtonGroup(), null);\r
262 }\r
263 return jPanelFvImageN;\r
264 }\r
265\r
266 /**\r
267 * This method initializes jPanelFvImageS \r
268 * \r
269 * @return javax.swing.JPanel \r
270 */\r
271 private JPanel getJPanelFvImageS() {\r
272 if (jPanelFvImageS == null) {\r
273 GridLayout gridLayout2 = new GridLayout();\r
274 gridLayout2.setRows(1);\r
275 jPanelFvImageS = new JPanel();\r
276 jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));\r
277 jPanelFvImageS.setLayout(gridLayout2);\r
278 jPanelFvImageS.add(getJScrollPaneFvInfo(), null);\r
279 }\r
280 return jPanelFvImageS;\r
281 }\r
282\r
283\r
284 /**\r
285 * This method initializes jCheckBox1 \r
286 * \r
287 * @return javax.swing.JCheckBox \r
288 */\r
289 private JCheckBox getJCheckBoxFvProperty() {\r
290 if (jCheckBoxFvProperty == null) {\r
291 jCheckBoxFvProperty = new JCheckBox();\r
292 jCheckBoxFvProperty.setText("FV Properties");\r
293 jCheckBoxFvProperty.addItemListener(new ItemListener(){\r
294\r
295 public void itemStateChanged(ItemEvent arg0) {\r
296 // TODO Auto-generated method stub\r
297 boolean seleted = jCheckBoxFvProperty.isSelected();\r
298 \r
299 jLabelFvPropName.setEnabled(seleted);\r
300 jTextFieldFvPropName.setEnabled(seleted);\r
301 jLabelFvPropValue.setEnabled(seleted);\r
302 jTextFieldFvPropValue.setEnabled(seleted);\r
303 jTableFvProp.setEnabled(seleted);\r
304 jButtonFvPropAdd.setEnabled(seleted);\r
305 jButtonFvPropDel.setEnabled(seleted);\r
306 \r
307 \r
308 }\r
309 \r
310 });\r
311 }\r
312 return jCheckBoxFvProperty;\r
313 }\r
314\r
315\r
316 /**\r
317 * This method initializes jTextField \r
318 * \r
319 * @return javax.swing.JTextField \r
320 */\r
321 private JTextField getJTextFieldFvPropName() {\r
322 if (jTextFieldFvPropName == null) {\r
323 jTextFieldFvPropName = new JTextField();\r
324 jTextFieldFvPropName.setPreferredSize(new java.awt.Dimension(100,20));\r
325 jTextFieldFvPropName.setEnabled(false);\r
326 }\r
327 return jTextFieldFvPropName;\r
328 }\r
329\r
330\r
331 /**\r
332 * This method initializes jTextField1 \r
333 * \r
334 * @return javax.swing.JTextField \r
335 */\r
336 private JTextField getJTextFieldFvPropValue() {\r
337 if (jTextFieldFvPropValue == null) {\r
338 jTextFieldFvPropValue = new JTextField();\r
339 jTextFieldFvPropValue.setPreferredSize(new java.awt.Dimension(100,20));\r
340 jTextFieldFvPropValue.setEnabled(false);\r
341 }\r
342 return jTextFieldFvPropValue;\r
343 }\r
344\r
345\r
346 /**\r
347 * This method initializes jButton \r
348 * \r
349 * @return javax.swing.JButton \r
350 */\r
351 private JButton getJButtonFvPropAdd() {\r
352 if (jButtonFvPropAdd == null) {\r
353 jButtonFvPropAdd = new JButton();\r
354 jButtonFvPropAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
355 jButtonFvPropAdd.setEnabled(false);\r
356 jButtonFvPropAdd.setText("Add");\r
357 jButtonFvPropAdd.addActionListener(new AbstractAction() {\r
358 /**\r
359 * \r
360 */\r
361 private static final long serialVersionUID = 1L;\r
362\r
363 public void actionPerformed(ActionEvent e) {\r
364 if (jTextFieldFvPropName.getText().length() > 0 && jTextFieldFvPropValue.getText().length() > 0){\r
365 String[] row = {jTextFieldFvPropName.getText(), jTextFieldFvPropValue.getText()}; \r
366 fvPropertyTableModel.addRow(row);\r
367 docConsole.setSaved(false);\r
368 ffc.genFvImagesNameValue(row[0], row[1]);\r
369 }\r
370 }\r
371 });\r
372 }\r
373 return jButtonFvPropAdd;\r
374 }\r
375\r
376\r
377 /**\r
378 * This method initializes jScrollPane1 \r
379 * \r
380 * @return javax.swing.JScrollPane \r
381 */\r
382 private JScrollPane getJScrollPaneFvProp() {\r
383 if (jScrollPaneFvProp == null) {\r
384 jScrollPaneFvProp = new JScrollPane();\r
385 jScrollPaneFvProp.setPreferredSize(new java.awt.Dimension(350,55));\r
386 jScrollPaneFvProp.setViewportView(getJTableFvProp());\r
387 }\r
388 return jScrollPaneFvProp;\r
389 }\r
390\r
391\r
392 /**\r
393 * This method initializes jTable \r
394 * \r
395 * @return javax.swing.JTable \r
396 */\r
397 private JTable getJTableFvProp() {\r
398 if (jTableFvProp == null) {\r
399 fvPropertyTableModel = new DefaultTableModel();\r
400 jTableFvProp = new JTable(fvPropertyTableModel);\r
401 fvPropertyTableModel.addColumn("Name");\r
402 fvPropertyTableModel.addColumn("Value");\r
403 jTableFvProp.setRowHeight(20);\r
404 jTableFvProp.setEnabled(false);\r
405 \r
406 jTableFvProp.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
407 jTableFvProp.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
408 public void valueChanged(ListSelectionEvent e) {\r
409 if (e.getValueIsAdjusting()){\r
410 return;\r
411 }\r
412 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
413 if (lsm.isSelectionEmpty()) {\r
414 return;\r
415 }\r
416 else{\r
417// selectedRow = lsm.getMinSelectionIndex();\r
418 }\r
419 }\r
420 });\r
421 \r
422 jTableFvProp.getModel().addTableModelListener(new TableModelListener(){\r
423 public void tableChanged(TableModelEvent arg0) {\r
424 // TODO Auto-generated method stub\r
425 int row = arg0.getFirstRow();\r
426 TableModel m = (TableModel)arg0.getSource();\r
427 if (arg0.getType() == TableModelEvent.UPDATE){\r
428 \r
429 String name = m.getValueAt(row, 0) + "";\r
430 String value = m.getValueAt(row, 1) + "";\r
431 docConsole.setSaved(false);\r
432 ffc.updateFvImagesNameValue(row, name, value);\r
433 }\r
434 }\r
435 });\r
436 }\r
437 return jTableFvProp;\r
438 }\r
439\r
440\r
441 /**\r
442 * This method initializes jPanel4 \r
443 * \r
444 * @return javax.swing.JPanel \r
445 */\r
446 private JPanel getJPanelFvPropButtonGroup() {\r
447 if (jPanelFvPropButtonGroup == null) {\r
448 jPanelFvPropButtonGroup = new JPanel();\r
449 jPanelFvPropButtonGroup.setPreferredSize(new java.awt.Dimension(80,55));\r
450 \r
451 jPanelFvPropButtonGroup.add(getJButtonFvPropAdd(), null);\r
452 jPanelFvPropButtonGroup.add(getJButtonFvPropDel(), null);\r
453 }\r
454 return jPanelFvPropButtonGroup;\r
455 }\r
456\r
457\r
458 /**\r
459 * This method initializes jButton1 \r
460 * \r
461 * @return javax.swing.JButton \r
462 */\r
463 private JButton getJButtonFvPropDel() {\r
464 if (jButtonFvPropDel == null) {\r
465 jButtonFvPropDel = new JButton();\r
466 jButtonFvPropDel.setPreferredSize(new java.awt.Dimension(80,20));\r
467 jButtonFvPropDel.setEnabled(false);\r
468 jButtonFvPropDel.setText("Delete");\r
469 jButtonFvPropDel.addActionListener(new AbstractAction() {\r
470 /**\r
471 * \r
472 */\r
473 private static final long serialVersionUID = 1L;\r
474\r
475 public void actionPerformed(ActionEvent e) {\r
476 if (jTableFvProp.getSelectedRow() >= 0){\r
477 fvPropertyTableModel.removeRow(jTableFvProp.getSelectedRow());\r
478 docConsole.setSaved(false);\r
479 ffc.removeFvImagesNameValue(jTableFvProp.getSelectedRow());\r
480 }\r
481 }\r
482 });\r
483 }\r
484 return jButtonFvPropDel;\r
485 }\r
486\r
487\r
488 /**\r
489 * This method initializes jPanelFvImageC \r
490 * \r
491 * @return javax.swing.JPanel \r
492 */\r
493 private JPanel getJPanelFvImageC() {\r
494 if (jPanelFvImageC == null) {\r
495 jLabelFvParaName = new JLabel();\r
496 jLabelFvParaName.setPreferredSize(new Dimension(38, 20));\r
497 jLabelFvParaName.setEnabled(false);\r
498 jLabelFvParaName.setText("Name");\r
499 jLabelFvImageNames = new JLabel();\r
500 jLabelFvImageNames.setText("FV Image Names");\r
501 jLabelFvImageNames.setEnabled(false);\r
502 jLabelFvImageNames.setPreferredSize(new java.awt.Dimension(150,20));\r
503 jLabelFvParaType = new JLabel();\r
504 jLabelFvParaType.setText("Type");\r
505 jLabelFvParaType.setEnabled(false);\r
506 jLabelFvParaType.setPreferredSize(new java.awt.Dimension(70,20));\r
507 FlowLayout flowLayout3 = new FlowLayout();\r
508 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
509 flowLayout3.setHgap(5);\r
510 jPanelFvImageC = new JPanel();\r
511 jPanelFvImageC.setLayout(flowLayout3);\r
512 jPanelFvImageC.add(getJPanelFvImagePara(), null);\r
513 \r
514 jPanelFvImageC.add(getJPanelFvImageOpts(), null);\r
515 \r
516 }\r
517 return jPanelFvImageC;\r
518 }\r
519\r
520\r
521 /**\r
522 * This method initializes jCheckBox2 \r
523 * \r
524 * @return javax.swing.JCheckBox \r
525 */\r
526 private JCheckBox getJCheckBoxFvImagePara() {\r
527 if (jCheckBoxFvImagePara == null) {\r
528 jCheckBoxFvImagePara = new JCheckBox();\r
529 jCheckBoxFvImagePara.setText("FV Image Parameters");\r
530 jCheckBoxFvImagePara.setPreferredSize(new java.awt.Dimension(200,20));\r
531 jCheckBoxFvImagePara.addItemListener(new ItemListener(){\r
532\r
533 public void itemStateChanged(ItemEvent arg0) {\r
534 // TODO Auto-generated method stub\r
535 boolean seleted = jCheckBoxFvImagePara.isSelected();\r
536 \r
537 jLabelFvParaType.setEnabled(seleted);\r
538 jLabelFvImageNames.setEnabled(seleted);\r
539 jLabelFvParaName.setEnabled(seleted);\r
540 jComboBoxFvParaType.setEnabled(seleted);\r
541 jTextFieldFvParaName.setEnabled(seleted);\r
542 \r
543 jTableFvImageNames.setEnabled(seleted);\r
544 jButtonFvParaAdd.setEnabled(seleted);\r
545 jButtonFvParaDel.setEnabled(seleted);\r
546 \r
547 \r
548 }\r
549 \r
550 });\r
551 }\r
552 return jCheckBoxFvImagePara;\r
553 }\r
554\r
555\r
556 /**\r
557 * This method initializes jComboBox \r
558 * \r
559 * @return javax.swing.JComboBox \r
560 */\r
561 private JComboBox getJComboBoxFvParaType() {\r
562 if (jComboBoxFvParaType == null) {\r
563 jComboBoxFvParaType = new JComboBox();\r
564 jComboBoxFvParaType.addItem("ImageName");\r
565 jComboBoxFvParaType.addItem("Attributes");\r
566 jComboBoxFvParaType.addItem("Options");\r
567 jComboBoxFvParaType.addItem("Components");\r
568 jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20));\r
569 jComboBoxFvParaType.setEnabled(false);\r
570 jComboBoxFvParaType.addItemListener(new ItemListener() {\r
571\r
572 public void itemStateChanged(ItemEvent arg0) {\r
573 // TODO disable attribute settings when ValidImageNames selected.\r
574 \r
575 }\r
576 \r
577 });\r
578 }\r
579 return jComboBoxFvParaType;\r
580 }\r
581\r
582\r
583 /**\r
584 * This method initializes jTextField2 \r
585 * \r
586 * @return javax.swing.JTextField \r
587 */\r
588 private JTextField getJTextFieldFvParaName() {\r
589 if (jTextFieldFvParaName == null) {\r
590 jTextFieldFvParaName = new JTextField();\r
591 jTextFieldFvParaName.setPreferredSize(new java.awt.Dimension(140,20));\r
592 jTextFieldFvParaName.setEnabled(false);\r
593 }\r
594 return jTextFieldFvParaName;\r
595 }\r
596\r
597\r
598 /**\r
599 * This method initializes jButton2 \r
600 * \r
601 * @return javax.swing.JButton \r
602 */\r
603 private JButton getJButtonFvParaAdd() {\r
604 if (jButtonFvParaAdd == null) {\r
605 jButtonFvParaAdd = new JButton();\r
606 jButtonFvParaAdd.setPreferredSize(new Dimension(80, 20));\r
607 jButtonFvParaAdd.setEnabled(false);\r
608 jButtonFvParaAdd.setText("Add");\r
609 jButtonFvParaAdd.addActionListener(new AbstractAction() {\r
610 /**\r
611 * \r
612 */\r
613 private static final long serialVersionUID = 1L;\r
614\r
615 public void actionPerformed(java.awt.event.ActionEvent e) {\r
616 if (jTextFieldFvParaName.getText().length() > 0){\r
617 String[] row = {jTextFieldFvParaName.getText()}; \r
618 fvImageNameTableModel.addRow(row);\r
619 }\r
620 }\r
621 });\r
622 }\r
623 return jButtonFvParaAdd;\r
624 }\r
625\r
626\r
627 /**\r
628 * This method initializes jScrollPane2 \r
629 * \r
630 * @return javax.swing.JScrollPane \r
631 */\r
632 private JScrollPane getJScrollPaneFvImageNames() {\r
633 if (jScrollPaneFvImageNames == null) {\r
634 jScrollPaneFvImageNames = new JScrollPane();\r
635 jScrollPaneFvImageNames.setPreferredSize(new java.awt.Dimension(350,50));\r
636 jScrollPaneFvImageNames.setViewportView(getJTableFvImageNames());\r
637 }\r
638 return jScrollPaneFvImageNames;\r
639 }\r
640\r
641\r
642 /**\r
643 * This method initializes jTable1 \r
644 * \r
645 * @return javax.swing.JTable \r
646 */\r
647 private JTable getJTableFvImageNames() {\r
648 if (jTableFvImageNames == null) {\r
649 fvImageNameTableModel = new DefaultTableModel();\r
650 jTableFvImageNames = new JTable(fvImageNameTableModel);\r
651 jTableFvImageNames.setEnabled(false);\r
652 fvImageNameTableModel.addColumn("FV Image Name");\r
653 }\r
654 return jTableFvImageNames;\r
655 }\r
656\r
657\r
658 /**\r
659 * This method initializes jButton3 \r
660 * \r
661 * @return javax.swing.JButton \r
662 */\r
663 private JButton getJButtonFvParaDel() {\r
664 if (jButtonFvParaDel == null) {\r
665 jButtonFvParaDel = new JButton();\r
666 jButtonFvParaDel.setPreferredSize(new Dimension(80, 20));\r
667 jButtonFvParaDel.setEnabled(false);\r
668 jButtonFvParaDel.setText("Delete");\r
669 jButtonFvParaDel.addActionListener(new AbstractAction() {\r
670 /**\r
671 * \r
672 */\r
673 private static final long serialVersionUID = 1L;\r
674\r
675 public void actionPerformed(java.awt.event.ActionEvent e) {\r
676 if (jTableFvImageNames.getSelectedRow() >= 0){\r
677 \r
678 fvImageNameTableModel.removeRow(jTableFvImageNames.getSelectedRow());\r
679 }\r
680 }\r
681 });\r
682 }\r
683 return jButtonFvParaDel;\r
684 }\r
685\r
686\r
687\r
688 \r
689 private JPanel getJPanelFvImageOpts() {\r
690 \r
691\r
692 if (jPanelFvImageOpts == null) {\r
693 //ToDo add ButtonGroup for RadioButtons\r
694 jLabelFvImageOptValue = new JLabel();\r
695 jLabelFvImageOptValue.setEnabled(true);\r
696 jLabelFvImageOptValue.setText("Value");\r
697 jLabelFvImageOptValue.setPreferredSize(new Dimension(38, 20));\r
698 jLabelFvImageOptName = new JLabel();\r
699 jLabelFvImageOptName.setEnabled(true);\r
700 jLabelFvImageOptName.setText("Name");\r
701 jLabelFvImageOptName.setPreferredSize(new Dimension(38, 20));\r
702 jPanelFvImageOpts = new JPanel();\r
703 jPanelFvImageOpts.setPreferredSize(new java.awt.Dimension(480,150));\r
704 \r
705 jPanelFvImageOpts.setLayout(new FlowLayout());\r
706 \r
707 jPanelFvImageOpts.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
708 jPanelFvImageOpts.add(getJCheckBoxFvImageOpts(), null);\r
709 jPanelFvImageOpts.add(jLabelFvImageOptName, null);\r
710 jPanelFvImageOpts.add(getJTextFieldFvImageOptName(), null);\r
711 jPanelFvImageOpts.add(jLabelFvImageOptValue, null);\r
712 jPanelFvImageOpts.add(getJTextFieldFvImageOptValue(), null);\r
713 jPanelFvImageOpts.add(getJScrollPane(), null);\r
714 jPanelFvImageOpts.add(getJPanelFvImageOptsButtonGroup(), null);\r
715 jPanelFvImageOpts.add(getJButtonAddFvImage(), null);\r
716 jPanelFvImageOpts.add(getJButtonDelFvImage(), null);\r
717 jPanelFvImageOpts.add(getJButtonUpdateFvImage(), null);\r
718 \r
719 \r
720 \r
721\r
722 \r
723 }\r
724 return jPanelFvImageOpts;\r
725 }\r
726\r
727\r
728 /**\r
729 * This method initializes jButton4 \r
730 * \r
731 * @return javax.swing.JButton \r
732 */\r
733 private JButton getJButtonAddFvImage() {\r
734 if (jButtonAddFvImage == null) {\r
735 jButtonAddFvImage = new JButton();\r
736 jButtonAddFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
737// jButton4.setEnabled(false);\r
738 jButtonAddFvImage.setText("Add FV Image");\r
739 jButtonAddFvImage.addActionListener(new AbstractAction() {\r
740 /**\r
741 * \r
742 */\r
743 private static final long serialVersionUID = 1L;\r
744\r
745 public void actionPerformed(java.awt.event.ActionEvent e) {\r
746 if (jTableFvInfo.isEditing()) {\r
747 jTableFvInfo.getCellEditor().stopCellEditing();\r
748 }\r
749 if (jTableFvImageOpts.isEditing()) {\r
750 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
751 }\r
752 if (jTableFvImageNames.getRowCount()== 0){\r
753 return;\r
754 }\r
755 String imageName = " ";\r
756 for (int i = 0; i < jTableFvImageNames.getRowCount(); ++i){\r
757 imageName += (String)jTableFvImageNames.getValueAt(i, 0);\r
758 imageName += " ";\r
759 }\r
760 imageName = imageName.trim();\r
761 \r
762 if (!jCheckBoxFvImageOpts.isSelected() && jComboBoxFvParaType.getSelectedIndex() != 0){\r
763 return;\r
764 \r
765 }\r
766 \r
767 LinkedHashMap<String, String> m = null;\r
768 if (jCheckBoxFvImageOpts.isSelected()) {\r
769 m = new LinkedHashMap<String, String>();\r
770 getOptionNameValue(m);\r
771 }\r
772 ffc.genFvImagesFvImage(imageName.split(" "), jComboBoxFvParaType.getSelectedItem()+"", m);\r
773 docConsole.setSaved(false);\r
774 Object[] row = {imageName, jComboBoxFvParaType.getSelectedItem()};\r
775 fvImageParaTableModel.addRow(row); \r
776 }\r
777 });\r
778 }\r
779 return jButtonAddFvImage;\r
780 }\r
781\r
782\r
783 /**\r
784 * This method initializes jScrollPane3 \r
785 * \r
786 * @return javax.swing.JScrollPane \r
787 */\r
788 private JScrollPane getJScrollPaneFvInfo() {\r
789 if (jScrollPaneFvInfo == null) {\r
790 jScrollPaneFvInfo = new JScrollPane();\r
791 jScrollPaneFvInfo.setPreferredSize(new java.awt.Dimension(480,150));\r
792 jScrollPaneFvInfo.setViewportView(getJTableFvInfo());\r
793 }\r
794 return jScrollPaneFvInfo;\r
795 }\r
796\r
797\r
798 /**\r
799 * This method initializes jTable2 \r
800 * \r
801 * @return javax.swing.JTable \r
802 */\r
803 private JTable getJTableFvInfo() {\r
804 if (jTableFvInfo == null) {\r
805 fvImageParaTableModel = new ImageParaTableModel();\r
806 jTableFvInfo = new JTable(fvImageParaTableModel);\r
807 fvImageParaTableModel.addColumn("FvImageNames");\r
808 fvImageParaTableModel.addColumn("Type");\r
809 \r
810 \r
811 TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1);\r
812 JComboBox cb = new JComboBox();\r
813 cb.addItem("ValidImageNames");\r
814 cb.addItem("Attributes");\r
815 cb.addItem("Options");\r
816 cb.addItem("Components");\r
817 typeCol.setCellEditor(new DefaultCellEditor(cb));\r
818 \r
819 jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
820 jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
821 public void valueChanged(ListSelectionEvent e) {\r
822 if (e.getValueIsAdjusting()){\r
823 return;\r
824 }\r
825 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
826 if (lsm.isSelectionEmpty()) {\r
827 return;\r
828 }\r
829 else{\r
830 int selectedRow = lsm.getMinSelectionIndex();\r
831 LinkedHashMap<String, String> optionMap = new LinkedHashMap<String, String>();\r
832 ffc.getFvImagesFvImageOptions(selectedRow, optionMap);\r
833 if (optionMap.size() > 0){\r
834 fvOptionTableModel.setRowCount(0);\r
835 Set<String> key = optionMap.keySet();\r
836 Iterator<String> i = key.iterator();\r
837 while (i.hasNext()) {\r
838 \r
839 String k = (String)i.next();\r
840 String[] row = {k, optionMap.get(k)};\r
841 \r
842 fvOptionTableModel.addRow(row);\r
843 }\r
844 }\r
845 \r
846 }\r
847 }\r
848 });\r
849 \r
850 \r
851 }\r
852 return jTableFvInfo;\r
853 }\r
854\r
855\r
856 /**\r
857 * This method initializes jButton6 \r
858 * \r
859 * @return javax.swing.JButton \r
860 */\r
861 private JButton getJButtonDelFvImage() {\r
862 if (jButtonDelFvImage == null) {\r
863 jButtonDelFvImage = new JButton();\r
864 jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(120,20));\r
865// jButton6.setEnabled(false);\r
866 jButtonDelFvImage.setText("Delete Row");\r
867 jButtonDelFvImage.addActionListener(new AbstractAction() {\r
868 /**\r
869 * \r
870 */\r
871 private static final long serialVersionUID = 1L;\r
872\r
873 public void actionPerformed(ActionEvent arg0) {\r
874 // TODO Auto-generated method stub\r
875 if (jTableFvInfo.getSelectedRow() >= 0 ) {\r
876 ffc.removeFvImagesFvImage(jTableFvInfo.getSelectedRow());\r
877 fvImageParaTableModel.removeRow(jTableFvInfo.getSelectedRow());\r
878 docConsole.setSaved(false);\r
879 }\r
880 }\r
881 \r
882 });\r
883 }\r
884 return jButtonDelFvImage;\r
885 }\r
886\r
887\r
888 /**\r
889 * This method initializes jCheckBox3 \r
890 * \r
891 * @return javax.swing.JCheckBox \r
892 */\r
893 private JCheckBox getJCheckBoxFvImageOpts() {\r
894 if (jCheckBoxFvImageOpts == null) {\r
895 jCheckBoxFvImageOpts = new JCheckBox();\r
896 jCheckBoxFvImageOpts.setText("FV Image Options");\r
897 jCheckBoxFvImageOpts.addItemListener(new ItemListener(){\r
898\r
899 public void itemStateChanged(ItemEvent arg0) {\r
900 // TODO Auto-generated method stub\r
901// boolean selected = jCheckBox3.isSelected();\r
902 \r
903 if (!jCheckBoxFvImagePara.isSelected() || jComboBoxFvParaType.getSelectedIndex() == 0) {\r
904 return;\r
905 }\r
906 \r
907// jLabel5.setEnabled(selected);\r
908// jTextField4.setEnabled(selected);\r
909// jLabel6.setEnabled(selected);\r
910// jTextField5.setEnabled(selected);\r
911// jButton7.setEnabled(selected);\r
912// jButton8.setEnabled(selected);\r
913\r
914 }\r
915 \r
916 });\r
917 }\r
918 return jCheckBoxFvImageOpts;\r
919 }\r
920\r
921\r
922 /**\r
923 * This method initializes jPanel6 \r
924 * \r
925 * @return javax.swing.JPanel \r
926 */\r
927 private JPanel getJPanelFvImagePara() {\r
928 if (jPanelFvImagePara == null) {\r
929 StarLabel starLabel = new StarLabel();\r
930 starLabel.setVisible(false);\r
931 jPanelFvImagePara = new JPanel();\r
932 jPanelFvImagePara.setPreferredSize(new java.awt.Dimension(480,120));\r
933 jPanelFvImagePara.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
934 jPanelFvImagePara.add(getJCheckBoxFvImagePara(), null);\r
935 jPanelFvImagePara.add(jLabelFvParaType, null);\r
936 jPanelFvImagePara.add(getJComboBoxFvParaType(), null);\r
937 jPanelFvImagePara.add(new StarLabel(), null);\r
938 jPanelFvImagePara.add(jLabelFvImageNames, null);\r
939 jPanelFvImagePara.add(jLabelFvParaName, null);\r
940 jPanelFvImagePara.add(getJTextFieldFvParaName(), null);\r
941 jPanelFvImagePara.add(getJButtonFvParaAdd(), null);\r
942 jPanelFvImagePara.add(getJScrollPaneFvImageNames(), null);\r
943 jPanelFvImagePara.add(getJButtonFvParaDel(), null);\r
944 }\r
945 return jPanelFvImagePara;\r
946 }\r
947\r
948 /**\r
949 * This method initializes jPanel7 \r
950 * \r
951 * @return javax.swing.JPanel \r
952 */\r
953 private JPanel getJPanelFdf() {\r
954 if (jPanelFdf == null) {\r
955 FlowLayout flowLayout1 = new FlowLayout();\r
956 flowLayout1.setAlignment(FlowLayout.LEFT);\r
957 jPanelFdf = new JPanel();\r
958 jPanelFdf.setLayout(flowLayout1);\r
959 jPanelFdf.add(getJCheckBoxFdf(), null);\r
960 jPanelFdf.add(getJTextFieldFdf(), null);\r
961 jPanelFdf.add(getJButtonFdfBrowse(), null);\r
962 jPanelFdf.addComponentListener(new ComponentAdapter(){\r
963 public void componentShown(ComponentEvent e) {\r
964 if (ffc.getFlashDefinitionFile() != null) {\r
965 jTextFieldFdf.setText(ffc.getFlashDefinitionFile());\r
966 }\r
967 }\r
968 public void componentHidden(ComponentEvent e) {\r
969 if (jCheckBoxFdf.isSelected()) {\r
970 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
971 }\r
972 }\r
973 });\r
974 }\r
975 return jPanelFdf;\r
976 }\r
977\r
978 /**\r
979 * This method initializes jCheckBox \r
980 * \r
981 * @return javax.swing.JCheckBox \r
982 */\r
983 private JCheckBox getJCheckBoxFdf() {\r
984 if (jCheckBoxFdf == null) {\r
985 jCheckBoxFdf = new JCheckBox();\r
986 jCheckBoxFdf.setText("Flash Definition File");\r
987 jCheckBoxFdf.addItemListener(new ItemListener() {\r
988\r
989 public void itemStateChanged(ItemEvent arg0) {\r
990 // TODO Auto-generated method stub\r
991 if (jCheckBoxFdf.isSelected()){\r
992 jTextFieldFdf.setEnabled(true);\r
993 jButtonFdfBrowse.setEnabled(true);\r
994 }\r
995 else {\r
996 \r
997 jTextFieldFdf.setEnabled(false);\r
998 jButtonFdfBrowse.setEnabled(false);\r
999 }\r
1000 }\r
1001 });\r
1002 }\r
1003 return jCheckBoxFdf;\r
1004 }\r
1005\r
1006 /**\r
1007 * This method initializes jTextField3 \r
1008 * \r
1009 * @return javax.swing.JTextField \r
1010 */\r
1011 private JTextField getJTextFieldFdf() {\r
1012 if (jTextFieldFdf == null) {\r
1013 jTextFieldFdf = new JTextField();\r
1014 jTextFieldFdf.setEnabled(false);\r
1015 jTextFieldFdf.setPreferredSize(new Dimension(300, 20));\r
1016 jTextFieldFdf.addFocusListener(new java.awt.event.FocusAdapter() {\r
1017 public void focusLost(java.awt.event.FocusEvent e) {\r
1018 ffc.genFlashDefinitionFile(jTextFieldFdf.getText());\r
1019 }\r
1020 });\r
1021 }\r
1022 return jTextFieldFdf;\r
1023 }\r
1024\r
1025 /**\r
1026 * This method initializes jButton5 \r
1027 * \r
1028 * @return javax.swing.JButton \r
1029 */\r
1030 private JButton getJButtonFdfBrowse() {\r
1031 if (jButtonFdfBrowse == null) {\r
1032 jButtonFdfBrowse = new JButton();\r
1033 jButtonFdfBrowse.setEnabled(false);\r
1034 jButtonFdfBrowse.setText("Browse");\r
1035 jButtonFdfBrowse.setPreferredSize(new Dimension(78, 20));\r
1036 jButtonFdfBrowse.addActionListener(new AbstractAction(){\r
1037 /**\r
1038 * \r
1039 */\r
1040 private static final long serialVersionUID = 1L;\r
1041\r
1042 public void actionPerformed(ActionEvent e) {\r
1043 // TODO Auto-generated method stub\r
1044 String wsDir = System.getenv("WORKSPACE");\r
1045 JFileChooser chooser = new JFileChooser(wsDir);\r
1046 chooser.setMultiSelectionEnabled(false);\r
1047 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
1048 int retval = chooser.showOpenDialog(frame);\r
1049 if (retval == JFileChooser.APPROVE_OPTION) {\r
1050\r
1051 File theFile = chooser.getSelectedFile();\r
1052 String filePath = theFile.getPath();\r
1053 if (!filePath.startsWith(wsDir)) {\r
1054 JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE.");\r
1055 return;\r
1056 }\r
1057 jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
1058 }\r
1059 }\r
1060 \r
1061 });\r
1062 }\r
1063 return jButtonFdfBrowse;\r
1064 }\r
1065\r
1066 /**\r
1067 * This method initializes jTextField4 \r
1068 * \r
1069 * @return javax.swing.JTextField \r
1070 */\r
1071 private JTextField getJTextFieldFvImageOptName() {\r
1072 if (jTextFieldFvImageOptName == null) {\r
1073 jTextFieldFvImageOptName = new JTextField();\r
1074 jTextFieldFvImageOptName.setEnabled(true);\r
1075 jTextFieldFvImageOptName.setPreferredSize(new Dimension(100, 20));\r
1076 }\r
1077 return jTextFieldFvImageOptName;\r
1078 }\r
1079\r
1080 /**\r
1081 * This method initializes jTextField5 \r
1082 * \r
1083 * @return javax.swing.JTextField \r
1084 */\r
1085 private JTextField getJTextFieldFvImageOptValue() {\r
1086 if (jTextFieldFvImageOptValue == null) {\r
1087 jTextFieldFvImageOptValue = new JTextField();\r
1088 jTextFieldFvImageOptValue.setEnabled(true);\r
1089 jTextFieldFvImageOptValue.setPreferredSize(new Dimension(100, 20));\r
1090 }\r
1091 return jTextFieldFvImageOptValue;\r
1092 }\r
1093\r
1094 /**\r
1095 * This method initializes jPanel8 \r
1096 * \r
1097 * @return javax.swing.JPanel \r
1098 */\r
1099 private JPanel getJPanelFvImageOptsButtonGroup() {\r
1100 if (jPanelFvImageOptsButtonGroup == null) {\r
1101 jPanelFvImageOptsButtonGroup = new JPanel();\r
1102 jPanelFvImageOptsButtonGroup.setPreferredSize(new Dimension(80, 55));\r
1103 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptAdd(), null);\r
1104 jPanelFvImageOptsButtonGroup.add(getJButtonFvImageOptDel(), null);\r
1105 }\r
1106 return jPanelFvImageOptsButtonGroup;\r
1107 }\r
1108\r
1109 /**\r
1110 * This method initializes jButton7 \r
1111 * \r
1112 * @return javax.swing.JButton \r
1113 */\r
1114 private JButton getJButtonFvImageOptAdd() {\r
1115 if (jButtonFvImageOptAdd == null) {\r
1116 jButtonFvImageOptAdd = new JButton();\r
1117 jButtonFvImageOptAdd.setEnabled(true);\r
1118 jButtonFvImageOptAdd.setText("Add");\r
1119 jButtonFvImageOptAdd.setPreferredSize(new Dimension(80, 20));\r
1120 jButtonFvImageOptAdd.addActionListener(new AbstractAction() {\r
1121 /**\r
1122 * \r
1123 */\r
1124 private static final long serialVersionUID = 1L;\r
1125\r
1126 public void actionPerformed(ActionEvent e) {\r
1127 if (jTextFieldFvImageOptName.getText().length() > 0 && jTextFieldFvImageOptValue.getText().length() > 0){\r
1128 String[] row = {jTextFieldFvImageOptName.getText(), jTextFieldFvImageOptValue.getText()}; \r
1129 fvOptionTableModel.addRow(row);\r
1130 }\r
1131 }\r
1132 });\r
1133 }\r
1134 return jButtonFvImageOptAdd;\r
1135 }\r
1136\r
1137 /**\r
1138 * This method initializes jButton8 \r
1139 * \r
1140 * @return javax.swing.JButton \r
1141 */\r
1142 private JButton getJButtonFvImageOptDel() {\r
1143 if (jButtonFvImageOptDel == null) {\r
1144 jButtonFvImageOptDel = new JButton();\r
1145 jButtonFvImageOptDel.setEnabled(true);\r
1146 jButtonFvImageOptDel.setText("Delete");\r
1147 jButtonFvImageOptDel.setPreferredSize(new Dimension(80, 20));\r
1148 jButtonFvImageOptDel.addActionListener(new AbstractAction() {\r
1149 /**\r
1150 * \r
1151 */\r
1152 private static final long serialVersionUID = 1L;\r
1153\r
1154 public void actionPerformed(ActionEvent e) {\r
1155 if (jTableFvImageOpts.getSelectedRow() >= 0){\r
1156 fvOptionTableModel.removeRow(jTableFvProp.getSelectedRow());\r
1157 }\r
1158 }\r
1159 });\r
1160 }\r
1161 return jButtonFvImageOptDel;\r
1162 }\r
1163\r
1164 /**\r
1165 * This method initializes jScrollPane \r
1166 * \r
1167 * @return javax.swing.JScrollPane \r
1168 */\r
1169 private JScrollPane getJScrollPane() {\r
1170 if (jScrollPane == null) {\r
1171 jScrollPane = new JScrollPane();\r
1172 jScrollPane.setPreferredSize(new java.awt.Dimension(350,80));\r
1173 jScrollPane.setViewportView(getJTableFvImageOpts());\r
1174 }\r
1175 return jScrollPane;\r
1176 }\r
1177\r
1178 /**\r
1179 * This method initializes jTable3 \r
1180 * \r
1181 * @return javax.swing.JTable \r
1182 */\r
1183 private JTable getJTableFvImageOpts() {\r
1184 if (jTableFvImageOpts == null) {\r
1185 fvOptionTableModel = new DefaultTableModel();\r
1186 fvOptionTableModel.addColumn("Name");\r
1187 fvOptionTableModel.addColumn("Value");\r
1188 jTableFvImageOpts = new JTable(fvOptionTableModel);\r
1189\r
1190 jTableFvImageOpts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1191 jTableFvImageOpts.setRowHeight(20);\r
1192 \r
1193 }\r
1194 return jTableFvImageOpts;\r
1195 }\r
1196\r
1197 /**\r
1198 * This method initializes jButton9 \r
1199 * \r
1200 * @return javax.swing.JButton \r
1201 */\r
1202 private JButton getJButtonUpdateFvImage() {\r
1203 if (jButtonUpdateFvImage == null) {\r
1204 jButtonUpdateFvImage = new JButton();\r
1205 jButtonUpdateFvImage.setPreferredSize(new Dimension(120, 20));\r
1206 jButtonUpdateFvImage.setActionCommand("Update");\r
1207 jButtonUpdateFvImage.setText("Update FV");\r
1208 jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() {\r
1209 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1210 int row = jTableFvInfo.getSelectedRow();\r
1211 if (jTableFvInfo.isEditing()) {\r
1212 jTableFvInfo.getCellEditor().stopCellEditing();\r
1213 }\r
1214 if (jTableFvImageOpts.isEditing()) {\r
1215 jTableFvImageOpts.getCellEditor().stopCellEditing();\r
1216 }\r
1217 \r
1218 //ToDo Check data validity before update\r
1219 String name = fvImageParaTableModel.getValueAt(row, 0) + "";\r
1220 String type = fvImageParaTableModel.getValueAt(row, 1) + "";\r
1221 \r
1222 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1223 getOptionNameValue(lhm);\r
1224 \r
1225 docConsole.setSaved(false);\r
1226 ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
1227 \r
1228 }\r
1229 });\r
1230 }\r
1231 return jButtonUpdateFvImage;\r
1232 }\r
1233\r
1234 /**\r
1235 * @param args\r
1236 */\r
1237 public static void main(String[] args) {\r
1238 // TODO Auto-generated method stub\r
1239 new FpdFlash().setVisible(true);\r
1240 }\r
1241\r
1242 /**\r
1243 * This method initializes this\r
1244 * \r
1245 * @return void\r
1246 */\r
1247 private void initialize() {\r
1248 this.setSize(518, 650);\r
1249 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
1250 this.setContentPane(getJContentPane());\r
1251 this.setTitle("FPD Flash Definitions");\r
1252 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1253 public void internalFrameDeactivated(InternalFrameEvent e){\r
1254 if (jTableFvProp.isEditing()) {\r
1255 jTableFvProp.getCellEditor().stopCellEditing();\r
1256 }\r
1257 if (jTableFvImageNames.isEditing()) {\r
1258 jTableFvImageNames.getCellEditor().stopCellEditing();\r
1259 }\r
1260 if (jTableFvInfo.isEditing()) {\r
1261 jTableFvInfo.getCellEditor().stopCellEditing();\r
1262 }\r
1263 }\r
1264 });\r
1265 }\r
1266\r
1267 private void init(FpdFileContents ffc) {\r
1268 if (ffc.getFvImagesFvImageCount() == 0) {\r
1269 return;\r
1270 }\r
1271 String[][] saa = new String[ffc.getFvImagesFvImageCount()][2];\r
1272// ArrayList<LinkedHashMap<String, String>> options = new ArrayList<LinkedHashMap<String, String>>(ffc.getFvImagesFvImageCount());\r
1273//\r
1274// for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){\r
1275// options.add(new LinkedHashMap<String, String>());\r
1276// }\r
1277 ffc.getFvImagesFvImages(saa);\r
1278 \r
1279 \r
1280 int i = 0;\r
1281 while (i < saa.length) {\r
1282 \r
1283 fvImageParaTableModel.addRow(saa[i]);\r
1284 ++i;\r
1285 }\r
1286 \r
1287// String fdfFile = ffc.getFlashDefinitionFile();\r
1288// if (fdfFile != null) {\r
1289// jTextField3.setText(fdfFile);\r
1290// }\r
1291 }\r
1292 \r
1293 private void getOptionNameValue(Map<String, String> m){\r
1294 for (int i = 0; i < jTableFvImageOpts.getRowCount(); ++i) {\r
1295 m.put(fvOptionTableModel.getValueAt(i, 0)+"", fvOptionTableModel.getValueAt(i, 1)+"");\r
1296 }\r
1297 }\r
1298 /**\r
1299 * This method initializes jContentPane\r
1300 * \r
1301 * @return javax.swing.JPanel\r
1302 */\r
1303 private JPanel getJContentPane() {\r
1304 if (jContentPane == null) {\r
1305 jContentPane = new JPanel();\r
1306 jContentPane.setLayout(new BorderLayout());\r
1307 jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
1308 jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
1309 jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
1310 jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
1311 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1312 }\r
1313 return jContentPane;\r
1314 }\r
1315\r
1316} // @jve:decl-index=0:visual-constraint="10,10"\r
1317\r
1318class ImageParaTableModel extends DefaultTableModel {\r
1319\r
1320 private static final long serialVersionUID = 1L;\r
1321 \r
1322 public boolean isCellEditable(int row, int col) {\r
1323 if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
1324 return false;\r
1325 }\r
1326 return true;\r
1327 }\r
1328}\r
1329\r