]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
Simplify the script. It now allows normal ant targets and flags to be passed straight...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdBuildOptions.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update BuildOptions of Fpd file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard.platform.ui;\r
16\r
17import java.awt.BorderLayout;\r
a13899c5 18\r
19import javax.swing.JPanel;\r
a13899c5 20import javax.swing.JTabbedPane;\r
21import javax.swing.JCheckBox;\r
22import javax.swing.JLabel;\r
23import java.awt.FlowLayout;\r
24import javax.swing.AbstractAction;\r
25import java.awt.event.ActionEvent;\r
26import java.awt.event.ActionListener;\r
a13899c5 27\r
a13899c5 28import javax.swing.DefaultCellEditor;\r
a13899c5 29import javax.swing.JTextField;\r
30import javax.swing.JButton;\r
31import javax.swing.JScrollPane;\r
32import javax.swing.JTable;\r
33import javax.swing.JComboBox;\r
a13899c5 34import javax.swing.ListSelectionModel;\r
44053733 35import javax.swing.event.InternalFrameAdapter;\r
36import javax.swing.event.InternalFrameEvent;\r
a13899c5 37import javax.swing.event.ListSelectionEvent;\r
38import javax.swing.event.ListSelectionListener;\r
39import javax.swing.event.TableModelEvent;\r
40import javax.swing.event.TableModelListener;\r
41import javax.swing.table.DefaultTableModel;\r
42import javax.swing.table.TableColumn;\r
43import javax.swing.table.TableModel;\r
a13899c5 44\r
45import org.tianocore.PlatformSurfaceAreaDocument;\r
46import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
6cba26e8 47import java.util.ArrayList;\r
48import java.util.Iterator;\r
49import java.util.LinkedHashMap;\r
50import java.util.Set;\r
1800d80f 51import java.util.Vector;\r
a13899c5 52\r
53public class FpdBuildOptions extends IInternalFrame {\r
54\r
55 private static final long serialVersionUID = 1L;\r
56 private JPanel jContentPane = null;\r
57 private JPanel jPanel = null;\r
58 private JPanel jPanel1 = null;\r
59 private JPanel jPanel2 = null;\r
60 private JPanel jPanel3 = null;\r
61 private JTabbedPane jTabbedPane = null;\r
62 private JPanel jPanel8 = null;\r
63 private JPanel jPanel9 = null;\r
64 private JPanel jPanel10 = null;\r
65 private JPanel jPanel11 = null;\r
a13899c5 66 private JTextField jTextField2 = null;\r
67 private JLabel jLabel3 = null;\r
68 private JTextField jTextField3 = null;\r
69 private JButton jButton4 = null;\r
70 private JButton jButton5 = null;\r
a13899c5 71 private JTextField jTextField4 = null;\r
72 private JScrollPane jScrollPane2 = null;\r
73 private JTable jTable2 = null;\r
44053733 74 private DefaultTableModel ffsTableModel = null;\r
6cba26e8 75 private DefaultTableModel sectionsTableModel = null;\r
76 private DefaultTableModel sectionTableModel = null;\r
77 private DefaultTableModel subsectionsTableModel = null;\r
a13899c5 78 private DefaultTableModel antTaskTableModel = null;\r
79 private DefaultTableModel ffsAttributesTableModel = null;\r
80 private DefaultTableModel optionsTableModel = null;\r
81 private JPanel jPanel13 = null;\r
a13899c5 82 private JPanel jPanel18 = null;\r
a13899c5 83 private JPanel jPanel15 = null;\r
84 private JPanel jPanel16 = null;\r
85 private JPanel jPanel17 = null;\r
86 private JLabel jLabel7 = null;\r
87 private JTextField jTextField6 = null;\r
88 private JButton jButton8 = null;\r
89 private JButton jButton9 = null;\r
a13899c5 90 private JScrollPane jScrollPane5 = null;\r
91 private JTable jTable4 = null;\r
92 private JPanel jPanel19 = null;\r
93 private JPanel jPanel20 = null;\r
94 private JLabel jLabel9 = null;\r
95 private JTextField jTextField7 = null;\r
96 private JLabel jLabel10 = null;\r
97 private JComboBox jComboBox2 = null;\r
98 private JLabel jLabel11 = null;\r
99 private JLabel jLabel12 = null;\r
100 private JTextField jTextField8 = null;\r
101 private JScrollPane jScrollPane6 = null;\r
102 private JTable jTable5 = null;\r
103 private JButton jButton10 = null;\r
104 private JButton jButton11 = null;\r
a13899c5 105 private JButton jButton17 = null;\r
106 private JButton jButton18 = null;\r
107 private FpdFileContents ffc = null;\r
108 private JButton jButton19 = null;\r
109 private JCheckBox jCheckBox9 = null;\r
110 private JCheckBox jCheckBox10 = null;\r
111 private JCheckBox jCheckBox11 = null;\r
112 private JCheckBox jCheckBox12 = null;\r
113 private JCheckBox jCheckBox13 = null;\r
114 private JCheckBox jCheckBox14 = null;\r
115 private JLabel jLabel14 = null;\r
116 private JTextField jTextField12 = null;\r
117 private JTextField jTextField13 = null;\r
118 private JLabel jLabel15 = null;\r
119 private int selectedRow = -1;\r
202c4f38 120 private JLabel jLabel = null;\r
121 private JLabel jLabel1 = null;\r
44053733 122 private JScrollPane jScrollPane = null;\r
123 private JTable jTable = null;\r
6cba26e8 124 private JLabel jLabel2 = null;\r
125 private JScrollPane jScrollPane1 = null;\r
126 private JTable jTable1 = null;\r
127 private JLabel jLabel4 = null;\r
128 private JScrollPane jScrollPane3 = null;\r
129 private JTable jTable3 = null;\r
130 private JLabel jLabel5 = null;\r
131 private JTextField jTextField = null;\r
132 private JPanel jPanel4 = null;\r
133 private JLabel jLabel6 = null;\r
134 private JButton jButton = null;\r
135 private JButton jButton1 = null;\r
136 private JButton jButton2 = null;\r
137 private JButton jButton3 = null;\r
138 private JLabel jLabel8 = null;\r
139 private JButton jButton6 = null;\r
140 private JButton jButton7 = null;\r
141 private JScrollPane jScrollPane4 = null;\r
142 private JTable jTable6 = null;\r
a13899c5 143 /**\r
144 * This method initializes jPanel \r
145 * \r
146 * @return javax.swing.JPanel \r
147 */\r
148 private JPanel getJPanel() {\r
149 if (jPanel == null) {\r
150 jPanel = new JPanel();\r
151 }\r
152 return jPanel;\r
153 }\r
154\r
155 /**\r
156 * This method initializes jPanel1 \r
157 * \r
158 * @return javax.swing.JPanel \r
159 */\r
160 private JPanel getJPanel1() {\r
161 if (jPanel1 == null) {\r
162 jPanel1 = new JPanel();\r
163 }\r
164 return jPanel1;\r
165 }\r
166\r
167 /**\r
168 * This method initializes jPanel2 \r
169 * \r
170 * @return javax.swing.JPanel \r
171 */\r
172 private JPanel getJPanel2() {\r
173 if (jPanel2 == null) {\r
174 jPanel2 = new JPanel();\r
175 }\r
176 return jPanel2;\r
177 }\r
178\r
179 /**\r
180 * This method initializes jPanel3 \r
181 * \r
182 * @return javax.swing.JPanel \r
183 */\r
184 private JPanel getJPanel3() {\r
185 if (jPanel3 == null) {\r
186 jPanel3 = new JPanel();\r
187 }\r
188 return jPanel3;\r
189 }\r
190\r
191 /**\r
192 * This method initializes jTabbedPane \r
193 * \r
194 * @return javax.swing.JTabbedPane \r
195 */\r
196 private JTabbedPane getJTabbedPane() {\r
197 if (jTabbedPane == null) {\r
198 jTabbedPane = new JTabbedPane();\r
199 jTabbedPane.addTab("FFS", null, getJPanel13(), null);\r
200 jTabbedPane.addTab("Options", null, getJPanel20(), null);\r
201 jTabbedPane.addTab("User Defined ANT Tasks", null, getJPanel8(), null);\r
202 }\r
203 return jTabbedPane;\r
204 }\r
205\r
206 \r
207 /**\r
208 * This method initializes jPanel8 \r
209 * \r
210 * @return javax.swing.JPanel \r
211 */\r
212 private JPanel getJPanel8() {\r
213 if (jPanel8 == null) {\r
214 jPanel8 = new JPanel();\r
215 jPanel8.setLayout(new BorderLayout());\r
216 jPanel8.add(getJPanel9(), java.awt.BorderLayout.NORTH);\r
217 jPanel8.add(getJPanel10(), java.awt.BorderLayout.SOUTH);\r
218 jPanel8.add(getJPanel11(), java.awt.BorderLayout.CENTER);\r
202c4f38 219\r
a13899c5 220 }\r
221 return jPanel8;\r
222 }\r
223\r
224 /**\r
225 * This method initializes jPanel9 \r
226 * \r
227 * @return javax.swing.JPanel \r
228 */\r
229 private JPanel getJPanel9() {\r
230 if (jPanel9 == null) {\r
202c4f38 231 jLabel = new JLabel();\r
232 jLabel.setText("ANT Task File");\r
233 jLabel.setPreferredSize(new java.awt.Dimension(80,20));\r
a13899c5 234 FlowLayout flowLayout8 = new FlowLayout();\r
235 flowLayout8.setAlignment(java.awt.FlowLayout.LEFT);\r
236 jLabel3 = new JLabel();\r
237 jLabel3.setText("ID");\r
238 jPanel9 = new JPanel();\r
239 jPanel9.setLayout(flowLayout8);\r
202c4f38 240 jPanel9.add(jLabel, null);\r
a13899c5 241 jPanel9.add(getJTextField2(), null);\r
242 jPanel9.add(jLabel3, null);\r
243 jPanel9.add(getJTextField3(), null);\r
a13899c5 244 }\r
245 return jPanel9;\r
246 }\r
247\r
248 /**\r
249 * This method initializes jPanel10 \r
250 * \r
251 * @return javax.swing.JPanel \r
252 */\r
253 private JPanel getJPanel10() {\r
254 if (jPanel10 == null) {\r
255 jPanel10 = new JPanel();\r
256 }\r
257 return jPanel10;\r
258 }\r
259\r
260 /**\r
261 * This method initializes jPanel11 \r
262 * \r
263 * @return javax.swing.JPanel \r
264 */\r
265 private JPanel getJPanel11() {\r
266 if (jPanel11 == null) {\r
202c4f38 267 jLabel1 = new JLabel();\r
268 jLabel1.setText("ANT Command Options");\r
269 jLabel1.setPreferredSize(new java.awt.Dimension(131,20));\r
a13899c5 270 FlowLayout flowLayout3 = new FlowLayout();\r
271 flowLayout3.setHgap(5);\r
272 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
a13899c5 273 jPanel11 = new JPanel();\r
274 jPanel11.setLayout(flowLayout3);\r
202c4f38 275 jPanel11.add(jLabel1, null);\r
a13899c5 276 jPanel11.add(getJTextField4(), null);\r
202c4f38 277 jPanel11.add(getJButton4(), null);\r
278 jPanel11.add(getJButton5(), null);\r
a13899c5 279 jPanel11.add(getJScrollPane2(), null);\r
280 }\r
281 return jPanel11;\r
282 }\r
283\r
a13899c5 284 /**\r
285 * This method initializes jTextField2 \r
286 * \r
287 * @return javax.swing.JTextField \r
288 */\r
289 private JTextField getJTextField2() {\r
290 if (jTextField2 == null) {\r
291 jTextField2 = new JTextField();\r
292 jTextField2.setPreferredSize(new java.awt.Dimension(200,20));\r
293 }\r
294 return jTextField2;\r
295 }\r
296\r
297 /**\r
298 * This method initializes jTextField3 \r
299 * \r
300 * @return javax.swing.JTextField \r
301 */\r
302 private JTextField getJTextField3() {\r
303 if (jTextField3 == null) {\r
304 jTextField3 = new JTextField();\r
305 jTextField3.setPreferredSize(new java.awt.Dimension(100,20));\r
306 }\r
307 return jTextField3;\r
308 }\r
309\r
310 /**\r
311 * This method initializes jButton4 \r
312 * \r
313 * @return javax.swing.JButton \r
314 */\r
315 private JButton getJButton4() {\r
316 if (jButton4 == null) {\r
317 jButton4 = new JButton();\r
202c4f38 318 jButton4.setPreferredSize(new java.awt.Dimension(90,20));\r
a13899c5 319 jButton4.setText("Add");\r
320 jButton4.addActionListener(new ActionListener() {\r
321 public void actionPerformed(ActionEvent e) {\r
322 Object[] o = {jTextField3.getText(), null, null};\r
a13899c5 323 o[1] = jTextField2.getText();\r
a13899c5 324 o[2] = jTextField4.getText();\r
325 ffc.genBuildOptionsUserDefAntTask(o[0]+"", null, o[2]+"");\r
a13899c5 326 antTaskTableModel.addRow(o);\r
327 \r
328 }\r
329 });\r
330 }\r
331 return jButton4;\r
332 }\r
333\r
334 /**\r
335 * This method initializes jButton5 \r
336 * \r
337 * @return javax.swing.JButton \r
338 */\r
339 private JButton getJButton5() {\r
340 if (jButton5 == null) {\r
341 jButton5 = new JButton();\r
202c4f38 342 jButton5.setPreferredSize(new java.awt.Dimension(90,20));\r
a13899c5 343 jButton5.setText("Delete");\r
344 jButton5.addActionListener(new ActionListener() {\r
345 public void actionPerformed(ActionEvent e) {\r
346 if (selectedRow >= 0) {\r
347 antTaskTableModel.removeRow(selectedRow);\r
348 ffc.removeBuildOptionsUserDefAntTask(selectedRow);\r
349 }\r
350 }\r
351 });\r
352 }\r
353 return jButton5;\r
354 }\r
355\r
a13899c5 356 /**\r
357 * This method initializes jTextField4 \r
358 * \r
359 * @return javax.swing.JTextField \r
360 */\r
361 private JTextField getJTextField4() {\r
362 if (jTextField4 == null) {\r
363 jTextField4 = new JTextField();\r
202c4f38 364 jTextField4.setPreferredSize(new java.awt.Dimension(270,20));\r
365 jTextField4.setEnabled(true);\r
a13899c5 366 }\r
367 return jTextField4;\r
368 }\r
369\r
370 /**\r
371 * This method initializes jScrollPane2 \r
372 * \r
373 * @return javax.swing.JScrollPane \r
374 */\r
375 private JScrollPane getJScrollPane2() {\r
376 if (jScrollPane2 == null) {\r
377 jScrollPane2 = new JScrollPane();\r
378 jScrollPane2.setPreferredSize(new java.awt.Dimension(600,100));\r
379 jScrollPane2.setViewportView(getJTable2());\r
380 }\r
381 return jScrollPane2;\r
382 }\r
383\r
384 /**\r
385 * This method initializes jTable2 \r
386 * \r
387 * @return javax.swing.JTable \r
388 */\r
389 private JTable getJTable2() {\r
390 if (jTable2 == null) {\r
391 antTaskTableModel = new DefaultTableModel();\r
392 jTable2 = new JTable(antTaskTableModel);\r
393 antTaskTableModel.addColumn("ID");\r
394 antTaskTableModel.addColumn("Filename");\r
202c4f38 395 antTaskTableModel.addColumn("ANT Command Options");\r
a13899c5 396 \r
397 jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
398 jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
399 public void valueChanged(ListSelectionEvent e) {\r
400 selectedRow = -1;\r
401 if (e.getValueIsAdjusting()){\r
402 return;\r
403 }\r
404 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
405 if (lsm.isSelectionEmpty()) {\r
406 return;\r
407 }\r
408 else{\r
409 selectedRow = lsm.getMinSelectionIndex();\r
410 }\r
411 }\r
412 });\r
413 \r
414 jTable2.getModel().addTableModelListener(new TableModelListener() {\r
415 public void tableChanged(TableModelEvent arg0) {\r
416 // TODO Auto-generated method stub\r
417 int row = arg0.getFirstRow();\r
418 TableModel m = (TableModel)arg0.getSource();\r
419 if (arg0.getType() == TableModelEvent.UPDATE){\r
420 //ToDo Data Validition check.\r
421 String id = m.getValueAt(row, 0) + "";\r
422 String file = m.getValueAt(row, 1) + "";\r
423 String execOrder = m.getValueAt(row, 2) + "";\r
424 if (id.length() == 0) {\r
425 return;\r
426 }\r
427 if (file.length() == 0 && execOrder.length() == 0){\r
428 return;\r
429 }\r
430 if (file.length() == 0) {\r
431 file = null;\r
432 }\r
433 if (execOrder.length() == 0) {\r
434 execOrder = null;\r
435 }\r
436 ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);\r
437 \r
438 }\r
439 }\r
440 });\r
441 }\r
442 return jTable2;\r
443 }\r
444\r
445 /**\r
446 * This method initializes jPanel13 \r
447 * \r
448 * @return javax.swing.JPanel \r
449 */\r
450 private JPanel getJPanel13() {\r
451 if (jPanel13 == null) {\r
452 jPanel13 = new JPanel();\r
453 jPanel13.setLayout(new BorderLayout());\r
a13899c5 454 jPanel13.add(getJPanel18(), java.awt.BorderLayout.CENTER);\r
44053733 455 jPanel13.add(getJScrollPane(), java.awt.BorderLayout.WEST);\r
a13899c5 456 }\r
457 return jPanel13;\r
458 }\r
459\r
a13899c5 460 /**\r
461 * This method initializes jPanel18 \r
462 * \r
463 * @return javax.swing.JPanel \r
464 */\r
465 private JPanel getJPanel18() {\r
466 if (jPanel18 == null) {\r
467 jPanel18 = new JPanel();\r
468 jPanel18.setLayout(new BorderLayout());\r
469 jPanel18.add(getJPanel15(), java.awt.BorderLayout.NORTH);\r
470 jPanel18.add(getJPanel16(), java.awt.BorderLayout.SOUTH);\r
471 jPanel18.add(getJPanel17(), java.awt.BorderLayout.EAST);\r
472 jPanel18.add(getJPanel19(), java.awt.BorderLayout.CENTER);\r
473 }\r
474 return jPanel18;\r
475 }\r
476\r
a13899c5 477 /**\r
478 * This method initializes jPanel15 \r
479 * \r
480 * @return javax.swing.JPanel \r
481 */\r
482 private JPanel getJPanel15() {\r
483 if (jPanel15 == null) {\r
6cba26e8 484 jLabel5 = new JLabel();\r
485 jLabel5.setText("Encapsulation Type");\r
a13899c5 486 FlowLayout flowLayout5 = new FlowLayout();\r
487 flowLayout5.setAlignment(java.awt.FlowLayout.RIGHT);\r
488 jLabel7 = new JLabel();\r
6cba26e8 489 jLabel7.setText("FFS Key");\r
a13899c5 490 jPanel15 = new JPanel();\r
491 jPanel15.setLayout(flowLayout5);\r
492 jPanel15.add(jLabel7, null);\r
493 jPanel15.add(getJTextField6(), null);\r
6cba26e8 494 jPanel15.add(jLabel5, null);\r
495 jPanel15.add(getJTextField(), null);\r
a13899c5 496 jPanel15.add(getJButton8(), null);\r
497 jPanel15.add(getJButton9(), null);\r
498 }\r
499 return jPanel15;\r
500 }\r
501\r
502 /**\r
503 * This method initializes jPanel16 \r
504 * \r
505 * @return javax.swing.JPanel \r
506 */\r
507 private JPanel getJPanel16() {\r
508 if (jPanel16 == null) {\r
6cba26e8 509 jLabel6 = new JLabel();\r
510 jLabel6.setText("Attributes");\r
a13899c5 511 FlowLayout flowLayout6 = new FlowLayout();\r
512 flowLayout6.setHgap(5);\r
6cba26e8 513 flowLayout6.setVgap(20);\r
514 flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);\r
a13899c5 515 jPanel16 = new JPanel();\r
516 jPanel16.setPreferredSize(new java.awt.Dimension(491,130));\r
517 jPanel16.setLayout(flowLayout6);\r
6cba26e8 518 jPanel16.add(jLabel6, null);\r
a13899c5 519 jPanel16.add(getJScrollPane5(), null);\r
6cba26e8 520 jPanel16.add(getJPanel4(), null);\r
a13899c5 521 }\r
522 return jPanel16;\r
523 }\r
524\r
525 /**\r
526 * This method initializes jPanel17 \r
527 * \r
528 * @return javax.swing.JPanel \r
529 */\r
530 private JPanel getJPanel17() {\r
531 if (jPanel17 == null) {\r
532 jPanel17 = new JPanel();\r
a13899c5 533 }\r
534 return jPanel17;\r
535 }\r
536\r
537 /**\r
538 * This method initializes jTextField6 \r
539 * \r
540 * @return javax.swing.JTextField \r
541 */\r
542 private JTextField getJTextField6() {\r
543 if (jTextField6 == null) {\r
544 jTextField6 = new JTextField();\r
6cba26e8 545 jTextField6.setPreferredSize(new java.awt.Dimension(100,20));\r
3b405e9b 546 jTextField6.setEditable(false);\r
547 jTextField6.addFocusListener(new java.awt.event.FocusAdapter() {\r
548 public void focusLost(java.awt.event.FocusEvent e) {\r
549 if (jTable.getSelectedRow() < 0) {\r
550 return;\r
551 }\r
552// ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());\r
553 }\r
554 });\r
a13899c5 555 }\r
556 return jTextField6;\r
557 }\r
558\r
559 /**\r
560 * This method initializes jButton8 \r
561 * \r
562 * @return javax.swing.JButton \r
563 */\r
564 private JButton getJButton8() {\r
565 if (jButton8 == null) {\r
566 jButton8 = new JButton();\r
567 jButton8.setPreferredSize(new java.awt.Dimension(70,20));\r
568 jButton8.setText("Add");\r
569 jButton8.addActionListener(new AbstractAction() {\r
44053733 570 /**\r
571 * \r
572 */\r
573 private static final long serialVersionUID = -2923720717273384221L;\r
574\r
a13899c5 575 public void actionPerformed(java.awt.event.ActionEvent e) {\r
576 if (jTextField6.getText().length() > 0) {\r
6cba26e8 577 String[] row = {jTextField6.getText()};\r
578 ffsTableModel.addRow(row);\r
579 ffc.genBuildOptionsFfs(jTextField6.getText(), jTextField.getText());\r
a13899c5 580 }\r
581 }\r
582 });\r
583 }\r
584 return jButton8;\r
585 }\r
586\r
587 /**\r
588 * This method initializes jButton9 \r
589 * \r
590 * @return javax.swing.JButton \r
591 */\r
592 private JButton getJButton9() {\r
593 if (jButton9 == null) {\r
594 jButton9 = new JButton();\r
595 jButton9.setPreferredSize(new java.awt.Dimension(70,20));\r
596 jButton9.setText("Delete");\r
597 jButton9.addActionListener(new AbstractAction() {\r
44053733 598 /**\r
599 * \r
600 */\r
601 private static final long serialVersionUID = -4002678939178194476L;\r
602\r
a13899c5 603 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 604 if (jTable.getSelectedRow() < 0) {\r
605 return;\r
606 }\r
607 ffc.removeBuildOptionsFfs(jTable.getSelectedRow());\r
a13899c5 608 }\r
609 });\r
610 }\r
611 return jButton9;\r
612 }\r
613\r
a13899c5 614 /**\r
615 * This method initializes jScrollPane5 \r
616 * \r
617 * @return javax.swing.JScrollPane \r
618 */\r
619 private JScrollPane getJScrollPane5() {\r
620 if (jScrollPane5 == null) {\r
621 jScrollPane5 = new JScrollPane();\r
622 jScrollPane5.setPreferredSize(new java.awt.Dimension(350,100));\r
623 jScrollPane5.setViewportView(getJTable4());\r
624 }\r
625 return jScrollPane5;\r
626 }\r
627\r
628 /**\r
629 * This method initializes jTable4 \r
630 * \r
631 * @return javax.swing.JTable \r
632 */\r
633 private JTable getJTable4() {\r
634 if (jTable4 == null) {\r
635 ffsAttributesTableModel = new DefaultTableModel();\r
636 jTable4 = new JTable(ffsAttributesTableModel);\r
637 jTable4.setPreferredSize(new java.awt.Dimension(400,80));\r
638 ffsAttributesTableModel.addColumn("Name");\r
639 ffsAttributesTableModel.addColumn("Value");\r
6cba26e8 640 \r
641 jTable4.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
642 jTable4.getModel().addTableModelListener(new TableModelListener() {\r
643 public void tableChanged(TableModelEvent arg0) {\r
644 // TODO Auto-generated method stub\r
645 int row = arg0.getFirstRow();\r
646 TableModel m = (TableModel)arg0.getSource();\r
647 if (arg0.getType() == TableModelEvent.UPDATE){\r
648 //ToDo Data Validition check.\r
649 String name = m.getValueAt(row, 0) + "";\r
650 String value = m.getValueAt(row, 1) + "";\r
651 \r
652 if (name.length() == 0) {\r
653 return;\r
654 }\r
655 if (value.length() == 0){\r
656 return;\r
657 }\r
658 ffc.updateBuildOptionsFfsAttribute(jTable.getSelectedRow(), row, name, value);\r
659 }\r
660 }\r
661 });\r
a13899c5 662 }\r
663 return jTable4;\r
664 }\r
665\r
666 /**\r
667 * This method initializes jPanel19 \r
668 * \r
669 * @return javax.swing.JPanel \r
670 */\r
671 private JPanel getJPanel19() {\r
672 if (jPanel19 == null) {\r
6cba26e8 673 jLabel8 = new JLabel();\r
674 jLabel8.setText("Sections");\r
675 jLabel4 = new JLabel();\r
676 jLabel4.setText("Sub-Sections");\r
677 jLabel2 = new JLabel();\r
678 jLabel2.setText("Section");\r
a13899c5 679 jPanel19 = new JPanel();\r
6cba26e8 680 jPanel19.setLayout(new FlowLayout());\r
681 jPanel19.add(jLabel2, null);\r
682 jPanel19.add(getJButton(), null);\r
683 jPanel19.add(getJButton1(), null);\r
684 jPanel19.add(getJScrollPane1(), null);\r
685 jPanel19.add(jLabel8, null);\r
686 jPanel19.add(getJButton6(), null);\r
687 jPanel19.add(getJButton7(), null);\r
688 jPanel19.add(getJScrollPane4(), null);\r
689 jPanel19.add(jLabel4, null);\r
690 jPanel19.add(getJButton2(), null);\r
691 jPanel19.add(getJButton3(), null);\r
692 jPanel19.add(getJScrollPane3(), null);\r
a13899c5 693 }\r
694 return jPanel19;\r
695 }\r
696\r
697 /**\r
698 * This method initializes jPanel20 \r
699 * \r
700 * @return javax.swing.JPanel \r
701 */\r
702 private JPanel getJPanel20() {\r
703 if (jPanel20 == null) {\r
704 jLabel15 = new JLabel();\r
705 jLabel15.setText("Tag Name");\r
706 FlowLayout flowLayout9 = new FlowLayout();\r
707 flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);\r
708 jLabel14 = new JLabel();\r
709 jLabel14.setText("Build Targets");\r
710 jLabel12 = new JLabel();\r
711 jLabel12.setText("Tool Command");\r
712 jLabel11 = new JLabel();\r
713 jLabel11.setText("Supported Arch");\r
714 jLabel10 = new JLabel();\r
715 jLabel10.setText("Tool Chain Family");\r
716 jLabel9 = new JLabel();\r
717 jLabel9.setText("Option Contents");\r
718 jPanel20 = new JPanel();\r
719 jPanel20.setLayout(flowLayout9);\r
720 jPanel20.add(jLabel14, null);\r
721 jPanel20.add(getJTextField12(), null);\r
722 jPanel20.add(jLabel10, null);\r
723 jPanel20.add(getJComboBox2(), null);\r
724 jPanel20.add(jLabel12, null);\r
725 jPanel20.add(getJTextField8(), null);\r
726 jPanel20.add(jLabel11, null);\r
727 jPanel20.add(getJCheckBox9(), null);\r
728 jPanel20.add(getJCheckBox10(), null);\r
729 jPanel20.add(getJCheckBox11(), null);\r
730 jPanel20.add(getJCheckBox12(), null);\r
731 jPanel20.add(getJCheckBox13(), null);\r
732 jPanel20.add(getJCheckBox14(), null);\r
733 jPanel20.add(jLabel15, null);\r
734 jPanel20.add(getJTextField13(), null);\r
735 jPanel20.add(jLabel9, null);\r
736 jPanel20.add(getJTextField7(), null);\r
737 jPanel20.add(getJButton10(), null);\r
738 jPanel20.add(getJButton11(), null);\r
739 jPanel20.add(getJButton19(), null);\r
740 jPanel20.add(getJScrollPane6(), null);\r
741 }\r
742 return jPanel20;\r
743 }\r
744\r
745 /**\r
746 * This method initializes jTextField7 \r
747 * \r
748 * @return javax.swing.JTextField \r
749 */\r
750 private JTextField getJTextField7() {\r
751 if (jTextField7 == null) {\r
752 jTextField7 = new JTextField();\r
753 jTextField7.setPreferredSize(new java.awt.Dimension(300,20));\r
754 }\r
755 return jTextField7;\r
756 }\r
757\r
758 /**\r
759 * This method initializes jComboBox2 \r
760 * \r
761 * @return javax.swing.JComboBox \r
762 */\r
763 private JComboBox getJComboBox2() {\r
764 if (jComboBox2 == null) {\r
765 jComboBox2 = new JComboBox();\r
766 jComboBox2.setPreferredSize(new java.awt.Dimension(80,20));\r
767 jComboBox2.addItem("MSFT");\r
768 jComboBox2.addItem("GCC");\r
769 jComboBox2.addItem("CYGWIN");\r
770 jComboBox2.addItem("INTEL");\r
771 jComboBox2.setSelectedIndex(0);\r
772 }\r
773 return jComboBox2;\r
774 }\r
775\r
776 /**\r
777 * This method initializes jTextField8 \r
778 * \r
779 * @return javax.swing.JTextField \r
780 */\r
781 private JTextField getJTextField8() {\r
782 if (jTextField8 == null) {\r
783 jTextField8 = new JTextField();\r
784 jTextField8.setPreferredSize(new java.awt.Dimension(110,20));\r
785 }\r
786 return jTextField8;\r
787 }\r
788\r
789 /**\r
790 * This method initializes jScrollPane6 \r
791 * \r
792 * @return javax.swing.JScrollPane \r
793 */\r
794 private JScrollPane getJScrollPane6() {\r
795 if (jScrollPane6 == null) {\r
796 jScrollPane6 = new JScrollPane();\r
797 jScrollPane6.setPreferredSize(new java.awt.Dimension(630,200));\r
798 jScrollPane6.setViewportView(getJTable5());\r
799 }\r
800 return jScrollPane6;\r
801 }\r
802\r
803 /**\r
804 * This method initializes jTable5 \r
805 * \r
806 * @return javax.swing.JTable \r
807 */\r
808 private JTable getJTable5() {\r
809 if (jTable5 == null) {\r
810 optionsTableModel = new DefaultTableModel();\r
811 jTable5 = new JTable(optionsTableModel);\r
812 optionsTableModel.addColumn("BuildTargets");\r
813 optionsTableModel.addColumn("ToolChainFamily");\r
814 optionsTableModel.addColumn("SupportedArch");\r
815 optionsTableModel.addColumn("ToolCommand");\r
816 optionsTableModel.addColumn("TagName");\r
817 optionsTableModel.addColumn("Contents");\r
818 \r
819 TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);\r
820 JComboBox cb = new JComboBox();\r
821 cb.addItem("MSFT");\r
822 cb.addItem("GCC");\r
823 cb.addItem("CYGWIN");\r
824 cb.addItem("INTEL");\r
825 toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
826 \r
827 jTable5.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
828 jTable5.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
829 public void valueChanged(ListSelectionEvent e) {\r
830 selectedRow = -1;\r
831 if (e.getValueIsAdjusting()){\r
832 return;\r
833 }\r
834 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
835 if (lsm.isSelectionEmpty()) {\r
836 return;\r
837 }\r
838 else{\r
839 selectedRow = lsm.getMinSelectionIndex();\r
840 }\r
841 }\r
842 });\r
843 \r
844 jTable5.getModel().addTableModelListener(new TableModelListener() {\r
845 public void tableChanged(TableModelEvent arg0) {\r
846 // TODO Auto-generated method stub\r
847 int row = arg0.getFirstRow();\r
848 TableModel m = (TableModel)arg0.getSource();\r
849 if (arg0.getType() == TableModelEvent.UPDATE){\r
850 //ToDo Data Validition check.\r
1800d80f 851 String targets = m.getValueAt(row, 0) + "";\r
852 Vector<Object> targetName = new Vector<Object>();\r
853 String[] sArray = targets.split("( )+");\r
854 for (int i = 0; i < sArray.length; ++i) {\r
855 targetName.add(sArray[i]);\r
856 }\r
a13899c5 857 String toolChain = m.getValueAt(row, 1) + "";\r
1800d80f 858 String archs = m.getValueAt(row, 2) + "";\r
859 Vector<Object> supArch = new Vector<Object>();\r
860 String[] sArray1 = archs.split("( )+");\r
861 for (int i = 0; i < sArray1.length; ++i) {\r
862 supArch.add(sArray1[i]);\r
863 }\r
864 if (supArch.size() == 0) {\r
865 supArch.add("IA32");\r
866 }\r
a13899c5 867 String toolCmd = m.getValueAt(row, 3) + "";\r
868 String tagName = m.getValueAt(row, 4) + "";\r
869 String contents = m.getValueAt(row, 5) + "";\r
870 ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);\r
871 }\r
872 }\r
873 });\r
874 }\r
875 return jTable5;\r
876 }\r
877\r
878 /**\r
879 * This method initializes jButton10 \r
880 * \r
881 * @return javax.swing.JButton \r
882 */\r
883 private JButton getJButton10() {\r
884 if (jButton10 == null) {\r
885 jButton10 = new JButton();\r
886 jButton10.setText("Add");\r
887 jButton10.setPreferredSize(new java.awt.Dimension(70,20));\r
888 jButton10.addActionListener(new AbstractAction() {\r
44053733 889 /**\r
890 * \r
891 */\r
892 private static final long serialVersionUID = 1L;\r
893\r
a13899c5 894 public void actionPerformed(java.awt.event.ActionEvent e) {\r
895 boolean[] boolArray = {jCheckBox9.isSelected(),jCheckBox10.isSelected(),jCheckBox11.isSelected(),\r
896 jCheckBox12.isSelected(),jCheckBox13.isSelected(),jCheckBox14.isSelected()};\r
897 String s = boolToList(boolArray);\r
898 Object[] o = {jTextField12.getText(), jComboBox2.getSelectedItem(), s,\r
899 jTextField8.getText(), jTextField13.getText(), jTextField7.getText()};\r
900 optionsTableModel.addRow(o);\r
1800d80f 901 \r
902 ffc.genBuildOptionsOpt(stringToVector(jTextField12.getText()), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(), stringToVector(s), jTextField7.getText());\r
a13899c5 903 }\r
904 });\r
905 }\r
906 return jButton10;\r
907 }\r
908 \r
1800d80f 909 private Vector<Object> stringToVector(String s) {\r
910 String[] sArray = s.split(" ");\r
911 Vector<Object> v = new Vector<Object>();\r
912 for (int i = 0; i < sArray.length; ++i) {\r
913 v.add(sArray[i]);\r
914 }\r
915 return v;\r
916 }\r
917 \r
a13899c5 918 private String boolToList (boolean[] bool) {\r
919 String s = " ";\r
920 if (bool[0]) {\r
921 s += "IA32 ";\r
922 }\r
923 if (bool[1]) {\r
924 s += "IPF ";\r
925 }\r
926 if (bool[2]) {\r
927 s += "X64 ";\r
928 }\r
929 if (bool[3]) {\r
930 s += "EBC ";\r
931 }\r
932 if (bool[4]) {\r
933 s += "ARM ";\r
934 }\r
935 if (bool[5]) {\r
936 s += "PPC ";\r
937 }\r
1800d80f 938 if (s == " ") {\r
939 s += "IA32";\r
940 }\r
a13899c5 941 return s.trim();\r
942 }\r
943\r
944 /**\r
945 * This method initializes jButton11 \r
946 * \r
947 * @return javax.swing.JButton \r
948 */\r
949 private JButton getJButton11() {\r
950 if (jButton11 == null) {\r
951 jButton11 = new JButton();\r
952 jButton11.setText("Delete");\r
953 jButton11.setPreferredSize(new java.awt.Dimension(70,20));\r
954 jButton11.addActionListener(new AbstractAction() {\r
44053733 955 /**\r
956 * \r
957 */\r
958 private static final long serialVersionUID = 1L;\r
959\r
a13899c5 960 public void actionPerformed(java.awt.event.ActionEvent e) {\r
961 if (selectedRow >= 0) {\r
962 optionsTableModel.removeRow(selectedRow);\r
963 ffc.removeBuildOptionsOpt(selectedRow);\r
964 }\r
965 }\r
966 });\r
967 }\r
968 return jButton11;\r
969 }\r
970\r
a13899c5 971 /**\r
972 * This method initializes jButton17 \r
973 * \r
974 * @return javax.swing.JButton \r
975 */\r
976 private JButton getJButton17() {\r
977 if (jButton17 == null) {\r
978 jButton17 = new JButton();\r
6cba26e8 979 jButton17.setPreferredSize(new java.awt.Dimension(80,20));\r
980 jButton17.setText("New");\r
a13899c5 981 jButton17.addActionListener(new AbstractAction() {\r
44053733 982 /**\r
983 * \r
984 */\r
985 private static final long serialVersionUID = 1L;\r
986\r
a13899c5 987 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 988 if (jTable.getSelectedRow() < 0) {\r
989 return;\r
990 }\r
a13899c5 991 Object[] o = {"", ""};\r
992 ffsAttributesTableModel.addRow(o);\r
6cba26e8 993 ffc.genBuildOptionsFfsAttribute(jTable.getSelectedRow(), "", "");\r
a13899c5 994 }\r
995 });\r
996 }\r
997 return jButton17;\r
998 }\r
999\r
1000 /**\r
1001 * This method initializes jButton18 \r
1002 * \r
1003 * @return javax.swing.JButton \r
1004 */\r
1005 private JButton getJButton18() {\r
1006 if (jButton18 == null) {\r
1007 jButton18 = new JButton();\r
6cba26e8 1008 jButton18.setPreferredSize(new java.awt.Dimension(80,20));\r
1009 jButton18.setText("Remove");\r
a13899c5 1010 jButton18.addActionListener(new AbstractAction(){\r
44053733 1011 /**\r
1012 * \r
1013 */\r
1014 private static final long serialVersionUID = 1L;\r
1015\r
a13899c5 1016 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 1017 if (jTable.getSelectedRow() < 0) {\r
1018 return;\r
1019 }\r
a13899c5 1020 if (jTable4.getSelectedRow() >= 0){\r
1021 ffsAttributesTableModel.removeRow(jTable4.getSelectedRow());\r
6cba26e8 1022 ffc.removeBuildOptionsFfsAttribute(jTable.getSelectedRow(), jTable4.getSelectedRow());\r
a13899c5 1023 }\r
1024 }\r
1025 });\r
1026 }\r
1027 return jButton18;\r
1028 }\r
1029\r
1030 /**\r
1031 * This method initializes jButton19 \r
1032 * \r
1033 * @return javax.swing.JButton \r
1034 */\r
1035 private JButton getJButton19() {\r
1036 if (jButton19 == null) {\r
1037 jButton19 = new JButton();\r
1038 jButton19.setPreferredSize(new java.awt.Dimension(75,20));\r
1039 jButton19.setEnabled(false);\r
1040 jButton19.setText("Update");\r
1041 }\r
1042 return jButton19;\r
1043 }\r
1044\r
1045 /**\r
1046 * This method initializes jCheckBox9 \r
1047 * \r
1048 * @return javax.swing.JCheckBox \r
1049 */\r
1050 private JCheckBox getJCheckBox9() {\r
1051 if (jCheckBox9 == null) {\r
1052 jCheckBox9 = new JCheckBox();\r
1053 jCheckBox9.setPreferredSize(new java.awt.Dimension(50,20));\r
1054 jCheckBox9.setText("IA32");\r
1055 }\r
1056 return jCheckBox9;\r
1057 }\r
1058\r
1059 /**\r
1060 * This method initializes jCheckBox10 \r
1061 * \r
1062 * @return javax.swing.JCheckBox \r
1063 */\r
1064 private JCheckBox getJCheckBox10() {\r
1065 if (jCheckBox10 == null) {\r
1066 jCheckBox10 = new JCheckBox();\r
1067 jCheckBox10.setPreferredSize(new java.awt.Dimension(50,20));\r
1068 jCheckBox10.setText("IPF");\r
1069 }\r
1070 return jCheckBox10;\r
1071 }\r
1072\r
1073 /**\r
1074 * This method initializes jCheckBox11 \r
1075 * \r
1076 * @return javax.swing.JCheckBox \r
1077 */\r
1078 private JCheckBox getJCheckBox11() {\r
1079 if (jCheckBox11 == null) {\r
1080 jCheckBox11 = new JCheckBox();\r
1081 jCheckBox11.setText("X64");\r
1082 jCheckBox11.setPreferredSize(new java.awt.Dimension(47,20));\r
1083 }\r
1084 return jCheckBox11;\r
1085 }\r
1086\r
1087 /**\r
1088 * This method initializes jCheckBox12 \r
1089 * \r
1090 * @return javax.swing.JCheckBox \r
1091 */\r
1092 private JCheckBox getJCheckBox12() {\r
1093 if (jCheckBox12 == null) {\r
1094 jCheckBox12 = new JCheckBox();\r
1095 jCheckBox12.setPreferredSize(new java.awt.Dimension(50,20));\r
1096 jCheckBox12.setText("EBC");\r
1097 }\r
1098 return jCheckBox12;\r
1099 }\r
1100\r
1101 /**\r
1102 * This method initializes jCheckBox13 \r
1103 * \r
1104 * @return javax.swing.JCheckBox \r
1105 */\r
1106 private JCheckBox getJCheckBox13() {\r
1107 if (jCheckBox13 == null) {\r
1108 jCheckBox13 = new JCheckBox();\r
1109 jCheckBox13.setPreferredSize(new java.awt.Dimension(55,20));\r
1110 jCheckBox13.setText("ARM");\r
1111 }\r
1112 return jCheckBox13;\r
1113 }\r
1114\r
1115 /**\r
1116 * This method initializes jCheckBox14 \r
1117 * \r
1118 * @return javax.swing.JCheckBox \r
1119 */\r
1120 private JCheckBox getJCheckBox14() {\r
1121 if (jCheckBox14 == null) {\r
1122 jCheckBox14 = new JCheckBox();\r
1123 jCheckBox14.setPreferredSize(new java.awt.Dimension(50,20));\r
1124 jCheckBox14.setText("PPC");\r
1125 }\r
1126 return jCheckBox14;\r
1127 }\r
1128\r
1129 /**\r
1130 * This method initializes jTextField12 \r
1131 * \r
1132 * @return javax.swing.JTextField \r
1133 */\r
1134 private JTextField getJTextField12() {\r
1135 if (jTextField12 == null) {\r
1136 jTextField12 = new JTextField();\r
1137 jTextField12.setPreferredSize(new java.awt.Dimension(150,20));\r
1138 }\r
1139 return jTextField12;\r
1140 }\r
1141\r
1142 /**\r
1143 * This method initializes jTextField13 \r
1144 * \r
1145 * @return javax.swing.JTextField \r
1146 */\r
1147 private JTextField getJTextField13() {\r
1148 if (jTextField13 == null) {\r
1149 jTextField13 = new JTextField();\r
1150 jTextField13.setPreferredSize(new java.awt.Dimension(140,20));\r
1151 }\r
1152 return jTextField13;\r
1153 }\r
1154\r
44053733 1155 /**\r
1156 * This method initializes jScrollPane \r
1157 * \r
1158 * @return javax.swing.JScrollPane \r
1159 */\r
1160 private JScrollPane getJScrollPane() {\r
1161 if (jScrollPane == null) {\r
1162 jScrollPane = new JScrollPane();\r
1163 jScrollPane.setPreferredSize(new java.awt.Dimension(150,419));\r
1164 jScrollPane.setViewportView(getJTable());\r
1165 }\r
1166 return jScrollPane;\r
1167 }\r
1168\r
1169 /**\r
1170 * This method initializes jTable \r
1171 * \r
1172 * @return javax.swing.JTable \r
1173 */\r
1174 private JTable getJTable() {\r
1175 if (jTable == null) {\r
1176 ffsTableModel = new DefaultTableModel();\r
1177 ffsTableModel.addColumn("FFS Type");\r
1178 jTable = new JTable(ffsTableModel);\r
1179 jTable.setShowGrid(false);\r
1180 jTable.setRowHeight(20);\r
6cba26e8 1181 \r
1182 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1183 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
1184 public void valueChanged(ListSelectionEvent e) {\r
1185 \r
1186 if (e.getValueIsAdjusting()){\r
1187 return;\r
1188 }\r
1189 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1190 if (lsm.isSelectionEmpty()) {\r
1191 return;\r
1192 }\r
1193 else{\r
1194 int row = lsm.getMinSelectionIndex();\r
1195 sectionTableModel.setRowCount(0);\r
1196 sectionsTableModel.setRowCount(0);\r
1197 subsectionsTableModel.setRowCount(0);\r
1198 ffsAttributesTableModel.setRowCount(0);\r
1199 String[] sArray = {"", ""};\r
1200 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1201 ArrayList<String> alSections = new ArrayList<String>();\r
1202 ArrayList<String> alSection = new ArrayList<String>();\r
1203 ffc.getBuildOptionsFfs(row, sArray, lhm, alSections, alSection);\r
1204 jTextField6.setText(sArray[0]);\r
1205 jTextField.setText(sArray[1]);\r
1206 for (int i = 0; i < alSection.size(); ++i) {\r
1207 String[] sectionRow = {alSection.get(i)};\r
1208 sectionTableModel.addRow(sectionRow);\r
1209 }\r
1210 for (int j = 0; j < alSections.size(); ++j) {\r
1211 String[] sectionsRow = {alSections.get(j)};\r
1212 sectionsTableModel.addRow(sectionsRow);\r
1213 }\r
1214 if (lhm.size() <= 0 ) {\r
1215 return;\r
1216 }\r
1217 Set<String> keySet = lhm.keySet();\r
1218 Iterator<String> is = keySet.iterator();\r
1219 while(is.hasNext()) {\r
1220 String key = is.next();\r
1221 String[] attribRow = {key, lhm.get(key)};\r
1222 ffsAttributesTableModel.addRow(attribRow);\r
1223 }\r
1224 }\r
1225 }\r
1226 });\r
1227 \r
1228 jTable.getModel().addTableModelListener(new TableModelListener() {\r
1229 public void tableChanged(TableModelEvent arg0) {\r
1230 // TODO Auto-generated method stub\r
1231 int row = arg0.getFirstRow();\r
1232 TableModel m = (TableModel)arg0.getSource();\r
1233 if (arg0.getType() == TableModelEvent.UPDATE){\r
1234 //ToDo Data Validition check.\r
1235 String id = m.getValueAt(row, 0) + "";\r
1236 \r
1237 if (id.length() == 0) {\r
1238 return;\r
1239 }\r
1240 \r
3b405e9b 1241 ffc.updateBuildOptionsFfsKey(row, id);\r
6cba26e8 1242 }\r
1243 }\r
1244 });\r
44053733 1245 }\r
1246 return jTable;\r
1247 }\r
1248\r
6cba26e8 1249 /**\r
1250 * This method initializes jScrollPane1 \r
1251 * \r
1252 * @return javax.swing.JScrollPane \r
1253 */\r
1254 private JScrollPane getJScrollPane1() {\r
1255 if (jScrollPane1 == null) {\r
1256 jScrollPane1 = new JScrollPane();\r
1257 jScrollPane1.setPreferredSize(new java.awt.Dimension(500,80));\r
1258 jScrollPane1.setViewportView(getJTable1());\r
1259 }\r
1260 return jScrollPane1;\r
1261 }\r
1262\r
1263 /**\r
1264 * This method initializes jTable1 \r
1265 * \r
1266 * @return javax.swing.JTable \r
1267 */\r
1268 private JTable getJTable1() {\r
1269 if (jTable1 == null) {\r
1270 sectionTableModel = new DefaultTableModel();\r
1271 sectionTableModel.addColumn("SectionType");\r
1272 \r
3b405e9b 1273 jTable1 = new JTable(sectionTableModel);\r
1274 JComboBox cb = new JComboBox();\r
1275 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1276 cb.addItem("EFI_SECTION_VERSION");\r
1277 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1278 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1279 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1280 cb.addItem("EFI_SECTION_PE32");\r
1281 cb.addItem("EFI_SECTION_PIC");\r
1282 cb.addItem("EFI_SECTION_TE");\r
1283 cb.addItem("EFI_SECTION_RAW");\r
1284 cb.addItem("EFI_SECTION_COMPRESSION");\r
1285 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1286 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1287 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
1288 jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
1289 \r
1290 jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1291 \r
1292 jTable1.getModel().addTableModelListener(new TableModelListener() {\r
1293 public void tableChanged(TableModelEvent arg0) {\r
1294 // TODO Auto-generated method stub\r
1295 if (jTable.getSelectedRow() < 0) {\r
1296 return;\r
1297 }\r
1298 int row = arg0.getFirstRow();\r
1299 TableModel m = (TableModel)arg0.getSource();\r
1300 if (arg0.getType() == TableModelEvent.UPDATE){\r
1301 //ToDo Data Validition check.\r
1302 String type = m.getValueAt(row, 0) + "";\r
1303 \r
1304 ffc.updateBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row, type);\r
1305 }\r
1306 }\r
1307 });\r
6cba26e8 1308 }\r
1309 return jTable1;\r
1310 }\r
1311\r
1312 /**\r
1313 * This method initializes jScrollPane3 \r
1314 * \r
1315 * @return javax.swing.JScrollPane \r
1316 */\r
1317 private JScrollPane getJScrollPane3() {\r
1318 if (jScrollPane3 == null) {\r
1319 jScrollPane3 = new JScrollPane();\r
1320 jScrollPane3.setPreferredSize(new java.awt.Dimension(500,90));\r
1321 jScrollPane3.setViewportView(getJTable3());\r
1322 }\r
1323 return jScrollPane3;\r
1324 }\r
1325\r
1326 /**\r
1327 * This method initializes jTable3 \r
1328 * \r
1329 * @return javax.swing.JTable \r
1330 */\r
1331 private JTable getJTable3() {\r
1332 if (jTable3 == null) {\r
1333 subsectionsTableModel = new DefaultTableModel();\r
1334 subsectionsTableModel.addColumn("SectionType");\r
1335 jTable3 = new JTable(subsectionsTableModel);\r
3b405e9b 1336 JComboBox cb = new JComboBox();\r
1337 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1338 cb.addItem("EFI_SECTION_VERSION");\r
1339 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1340 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1341 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1342 cb.addItem("EFI_SECTION_PE32");\r
1343 cb.addItem("EFI_SECTION_PIC");\r
1344 cb.addItem("EFI_SECTION_TE");\r
1345 cb.addItem("EFI_SECTION_RAW");\r
1346 cb.addItem("EFI_SECTION_COMPRESSION");\r
1347 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1348 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1349 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
1350 jTable3.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
1351 jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1352 \r
1353 jTable3.getModel().addTableModelListener(new TableModelListener() {\r
1354 public void tableChanged(TableModelEvent arg0) {\r
1355 // TODO Auto-generated method stub\r
1356 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1357 return;\r
1358 }\r
1359 int row = arg0.getFirstRow();\r
1360 TableModel m = (TableModel)arg0.getSource();\r
1361 if (arg0.getType() == TableModelEvent.UPDATE){\r
1362 //ToDo Data Validition check.\r
1363 String type = m.getValueAt(row, 0) + "";\r
1364 ffc.updateBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row, type);\r
1365 }\r
1366 }\r
1367 });\r
6cba26e8 1368 }\r
1369 return jTable3;\r
1370 }\r
1371\r
1372 /**\r
1373 * This method initializes jTextField \r
1374 * \r
1375 * @return javax.swing.JTextField \r
1376 */\r
1377 private JTextField getJTextField() {\r
1378 if (jTextField == null) {\r
1379 jTextField = new JTextField();\r
1380 jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
3b405e9b 1381 jTextField.addFocusListener(new java.awt.event.FocusAdapter() {\r
1382 public void focusLost(java.awt.event.FocusEvent e) {\r
1383 if (jTable.getSelectedRow() < 0) {\r
1384 return;\r
1385 }\r
1386 ffc.updateBuildOptionsFfsSectionsType(jTable.getSelectedRow(), jTextField.getText());\r
1387 }\r
1388 });\r
6cba26e8 1389 }\r
1390 return jTextField;\r
1391 }\r
1392\r
1393 /**\r
1394 * This method initializes jPanel4 \r
1395 * \r
1396 * @return javax.swing.JPanel \r
1397 */\r
1398 private JPanel getJPanel4() {\r
1399 if (jPanel4 == null) {\r
1400 jPanel4 = new JPanel();\r
1401 jPanel4.setPreferredSize(new java.awt.Dimension(100,100));\r
1402 jPanel4.add(getJButton17(), null);\r
1403 jPanel4.add(getJButton18(), null);\r
1404 }\r
1405 return jPanel4;\r
1406 }\r
1407\r
1408 /**\r
1409 * This method initializes jButton \r
1410 * \r
1411 * @return javax.swing.JButton \r
1412 */\r
1413 private JButton getJButton() {\r
1414 if (jButton == null) {\r
1415 jButton = new JButton();\r
1416 jButton.setPreferredSize(new java.awt.Dimension(80,20));\r
1417 jButton.setText("New");\r
3b405e9b 1418 jButton.addActionListener(new java.awt.event.ActionListener() {\r
1419 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1420 if (jTable.getSelectedRow() < 0) {\r
1421 return;\r
1422 }\r
1423 String[] row = {"EFI_SECTION_RAW"};\r
1424 sectionTableModel.addRow(row);\r
1425 ffc.genBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row[0]);\r
1426 }\r
1427 });\r
6cba26e8 1428 }\r
1429 return jButton;\r
1430 }\r
1431\r
1432 /**\r
1433 * This method initializes jButton1 \r
1434 * \r
1435 * @return javax.swing.JButton \r
1436 */\r
1437 private JButton getJButton1() {\r
1438 if (jButton1 == null) {\r
1439 jButton1 = new JButton();\r
1440 jButton1.setPreferredSize(new java.awt.Dimension(80,20));\r
1441 jButton1.setText("Remove");\r
3b405e9b 1442 \r
1443 jButton1.addActionListener(new java.awt.event.ActionListener() {\r
1444 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1445 if (jTable.getSelectedRow() < 0 || jTable1.getSelectedRow() < 0) {\r
1446 return;\r
1447 }\r
1448 sectionTableModel.removeRow(jTable1.getSelectedRow());\r
1449 ffc.removeBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), jTable1.getSelectedRow());\r
1450 }\r
1451 });\r
6cba26e8 1452 }\r
1453 return jButton1;\r
1454 }\r
1455\r
1456 /**\r
1457 * This method initializes jButton2 \r
1458 * \r
1459 * @return javax.swing.JButton \r
1460 */\r
1461 private JButton getJButton2() {\r
1462 if (jButton2 == null) {\r
1463 jButton2 = new JButton();\r
1464 jButton2.setPreferredSize(new java.awt.Dimension(80,20));\r
1465 jButton2.setText("New");\r
3b405e9b 1466 jButton2.addActionListener(new java.awt.event.ActionListener() {\r
1467 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1468 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1469 return;\r
1470 }\r
1471 String[] row = {"EFI_SECTION_RAW"};\r
1472 subsectionsTableModel.addRow(row);\r
1473 ffc.genBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row[0]);\r
1474 \r
1475 }\r
1476 });\r
6cba26e8 1477 }\r
1478 return jButton2;\r
1479 }\r
1480\r
1481 /**\r
1482 * This method initializes jButton3 \r
1483 * \r
1484 * @return javax.swing.JButton \r
1485 */\r
1486 private JButton getJButton3() {\r
1487 if (jButton3 == null) {\r
1488 jButton3 = new JButton();\r
1489 jButton3.setPreferredSize(new java.awt.Dimension(80,20));\r
1490 jButton3.setText("Remove");\r
3b405e9b 1491 jButton3.addActionListener(new java.awt.event.ActionListener() {\r
1492 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1493 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0 || jTable3.getSelectedRow() < 0) {\r
1494 return;\r
1495 }\r
1496 subsectionsTableModel.removeRow(jTable3.getSelectedRow());\r
1497 ffc.removeBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), jTable3.getSelectedRow());\r
1498 }\r
1499 });\r
6cba26e8 1500 }\r
1501 return jButton3;\r
1502 }\r
1503\r
1504 /**\r
1505 * This method initializes jButton6 \r
1506 * \r
1507 * @return javax.swing.JButton \r
1508 */\r
1509 private JButton getJButton6() {\r
1510 if (jButton6 == null) {\r
1511 jButton6 = new JButton();\r
1512 jButton6.setPreferredSize(new java.awt.Dimension(80,20));\r
1513 jButton6.setText("New");\r
3b405e9b 1514 jButton6.addActionListener(new java.awt.event.ActionListener() {\r
1515 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1516 if (jTable.getSelectedRow() < 0) {\r
1517 return;\r
1518 }\r
1519 String[] row = {""};\r
1520 sectionsTableModel.addRow(row);\r
1521 ffc.genBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), "");\r
1522 }\r
1523 });\r
6cba26e8 1524 }\r
1525 return jButton6;\r
1526 }\r
1527\r
1528 /**\r
1529 * This method initializes jButton7 \r
1530 * \r
1531 * @return javax.swing.JButton \r
1532 */\r
1533 private JButton getJButton7() {\r
1534 if (jButton7 == null) {\r
1535 jButton7 = new JButton();\r
1536 jButton7.setPreferredSize(new java.awt.Dimension(80,20));\r
1537 jButton7.setText("Remove");\r
3b405e9b 1538 jButton7.addActionListener(new java.awt.event.ActionListener() {\r
1539 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1540 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1541 return;\r
1542 }\r
1543 sectionsTableModel.removeRow(jTable6.getSelectedRow());\r
1544 ffc.removeBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), jTable6.getSelectedRow());\r
1545 }\r
1546 });\r
6cba26e8 1547 }\r
1548 return jButton7;\r
1549 }\r
1550\r
1551 /**\r
1552 * This method initializes jScrollPane4 \r
1553 * \r
1554 * @return javax.swing.JScrollPane \r
1555 */\r
1556 private JScrollPane getJScrollPane4() {\r
1557 if (jScrollPane4 == null) {\r
1558 jScrollPane4 = new JScrollPane();\r
1559 jScrollPane4.setPreferredSize(new java.awt.Dimension(500,80));\r
1560 jScrollPane4.setViewportView(getJTable6());\r
1561 }\r
1562 return jScrollPane4;\r
1563 }\r
1564\r
1565 /**\r
1566 * This method initializes jTable6 \r
1567 * \r
1568 * @return javax.swing.JTable \r
1569 */\r
1570 private JTable getJTable6() {\r
1571 if (jTable6 == null) {\r
1572 sectionsTableModel = new DefaultTableModel();\r
1573 sectionsTableModel.addColumn("EncapsulationType");\r
1574 jTable6 = new JTable(sectionsTableModel);\r
1575 \r
1576 jTable6.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1577 jTable6.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
1578 public void valueChanged(ListSelectionEvent e) {\r
1579 if (e.getValueIsAdjusting()){\r
1580 return;\r
1581 }\r
1582 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1583 if (lsm.isSelectionEmpty()) {\r
1584 return;\r
1585 }\r
1586 else{\r
1587 int sectionsRow = lsm.getMinSelectionIndex();\r
1588 if (jTable.getSelectedRow() < 0) {\r
1589 return;\r
1590 }\r
1591 subsectionsTableModel.setRowCount(0);\r
1592 ArrayList<String> al = new ArrayList<String>();\r
1593 ffc.getBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), sectionsRow, al);\r
1594 for (int i = 0; i < al.size(); ++i) {\r
1595 String[] subsectionRow = {al.get(i)};\r
1596 subsectionsTableModel.addRow(subsectionRow);\r
1597 }\r
1598 }\r
1599 }\r
1600 });\r
1601 \r
1602 jTable6.getModel().addTableModelListener(new TableModelListener() {\r
1603 public void tableChanged(TableModelEvent arg0) {\r
1604 // TODO Auto-generated method stub\r
1605 int row = arg0.getFirstRow();\r
1606 TableModel m = (TableModel)arg0.getSource();\r
1607 if (arg0.getType() == TableModelEvent.UPDATE){\r
1608 //ToDo Data Validition check.\r
3b405e9b 1609 String encapType = m.getValueAt(row, 0) + "";\r
1610 ffc.updateBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), row, encapType);\r
6cba26e8 1611 }\r
1612 }\r
1613 });\r
1614 }\r
1615 return jTable6;\r
1616 }\r
1617\r
a13899c5 1618 /**\r
1619 * @param args\r
1620 */\r
1621 public static void main(String[] args) {\r
1622 // TODO Auto-generated method stub\r
1623 new FpdBuildOptions().setVisible(true);\r
1624 }\r
1625\r
1626 /**\r
1627 * This is the default constructor\r
1628 */\r
1629 public FpdBuildOptions() {\r
1630 super();\r
1631 initialize();\r
1632 this.setVisible(true);\r
1633 }\r
1634 \r
1635 public FpdBuildOptions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
1636 this();\r
1637 ffc = new FpdFileContents(fpd);\r
1638 init(ffc);\r
1639 }\r
1640\r
1641 private void init(FpdFileContents ffc) {\r
1642 initOptionTable();\r
1643 initAntTaskTable();\r
6cba26e8 1644 initFfsTable();\r
44053733 1645 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1646 public void internalFrameDeactivated(InternalFrameEvent e){\r
1647 if (jTable.isEditing()) {\r
1648 jTable.getCellEditor().stopCellEditing();\r
1649 }\r
6cba26e8 1650 if (jTable1.isEditing()) {\r
1651 jTable1.getCellEditor().stopCellEditing();\r
1652 }\r
44053733 1653 if (jTable2.isEditing()) {\r
1654 jTable2.getCellEditor().stopCellEditing();\r
1655 }\r
6cba26e8 1656 if (jTable3.isEditing()) {\r
1657 jTable3.getCellEditor().stopCellEditing();\r
1658 }\r
44053733 1659 if (jTable4.isEditing()) {\r
1660 jTable4.getCellEditor().stopCellEditing();\r
1661 }\r
1662 if (jTable5.isEditing()) {\r
1663 jTable5.getCellEditor().stopCellEditing();\r
1664 }\r
1665 }\r
1666 });\r
a13899c5 1667 }\r
1668 \r
1669 private void initOptionTable() {\r
1670 if (ffc.getBuildOptionsOptCount() == 0) {\r
1671 //ToDo get default options from *.txt file\r
1672 return;\r
1673 }\r
1674 String[][] saa = new String[ffc.getBuildOptionsOptCount()][6];\r
1675 ffc.getBuildOptionsOpts(saa);\r
1676 for (int i = 0; i < saa.length; ++i) {\r
1677 optionsTableModel.addRow(saa[i]);\r
1678 }\r
1679 }\r
1680 \r
1681 private void initAntTaskTable() {\r
1682 if (ffc.getBuildOptionsUserDefAntTaskCount() == 0) {\r
1683 return;\r
1684 }\r
1685 String[][] saa = new String[ffc.getBuildOptionsUserDefAntTaskCount()][3];\r
1686 ffc.getBuildOptionsUserDefAntTasks(saa);\r
1687 for (int i = 0; i < saa.length; ++i) {\r
1688 antTaskTableModel.addRow(saa[i]);\r
1689 }\r
1690 }\r
6cba26e8 1691 \r
1692 private void initFfsTable(){\r
1693 int ffsCount = ffc.getBuildOptionsFfsCount();\r
1694 if (ffsCount < 0) {\r
1695 return;\r
1696 }\r
1697 String[][] saa = new String[ffsCount][1];\r
1698 ffc.getBuildOptionsFfsKey(saa);\r
1699 for (int i = 0; i < saa.length; ++i) {\r
1700 ffsTableModel.addRow(saa[i]);\r
1701 }\r
1702 }\r
a13899c5 1703 /**\r
1704 * This method initializes this\r
1705 * \r
1706 * @return void\r
1707 */\r
1708 private void initialize() {\r
6cba26e8 1709 this.setSize(722, 577);\r
a13899c5 1710 this.setTitle("FPD Build Options");\r
1711 this.setContentPane(getJContentPane());\r
1712 }\r
1713\r
1714 /**\r
1715 * This method initializes jContentPane\r
1716 * \r
1717 * @return javax.swing.JPanel\r
1718 */\r
1719 private JPanel getJContentPane() {\r
1720 if (jContentPane == null) {\r
1721 jContentPane = new JPanel();\r
1722 jContentPane.setLayout(new BorderLayout());\r
1723 jContentPane.add(getJPanel(), java.awt.BorderLayout.SOUTH);\r
1724 jContentPane.add(getJPanel1(), java.awt.BorderLayout.NORTH);\r
1725 jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST);\r
1726 jContentPane.add(getJPanel3(), java.awt.BorderLayout.EAST);\r
1727 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1728 }\r
1729 return jContentPane;\r
1730 }\r
1731\r
1732} // @jve:decl-index=0:visual-constraint="10,10"\r