]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
Change assembler compiler to windkk.
[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
f3b0ed9a 393 jTable2.setRowHeight(20);\r
a13899c5 394 antTaskTableModel.addColumn("ID");\r
395 antTaskTableModel.addColumn("Filename");\r
202c4f38 396 antTaskTableModel.addColumn("ANT Command Options");\r
a13899c5 397 \r
398 jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
399 jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
400 public void valueChanged(ListSelectionEvent e) {\r
401 selectedRow = -1;\r
402 if (e.getValueIsAdjusting()){\r
403 return;\r
404 }\r
405 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
406 if (lsm.isSelectionEmpty()) {\r
407 return;\r
408 }\r
409 else{\r
410 selectedRow = lsm.getMinSelectionIndex();\r
411 }\r
412 }\r
413 });\r
414 \r
415 jTable2.getModel().addTableModelListener(new TableModelListener() {\r
416 public void tableChanged(TableModelEvent arg0) {\r
417 // TODO Auto-generated method stub\r
418 int row = arg0.getFirstRow();\r
419 TableModel m = (TableModel)arg0.getSource();\r
420 if (arg0.getType() == TableModelEvent.UPDATE){\r
421 //ToDo Data Validition check.\r
422 String id = m.getValueAt(row, 0) + "";\r
423 String file = m.getValueAt(row, 1) + "";\r
424 String execOrder = m.getValueAt(row, 2) + "";\r
425 if (id.length() == 0) {\r
426 return;\r
427 }\r
428 if (file.length() == 0 && execOrder.length() == 0){\r
429 return;\r
430 }\r
431 if (file.length() == 0) {\r
432 file = null;\r
433 }\r
434 if (execOrder.length() == 0) {\r
435 execOrder = null;\r
436 }\r
437 ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);\r
438 \r
439 }\r
440 }\r
441 });\r
442 }\r
443 return jTable2;\r
444 }\r
445\r
446 /**\r
447 * This method initializes jPanel13 \r
448 * \r
449 * @return javax.swing.JPanel \r
450 */\r
451 private JPanel getJPanel13() {\r
452 if (jPanel13 == null) {\r
453 jPanel13 = new JPanel();\r
454 jPanel13.setLayout(new BorderLayout());\r
a13899c5 455 jPanel13.add(getJPanel18(), java.awt.BorderLayout.CENTER);\r
44053733 456 jPanel13.add(getJScrollPane(), java.awt.BorderLayout.WEST);\r
a13899c5 457 }\r
458 return jPanel13;\r
459 }\r
460\r
a13899c5 461 /**\r
462 * This method initializes jPanel18 \r
463 * \r
464 * @return javax.swing.JPanel \r
465 */\r
466 private JPanel getJPanel18() {\r
467 if (jPanel18 == null) {\r
468 jPanel18 = new JPanel();\r
469 jPanel18.setLayout(new BorderLayout());\r
470 jPanel18.add(getJPanel15(), java.awt.BorderLayout.NORTH);\r
471 jPanel18.add(getJPanel16(), java.awt.BorderLayout.SOUTH);\r
472 jPanel18.add(getJPanel17(), java.awt.BorderLayout.EAST);\r
473 jPanel18.add(getJPanel19(), java.awt.BorderLayout.CENTER);\r
474 }\r
475 return jPanel18;\r
476 }\r
477\r
a13899c5 478 /**\r
479 * This method initializes jPanel15 \r
480 * \r
481 * @return javax.swing.JPanel \r
482 */\r
483 private JPanel getJPanel15() {\r
484 if (jPanel15 == null) {\r
6cba26e8 485 jLabel5 = new JLabel();\r
486 jLabel5.setText("Encapsulation Type");\r
a13899c5 487 FlowLayout flowLayout5 = new FlowLayout();\r
488 flowLayout5.setAlignment(java.awt.FlowLayout.RIGHT);\r
489 jLabel7 = new JLabel();\r
6cba26e8 490 jLabel7.setText("FFS Key");\r
a13899c5 491 jPanel15 = new JPanel();\r
492 jPanel15.setLayout(flowLayout5);\r
493 jPanel15.add(jLabel7, null);\r
494 jPanel15.add(getJTextField6(), null);\r
6cba26e8 495 jPanel15.add(jLabel5, null);\r
496 jPanel15.add(getJTextField(), null);\r
a13899c5 497 jPanel15.add(getJButton8(), null);\r
498 jPanel15.add(getJButton9(), null);\r
499 }\r
500 return jPanel15;\r
501 }\r
502\r
503 /**\r
504 * This method initializes jPanel16 \r
505 * \r
506 * @return javax.swing.JPanel \r
507 */\r
508 private JPanel getJPanel16() {\r
509 if (jPanel16 == null) {\r
6cba26e8 510 jLabel6 = new JLabel();\r
511 jLabel6.setText("Attributes");\r
a13899c5 512 FlowLayout flowLayout6 = new FlowLayout();\r
513 flowLayout6.setHgap(5);\r
6cba26e8 514 flowLayout6.setVgap(20);\r
515 flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);\r
a13899c5 516 jPanel16 = new JPanel();\r
517 jPanel16.setPreferredSize(new java.awt.Dimension(491,130));\r
518 jPanel16.setLayout(flowLayout6);\r
6cba26e8 519 jPanel16.add(jLabel6, null);\r
a13899c5 520 jPanel16.add(getJScrollPane5(), null);\r
6cba26e8 521 jPanel16.add(getJPanel4(), null);\r
a13899c5 522 }\r
523 return jPanel16;\r
524 }\r
525\r
526 /**\r
527 * This method initializes jPanel17 \r
528 * \r
529 * @return javax.swing.JPanel \r
530 */\r
531 private JPanel getJPanel17() {\r
532 if (jPanel17 == null) {\r
533 jPanel17 = new JPanel();\r
a13899c5 534 }\r
535 return jPanel17;\r
536 }\r
537\r
538 /**\r
539 * This method initializes jTextField6 \r
540 * \r
541 * @return javax.swing.JTextField \r
542 */\r
543 private JTextField getJTextField6() {\r
544 if (jTextField6 == null) {\r
545 jTextField6 = new JTextField();\r
6cba26e8 546 jTextField6.setPreferredSize(new java.awt.Dimension(100,20));\r
3b405e9b 547 jTextField6.setEditable(false);\r
548 jTextField6.addFocusListener(new java.awt.event.FocusAdapter() {\r
549 public void focusLost(java.awt.event.FocusEvent e) {\r
550 if (jTable.getSelectedRow() < 0) {\r
551 return;\r
552 }\r
553// ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());\r
554 }\r
555 });\r
a13899c5 556 }\r
557 return jTextField6;\r
558 }\r
559\r
560 /**\r
561 * This method initializes jButton8 \r
562 * \r
563 * @return javax.swing.JButton \r
564 */\r
565 private JButton getJButton8() {\r
566 if (jButton8 == null) {\r
567 jButton8 = new JButton();\r
568 jButton8.setPreferredSize(new java.awt.Dimension(70,20));\r
569 jButton8.setText("Add");\r
570 jButton8.addActionListener(new AbstractAction() {\r
44053733 571 /**\r
572 * \r
573 */\r
574 private static final long serialVersionUID = -2923720717273384221L;\r
575\r
a13899c5 576 public void actionPerformed(java.awt.event.ActionEvent e) {\r
577 if (jTextField6.getText().length() > 0) {\r
6cba26e8 578 String[] row = {jTextField6.getText()};\r
579 ffsTableModel.addRow(row);\r
580 ffc.genBuildOptionsFfs(jTextField6.getText(), jTextField.getText());\r
a13899c5 581 }\r
582 }\r
583 });\r
584 }\r
585 return jButton8;\r
586 }\r
587\r
588 /**\r
589 * This method initializes jButton9 \r
590 * \r
591 * @return javax.swing.JButton \r
592 */\r
593 private JButton getJButton9() {\r
594 if (jButton9 == null) {\r
595 jButton9 = new JButton();\r
596 jButton9.setPreferredSize(new java.awt.Dimension(70,20));\r
597 jButton9.setText("Delete");\r
598 jButton9.addActionListener(new AbstractAction() {\r
44053733 599 /**\r
600 * \r
601 */\r
602 private static final long serialVersionUID = -4002678939178194476L;\r
603\r
a13899c5 604 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 605 if (jTable.getSelectedRow() < 0) {\r
606 return;\r
607 }\r
608 ffc.removeBuildOptionsFfs(jTable.getSelectedRow());\r
a13899c5 609 }\r
610 });\r
611 }\r
612 return jButton9;\r
613 }\r
614\r
a13899c5 615 /**\r
616 * This method initializes jScrollPane5 \r
617 * \r
618 * @return javax.swing.JScrollPane \r
619 */\r
620 private JScrollPane getJScrollPane5() {\r
621 if (jScrollPane5 == null) {\r
622 jScrollPane5 = new JScrollPane();\r
623 jScrollPane5.setPreferredSize(new java.awt.Dimension(350,100));\r
624 jScrollPane5.setViewportView(getJTable4());\r
625 }\r
626 return jScrollPane5;\r
627 }\r
628\r
629 /**\r
630 * This method initializes jTable4 \r
631 * \r
632 * @return javax.swing.JTable \r
633 */\r
634 private JTable getJTable4() {\r
635 if (jTable4 == null) {\r
636 ffsAttributesTableModel = new DefaultTableModel();\r
637 jTable4 = new JTable(ffsAttributesTableModel);\r
638 jTable4.setPreferredSize(new java.awt.Dimension(400,80));\r
f3b0ed9a 639 jTable4.setRowHeight(20);\r
a13899c5 640 ffsAttributesTableModel.addColumn("Name");\r
641 ffsAttributesTableModel.addColumn("Value");\r
6cba26e8 642 \r
643 jTable4.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
644 jTable4.getModel().addTableModelListener(new TableModelListener() {\r
645 public void tableChanged(TableModelEvent arg0) {\r
646 // TODO Auto-generated method stub\r
647 int row = arg0.getFirstRow();\r
648 TableModel m = (TableModel)arg0.getSource();\r
649 if (arg0.getType() == TableModelEvent.UPDATE){\r
650 //ToDo Data Validition check.\r
651 String name = m.getValueAt(row, 0) + "";\r
652 String value = m.getValueAt(row, 1) + "";\r
653 \r
654 if (name.length() == 0) {\r
655 return;\r
656 }\r
657 if (value.length() == 0){\r
658 return;\r
659 }\r
660 ffc.updateBuildOptionsFfsAttribute(jTable.getSelectedRow(), row, name, value);\r
661 }\r
662 }\r
663 });\r
a13899c5 664 }\r
665 return jTable4;\r
666 }\r
667\r
668 /**\r
669 * This method initializes jPanel19 \r
670 * \r
671 * @return javax.swing.JPanel \r
672 */\r
673 private JPanel getJPanel19() {\r
674 if (jPanel19 == null) {\r
6cba26e8 675 jLabel8 = new JLabel();\r
676 jLabel8.setText("Sections");\r
677 jLabel4 = new JLabel();\r
678 jLabel4.setText("Sub-Sections");\r
679 jLabel2 = new JLabel();\r
680 jLabel2.setText("Section");\r
a13899c5 681 jPanel19 = new JPanel();\r
6cba26e8 682 jPanel19.setLayout(new FlowLayout());\r
683 jPanel19.add(jLabel2, null);\r
684 jPanel19.add(getJButton(), null);\r
685 jPanel19.add(getJButton1(), null);\r
686 jPanel19.add(getJScrollPane1(), null);\r
687 jPanel19.add(jLabel8, null);\r
688 jPanel19.add(getJButton6(), null);\r
689 jPanel19.add(getJButton7(), null);\r
690 jPanel19.add(getJScrollPane4(), null);\r
691 jPanel19.add(jLabel4, null);\r
692 jPanel19.add(getJButton2(), null);\r
693 jPanel19.add(getJButton3(), null);\r
694 jPanel19.add(getJScrollPane3(), null);\r
a13899c5 695 }\r
696 return jPanel19;\r
697 }\r
698\r
699 /**\r
700 * This method initializes jPanel20 \r
701 * \r
702 * @return javax.swing.JPanel \r
703 */\r
704 private JPanel getJPanel20() {\r
705 if (jPanel20 == null) {\r
706 jLabel15 = new JLabel();\r
707 jLabel15.setText("Tag Name");\r
708 FlowLayout flowLayout9 = new FlowLayout();\r
709 flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);\r
710 jLabel14 = new JLabel();\r
711 jLabel14.setText("Build Targets");\r
712 jLabel12 = new JLabel();\r
713 jLabel12.setText("Tool Command");\r
714 jLabel11 = new JLabel();\r
715 jLabel11.setText("Supported Arch");\r
716 jLabel10 = new JLabel();\r
717 jLabel10.setText("Tool Chain Family");\r
718 jLabel9 = new JLabel();\r
719 jLabel9.setText("Option Contents");\r
720 jPanel20 = new JPanel();\r
721 jPanel20.setLayout(flowLayout9);\r
722 jPanel20.add(jLabel14, null);\r
723 jPanel20.add(getJTextField12(), null);\r
724 jPanel20.add(jLabel10, null);\r
725 jPanel20.add(getJComboBox2(), null);\r
726 jPanel20.add(jLabel12, null);\r
727 jPanel20.add(getJTextField8(), null);\r
728 jPanel20.add(jLabel11, null);\r
729 jPanel20.add(getJCheckBox9(), null);\r
730 jPanel20.add(getJCheckBox10(), null);\r
731 jPanel20.add(getJCheckBox11(), null);\r
732 jPanel20.add(getJCheckBox12(), null);\r
733 jPanel20.add(getJCheckBox13(), null);\r
734 jPanel20.add(getJCheckBox14(), null);\r
735 jPanel20.add(jLabel15, null);\r
736 jPanel20.add(getJTextField13(), null);\r
737 jPanel20.add(jLabel9, null);\r
738 jPanel20.add(getJTextField7(), null);\r
739 jPanel20.add(getJButton10(), null);\r
740 jPanel20.add(getJButton11(), null);\r
741 jPanel20.add(getJButton19(), null);\r
742 jPanel20.add(getJScrollPane6(), null);\r
743 }\r
744 return jPanel20;\r
745 }\r
746\r
747 /**\r
748 * This method initializes jTextField7 \r
749 * \r
750 * @return javax.swing.JTextField \r
751 */\r
752 private JTextField getJTextField7() {\r
753 if (jTextField7 == null) {\r
754 jTextField7 = new JTextField();\r
755 jTextField7.setPreferredSize(new java.awt.Dimension(300,20));\r
756 }\r
757 return jTextField7;\r
758 }\r
759\r
760 /**\r
761 * This method initializes jComboBox2 \r
762 * \r
763 * @return javax.swing.JComboBox \r
764 */\r
765 private JComboBox getJComboBox2() {\r
766 if (jComboBox2 == null) {\r
767 jComboBox2 = new JComboBox();\r
768 jComboBox2.setPreferredSize(new java.awt.Dimension(80,20));\r
769 jComboBox2.addItem("MSFT");\r
770 jComboBox2.addItem("GCC");\r
771 jComboBox2.addItem("CYGWIN");\r
772 jComboBox2.addItem("INTEL");\r
773 jComboBox2.setSelectedIndex(0);\r
774 }\r
775 return jComboBox2;\r
776 }\r
777\r
778 /**\r
779 * This method initializes jTextField8 \r
780 * \r
781 * @return javax.swing.JTextField \r
782 */\r
783 private JTextField getJTextField8() {\r
784 if (jTextField8 == null) {\r
785 jTextField8 = new JTextField();\r
786 jTextField8.setPreferredSize(new java.awt.Dimension(110,20));\r
787 }\r
788 return jTextField8;\r
789 }\r
790\r
791 /**\r
792 * This method initializes jScrollPane6 \r
793 * \r
794 * @return javax.swing.JScrollPane \r
795 */\r
796 private JScrollPane getJScrollPane6() {\r
797 if (jScrollPane6 == null) {\r
798 jScrollPane6 = new JScrollPane();\r
799 jScrollPane6.setPreferredSize(new java.awt.Dimension(630,200));\r
800 jScrollPane6.setViewportView(getJTable5());\r
801 }\r
802 return jScrollPane6;\r
803 }\r
804\r
805 /**\r
806 * This method initializes jTable5 \r
807 * \r
808 * @return javax.swing.JTable \r
809 */\r
810 private JTable getJTable5() {\r
811 if (jTable5 == null) {\r
812 optionsTableModel = new DefaultTableModel();\r
813 jTable5 = new JTable(optionsTableModel);\r
f3b0ed9a 814 jTable5.setRowHeight(20);\r
a13899c5 815 optionsTableModel.addColumn("BuildTargets");\r
816 optionsTableModel.addColumn("ToolChainFamily");\r
817 optionsTableModel.addColumn("SupportedArch");\r
818 optionsTableModel.addColumn("ToolCommand");\r
819 optionsTableModel.addColumn("TagName");\r
820 optionsTableModel.addColumn("Contents");\r
821 \r
822 TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);\r
823 JComboBox cb = new JComboBox();\r
824 cb.addItem("MSFT");\r
825 cb.addItem("GCC");\r
826 cb.addItem("CYGWIN");\r
827 cb.addItem("INTEL");\r
828 toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
829 \r
830 jTable5.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
831 jTable5.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
832 public void valueChanged(ListSelectionEvent e) {\r
833 selectedRow = -1;\r
834 if (e.getValueIsAdjusting()){\r
835 return;\r
836 }\r
837 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
838 if (lsm.isSelectionEmpty()) {\r
839 return;\r
840 }\r
841 else{\r
842 selectedRow = lsm.getMinSelectionIndex();\r
843 }\r
844 }\r
845 });\r
846 \r
847 jTable5.getModel().addTableModelListener(new TableModelListener() {\r
848 public void tableChanged(TableModelEvent arg0) {\r
849 // TODO Auto-generated method stub\r
850 int row = arg0.getFirstRow();\r
851 TableModel m = (TableModel)arg0.getSource();\r
852 if (arg0.getType() == TableModelEvent.UPDATE){\r
853 //ToDo Data Validition check.\r
1800d80f 854 String targets = m.getValueAt(row, 0) + "";\r
855 Vector<Object> targetName = new Vector<Object>();\r
856 String[] sArray = targets.split("( )+");\r
857 for (int i = 0; i < sArray.length; ++i) {\r
858 targetName.add(sArray[i]);\r
859 }\r
a13899c5 860 String toolChain = m.getValueAt(row, 1) + "";\r
1800d80f 861 String archs = m.getValueAt(row, 2) + "";\r
862 Vector<Object> supArch = new Vector<Object>();\r
863 String[] sArray1 = archs.split("( )+");\r
864 for (int i = 0; i < sArray1.length; ++i) {\r
865 supArch.add(sArray1[i]);\r
866 }\r
867 if (supArch.size() == 0) {\r
868 supArch.add("IA32");\r
869 }\r
a13899c5 870 String toolCmd = m.getValueAt(row, 3) + "";\r
871 String tagName = m.getValueAt(row, 4) + "";\r
872 String contents = m.getValueAt(row, 5) + "";\r
873 ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);\r
874 }\r
875 }\r
876 });\r
877 }\r
878 return jTable5;\r
879 }\r
880\r
881 /**\r
882 * This method initializes jButton10 \r
883 * \r
884 * @return javax.swing.JButton \r
885 */\r
886 private JButton getJButton10() {\r
887 if (jButton10 == null) {\r
888 jButton10 = new JButton();\r
889 jButton10.setText("Add");\r
890 jButton10.setPreferredSize(new java.awt.Dimension(70,20));\r
891 jButton10.addActionListener(new AbstractAction() {\r
44053733 892 /**\r
893 * \r
894 */\r
895 private static final long serialVersionUID = 1L;\r
896\r
a13899c5 897 public void actionPerformed(java.awt.event.ActionEvent e) {\r
898 boolean[] boolArray = {jCheckBox9.isSelected(),jCheckBox10.isSelected(),jCheckBox11.isSelected(),\r
899 jCheckBox12.isSelected(),jCheckBox13.isSelected(),jCheckBox14.isSelected()};\r
900 String s = boolToList(boolArray);\r
901 Object[] o = {jTextField12.getText(), jComboBox2.getSelectedItem(), s,\r
902 jTextField8.getText(), jTextField13.getText(), jTextField7.getText()};\r
903 optionsTableModel.addRow(o);\r
1800d80f 904 \r
905 ffc.genBuildOptionsOpt(stringToVector(jTextField12.getText()), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(), stringToVector(s), jTextField7.getText());\r
a13899c5 906 }\r
907 });\r
908 }\r
909 return jButton10;\r
910 }\r
911 \r
1800d80f 912 private Vector<Object> stringToVector(String s) {\r
913 String[] sArray = s.split(" ");\r
914 Vector<Object> v = new Vector<Object>();\r
915 for (int i = 0; i < sArray.length; ++i) {\r
916 v.add(sArray[i]);\r
917 }\r
918 return v;\r
919 }\r
920 \r
a13899c5 921 private String boolToList (boolean[] bool) {\r
922 String s = " ";\r
923 if (bool[0]) {\r
924 s += "IA32 ";\r
925 }\r
926 if (bool[1]) {\r
927 s += "IPF ";\r
928 }\r
929 if (bool[2]) {\r
930 s += "X64 ";\r
931 }\r
932 if (bool[3]) {\r
933 s += "EBC ";\r
934 }\r
935 if (bool[4]) {\r
936 s += "ARM ";\r
937 }\r
938 if (bool[5]) {\r
939 s += "PPC ";\r
940 }\r
1800d80f 941 if (s == " ") {\r
942 s += "IA32";\r
943 }\r
a13899c5 944 return s.trim();\r
945 }\r
946\r
947 /**\r
948 * This method initializes jButton11 \r
949 * \r
950 * @return javax.swing.JButton \r
951 */\r
952 private JButton getJButton11() {\r
953 if (jButton11 == null) {\r
954 jButton11 = new JButton();\r
955 jButton11.setText("Delete");\r
956 jButton11.setPreferredSize(new java.awt.Dimension(70,20));\r
957 jButton11.addActionListener(new AbstractAction() {\r
44053733 958 /**\r
959 * \r
960 */\r
961 private static final long serialVersionUID = 1L;\r
962\r
a13899c5 963 public void actionPerformed(java.awt.event.ActionEvent e) {\r
964 if (selectedRow >= 0) {\r
965 optionsTableModel.removeRow(selectedRow);\r
966 ffc.removeBuildOptionsOpt(selectedRow);\r
967 }\r
968 }\r
969 });\r
970 }\r
971 return jButton11;\r
972 }\r
973\r
a13899c5 974 /**\r
975 * This method initializes jButton17 \r
976 * \r
977 * @return javax.swing.JButton \r
978 */\r
979 private JButton getJButton17() {\r
980 if (jButton17 == null) {\r
981 jButton17 = new JButton();\r
6cba26e8 982 jButton17.setPreferredSize(new java.awt.Dimension(80,20));\r
983 jButton17.setText("New");\r
a13899c5 984 jButton17.addActionListener(new AbstractAction() {\r
44053733 985 /**\r
986 * \r
987 */\r
988 private static final long serialVersionUID = 1L;\r
989\r
a13899c5 990 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 991 if (jTable.getSelectedRow() < 0) {\r
992 return;\r
993 }\r
a13899c5 994 Object[] o = {"", ""};\r
995 ffsAttributesTableModel.addRow(o);\r
6cba26e8 996 ffc.genBuildOptionsFfsAttribute(jTable.getSelectedRow(), "", "");\r
a13899c5 997 }\r
998 });\r
999 }\r
1000 return jButton17;\r
1001 }\r
1002\r
1003 /**\r
1004 * This method initializes jButton18 \r
1005 * \r
1006 * @return javax.swing.JButton \r
1007 */\r
1008 private JButton getJButton18() {\r
1009 if (jButton18 == null) {\r
1010 jButton18 = new JButton();\r
6cba26e8 1011 jButton18.setPreferredSize(new java.awt.Dimension(80,20));\r
1012 jButton18.setText("Remove");\r
a13899c5 1013 jButton18.addActionListener(new AbstractAction(){\r
44053733 1014 /**\r
1015 * \r
1016 */\r
1017 private static final long serialVersionUID = 1L;\r
1018\r
a13899c5 1019 public void actionPerformed(ActionEvent arg0){\r
6cba26e8 1020 if (jTable.getSelectedRow() < 0) {\r
1021 return;\r
1022 }\r
a13899c5 1023 if (jTable4.getSelectedRow() >= 0){\r
1024 ffsAttributesTableModel.removeRow(jTable4.getSelectedRow());\r
6cba26e8 1025 ffc.removeBuildOptionsFfsAttribute(jTable.getSelectedRow(), jTable4.getSelectedRow());\r
a13899c5 1026 }\r
1027 }\r
1028 });\r
1029 }\r
1030 return jButton18;\r
1031 }\r
1032\r
1033 /**\r
1034 * This method initializes jButton19 \r
1035 * \r
1036 * @return javax.swing.JButton \r
1037 */\r
1038 private JButton getJButton19() {\r
1039 if (jButton19 == null) {\r
1040 jButton19 = new JButton();\r
1041 jButton19.setPreferredSize(new java.awt.Dimension(75,20));\r
1042 jButton19.setEnabled(false);\r
1043 jButton19.setText("Update");\r
1044 }\r
1045 return jButton19;\r
1046 }\r
1047\r
1048 /**\r
1049 * This method initializes jCheckBox9 \r
1050 * \r
1051 * @return javax.swing.JCheckBox \r
1052 */\r
1053 private JCheckBox getJCheckBox9() {\r
1054 if (jCheckBox9 == null) {\r
1055 jCheckBox9 = new JCheckBox();\r
1056 jCheckBox9.setPreferredSize(new java.awt.Dimension(50,20));\r
1057 jCheckBox9.setText("IA32");\r
1058 }\r
1059 return jCheckBox9;\r
1060 }\r
1061\r
1062 /**\r
1063 * This method initializes jCheckBox10 \r
1064 * \r
1065 * @return javax.swing.JCheckBox \r
1066 */\r
1067 private JCheckBox getJCheckBox10() {\r
1068 if (jCheckBox10 == null) {\r
1069 jCheckBox10 = new JCheckBox();\r
1070 jCheckBox10.setPreferredSize(new java.awt.Dimension(50,20));\r
1071 jCheckBox10.setText("IPF");\r
1072 }\r
1073 return jCheckBox10;\r
1074 }\r
1075\r
1076 /**\r
1077 * This method initializes jCheckBox11 \r
1078 * \r
1079 * @return javax.swing.JCheckBox \r
1080 */\r
1081 private JCheckBox getJCheckBox11() {\r
1082 if (jCheckBox11 == null) {\r
1083 jCheckBox11 = new JCheckBox();\r
1084 jCheckBox11.setText("X64");\r
1085 jCheckBox11.setPreferredSize(new java.awt.Dimension(47,20));\r
1086 }\r
1087 return jCheckBox11;\r
1088 }\r
1089\r
1090 /**\r
1091 * This method initializes jCheckBox12 \r
1092 * \r
1093 * @return javax.swing.JCheckBox \r
1094 */\r
1095 private JCheckBox getJCheckBox12() {\r
1096 if (jCheckBox12 == null) {\r
1097 jCheckBox12 = new JCheckBox();\r
1098 jCheckBox12.setPreferredSize(new java.awt.Dimension(50,20));\r
1099 jCheckBox12.setText("EBC");\r
1100 }\r
1101 return jCheckBox12;\r
1102 }\r
1103\r
1104 /**\r
1105 * This method initializes jCheckBox13 \r
1106 * \r
1107 * @return javax.swing.JCheckBox \r
1108 */\r
1109 private JCheckBox getJCheckBox13() {\r
1110 if (jCheckBox13 == null) {\r
1111 jCheckBox13 = new JCheckBox();\r
1112 jCheckBox13.setPreferredSize(new java.awt.Dimension(55,20));\r
1113 jCheckBox13.setText("ARM");\r
1114 }\r
1115 return jCheckBox13;\r
1116 }\r
1117\r
1118 /**\r
1119 * This method initializes jCheckBox14 \r
1120 * \r
1121 * @return javax.swing.JCheckBox \r
1122 */\r
1123 private JCheckBox getJCheckBox14() {\r
1124 if (jCheckBox14 == null) {\r
1125 jCheckBox14 = new JCheckBox();\r
1126 jCheckBox14.setPreferredSize(new java.awt.Dimension(50,20));\r
1127 jCheckBox14.setText("PPC");\r
1128 }\r
1129 return jCheckBox14;\r
1130 }\r
1131\r
1132 /**\r
1133 * This method initializes jTextField12 \r
1134 * \r
1135 * @return javax.swing.JTextField \r
1136 */\r
1137 private JTextField getJTextField12() {\r
1138 if (jTextField12 == null) {\r
1139 jTextField12 = new JTextField();\r
1140 jTextField12.setPreferredSize(new java.awt.Dimension(150,20));\r
1141 }\r
1142 return jTextField12;\r
1143 }\r
1144\r
1145 /**\r
1146 * This method initializes jTextField13 \r
1147 * \r
1148 * @return javax.swing.JTextField \r
1149 */\r
1150 private JTextField getJTextField13() {\r
1151 if (jTextField13 == null) {\r
1152 jTextField13 = new JTextField();\r
1153 jTextField13.setPreferredSize(new java.awt.Dimension(140,20));\r
1154 }\r
1155 return jTextField13;\r
1156 }\r
1157\r
44053733 1158 /**\r
1159 * This method initializes jScrollPane \r
1160 * \r
1161 * @return javax.swing.JScrollPane \r
1162 */\r
1163 private JScrollPane getJScrollPane() {\r
1164 if (jScrollPane == null) {\r
1165 jScrollPane = new JScrollPane();\r
1166 jScrollPane.setPreferredSize(new java.awt.Dimension(150,419));\r
1167 jScrollPane.setViewportView(getJTable());\r
1168 }\r
1169 return jScrollPane;\r
1170 }\r
1171\r
1172 /**\r
1173 * This method initializes jTable \r
1174 * \r
1175 * @return javax.swing.JTable \r
1176 */\r
1177 private JTable getJTable() {\r
1178 if (jTable == null) {\r
1179 ffsTableModel = new DefaultTableModel();\r
1180 ffsTableModel.addColumn("FFS Type");\r
1181 jTable = new JTable(ffsTableModel);\r
1182 jTable.setShowGrid(false);\r
1183 jTable.setRowHeight(20);\r
6cba26e8 1184 \r
1185 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1186 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
1187 public void valueChanged(ListSelectionEvent e) {\r
1188 \r
1189 if (e.getValueIsAdjusting()){\r
1190 return;\r
1191 }\r
1192 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1193 if (lsm.isSelectionEmpty()) {\r
1194 return;\r
1195 }\r
1196 else{\r
1197 int row = lsm.getMinSelectionIndex();\r
1198 sectionTableModel.setRowCount(0);\r
1199 sectionsTableModel.setRowCount(0);\r
1200 subsectionsTableModel.setRowCount(0);\r
1201 ffsAttributesTableModel.setRowCount(0);\r
1202 String[] sArray = {"", ""};\r
1203 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1204 ArrayList<String> alSections = new ArrayList<String>();\r
1205 ArrayList<String> alSection = new ArrayList<String>();\r
1206 ffc.getBuildOptionsFfs(row, sArray, lhm, alSections, alSection);\r
1207 jTextField6.setText(sArray[0]);\r
1208 jTextField.setText(sArray[1]);\r
1209 for (int i = 0; i < alSection.size(); ++i) {\r
1210 String[] sectionRow = {alSection.get(i)};\r
1211 sectionTableModel.addRow(sectionRow);\r
1212 }\r
1213 for (int j = 0; j < alSections.size(); ++j) {\r
1214 String[] sectionsRow = {alSections.get(j)};\r
1215 sectionsTableModel.addRow(sectionsRow);\r
1216 }\r
1217 if (lhm.size() <= 0 ) {\r
1218 return;\r
1219 }\r
1220 Set<String> keySet = lhm.keySet();\r
1221 Iterator<String> is = keySet.iterator();\r
1222 while(is.hasNext()) {\r
1223 String key = is.next();\r
1224 String[] attribRow = {key, lhm.get(key)};\r
1225 ffsAttributesTableModel.addRow(attribRow);\r
1226 }\r
1227 }\r
1228 }\r
1229 });\r
1230 \r
1231 jTable.getModel().addTableModelListener(new TableModelListener() {\r
1232 public void tableChanged(TableModelEvent arg0) {\r
1233 // TODO Auto-generated method stub\r
1234 int row = arg0.getFirstRow();\r
1235 TableModel m = (TableModel)arg0.getSource();\r
1236 if (arg0.getType() == TableModelEvent.UPDATE){\r
1237 //ToDo Data Validition check.\r
1238 String id = m.getValueAt(row, 0) + "";\r
1239 \r
1240 if (id.length() == 0) {\r
1241 return;\r
1242 }\r
1243 \r
3b405e9b 1244 ffc.updateBuildOptionsFfsKey(row, id);\r
6cba26e8 1245 }\r
1246 }\r
1247 });\r
44053733 1248 }\r
1249 return jTable;\r
1250 }\r
1251\r
6cba26e8 1252 /**\r
1253 * This method initializes jScrollPane1 \r
1254 * \r
1255 * @return javax.swing.JScrollPane \r
1256 */\r
1257 private JScrollPane getJScrollPane1() {\r
1258 if (jScrollPane1 == null) {\r
1259 jScrollPane1 = new JScrollPane();\r
1260 jScrollPane1.setPreferredSize(new java.awt.Dimension(500,80));\r
1261 jScrollPane1.setViewportView(getJTable1());\r
1262 }\r
1263 return jScrollPane1;\r
1264 }\r
1265\r
1266 /**\r
1267 * This method initializes jTable1 \r
1268 * \r
1269 * @return javax.swing.JTable \r
1270 */\r
1271 private JTable getJTable1() {\r
1272 if (jTable1 == null) {\r
1273 sectionTableModel = new DefaultTableModel();\r
1274 sectionTableModel.addColumn("SectionType");\r
1275 \r
3b405e9b 1276 jTable1 = new JTable(sectionTableModel);\r
f3b0ed9a 1277 jTable1.setRowHeight(20);\r
3b405e9b 1278 JComboBox cb = new JComboBox();\r
1279 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1280 cb.addItem("EFI_SECTION_VERSION");\r
1281 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1282 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1283 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1284 cb.addItem("EFI_SECTION_PE32");\r
1285 cb.addItem("EFI_SECTION_PIC");\r
1286 cb.addItem("EFI_SECTION_TE");\r
1287 cb.addItem("EFI_SECTION_RAW");\r
1288 cb.addItem("EFI_SECTION_COMPRESSION");\r
1289 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1290 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1291 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
1292 jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
1293 \r
1294 jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1295 \r
1296 jTable1.getModel().addTableModelListener(new TableModelListener() {\r
1297 public void tableChanged(TableModelEvent arg0) {\r
1298 // TODO Auto-generated method stub\r
1299 if (jTable.getSelectedRow() < 0) {\r
1300 return;\r
1301 }\r
1302 int row = arg0.getFirstRow();\r
1303 TableModel m = (TableModel)arg0.getSource();\r
1304 if (arg0.getType() == TableModelEvent.UPDATE){\r
1305 //ToDo Data Validition check.\r
1306 String type = m.getValueAt(row, 0) + "";\r
1307 \r
1308 ffc.updateBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row, type);\r
1309 }\r
1310 }\r
1311 });\r
6cba26e8 1312 }\r
1313 return jTable1;\r
1314 }\r
1315\r
1316 /**\r
1317 * This method initializes jScrollPane3 \r
1318 * \r
1319 * @return javax.swing.JScrollPane \r
1320 */\r
1321 private JScrollPane getJScrollPane3() {\r
1322 if (jScrollPane3 == null) {\r
1323 jScrollPane3 = new JScrollPane();\r
1324 jScrollPane3.setPreferredSize(new java.awt.Dimension(500,90));\r
1325 jScrollPane3.setViewportView(getJTable3());\r
1326 }\r
1327 return jScrollPane3;\r
1328 }\r
1329\r
1330 /**\r
1331 * This method initializes jTable3 \r
1332 * \r
1333 * @return javax.swing.JTable \r
1334 */\r
1335 private JTable getJTable3() {\r
1336 if (jTable3 == null) {\r
1337 subsectionsTableModel = new DefaultTableModel();\r
1338 subsectionsTableModel.addColumn("SectionType");\r
1339 jTable3 = new JTable(subsectionsTableModel);\r
f3b0ed9a 1340 jTable3.setRowHeight(20);\r
3b405e9b 1341 JComboBox cb = new JComboBox();\r
1342 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1343 cb.addItem("EFI_SECTION_VERSION");\r
1344 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1345 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1346 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1347 cb.addItem("EFI_SECTION_PE32");\r
1348 cb.addItem("EFI_SECTION_PIC");\r
1349 cb.addItem("EFI_SECTION_TE");\r
1350 cb.addItem("EFI_SECTION_RAW");\r
1351 cb.addItem("EFI_SECTION_COMPRESSION");\r
1352 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1353 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1354 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
1355 jTable3.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
1356 jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1357 \r
1358 jTable3.getModel().addTableModelListener(new TableModelListener() {\r
1359 public void tableChanged(TableModelEvent arg0) {\r
1360 // TODO Auto-generated method stub\r
1361 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1362 return;\r
1363 }\r
1364 int row = arg0.getFirstRow();\r
1365 TableModel m = (TableModel)arg0.getSource();\r
1366 if (arg0.getType() == TableModelEvent.UPDATE){\r
1367 //ToDo Data Validition check.\r
1368 String type = m.getValueAt(row, 0) + "";\r
1369 ffc.updateBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row, type);\r
1370 }\r
1371 }\r
1372 });\r
6cba26e8 1373 }\r
1374 return jTable3;\r
1375 }\r
1376\r
1377 /**\r
1378 * This method initializes jTextField \r
1379 * \r
1380 * @return javax.swing.JTextField \r
1381 */\r
1382 private JTextField getJTextField() {\r
1383 if (jTextField == null) {\r
1384 jTextField = new JTextField();\r
1385 jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
3b405e9b 1386 jTextField.addFocusListener(new java.awt.event.FocusAdapter() {\r
1387 public void focusLost(java.awt.event.FocusEvent e) {\r
1388 if (jTable.getSelectedRow() < 0) {\r
1389 return;\r
1390 }\r
1391 ffc.updateBuildOptionsFfsSectionsType(jTable.getSelectedRow(), jTextField.getText());\r
1392 }\r
1393 });\r
6cba26e8 1394 }\r
1395 return jTextField;\r
1396 }\r
1397\r
1398 /**\r
1399 * This method initializes jPanel4 \r
1400 * \r
1401 * @return javax.swing.JPanel \r
1402 */\r
1403 private JPanel getJPanel4() {\r
1404 if (jPanel4 == null) {\r
1405 jPanel4 = new JPanel();\r
1406 jPanel4.setPreferredSize(new java.awt.Dimension(100,100));\r
1407 jPanel4.add(getJButton17(), null);\r
1408 jPanel4.add(getJButton18(), null);\r
1409 }\r
1410 return jPanel4;\r
1411 }\r
1412\r
1413 /**\r
1414 * This method initializes jButton \r
1415 * \r
1416 * @return javax.swing.JButton \r
1417 */\r
1418 private JButton getJButton() {\r
1419 if (jButton == null) {\r
1420 jButton = new JButton();\r
1421 jButton.setPreferredSize(new java.awt.Dimension(80,20));\r
1422 jButton.setText("New");\r
3b405e9b 1423 jButton.addActionListener(new java.awt.event.ActionListener() {\r
1424 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1425 if (jTable.getSelectedRow() < 0) {\r
1426 return;\r
1427 }\r
1428 String[] row = {"EFI_SECTION_RAW"};\r
1429 sectionTableModel.addRow(row);\r
1430 ffc.genBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row[0]);\r
1431 }\r
1432 });\r
6cba26e8 1433 }\r
1434 return jButton;\r
1435 }\r
1436\r
1437 /**\r
1438 * This method initializes jButton1 \r
1439 * \r
1440 * @return javax.swing.JButton \r
1441 */\r
1442 private JButton getJButton1() {\r
1443 if (jButton1 == null) {\r
1444 jButton1 = new JButton();\r
1445 jButton1.setPreferredSize(new java.awt.Dimension(80,20));\r
1446 jButton1.setText("Remove");\r
3b405e9b 1447 \r
1448 jButton1.addActionListener(new java.awt.event.ActionListener() {\r
1449 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1450 if (jTable.getSelectedRow() < 0 || jTable1.getSelectedRow() < 0) {\r
1451 return;\r
1452 }\r
1453 sectionTableModel.removeRow(jTable1.getSelectedRow());\r
1454 ffc.removeBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), jTable1.getSelectedRow());\r
1455 }\r
1456 });\r
6cba26e8 1457 }\r
1458 return jButton1;\r
1459 }\r
1460\r
1461 /**\r
1462 * This method initializes jButton2 \r
1463 * \r
1464 * @return javax.swing.JButton \r
1465 */\r
1466 private JButton getJButton2() {\r
1467 if (jButton2 == null) {\r
1468 jButton2 = new JButton();\r
1469 jButton2.setPreferredSize(new java.awt.Dimension(80,20));\r
1470 jButton2.setText("New");\r
3b405e9b 1471 jButton2.addActionListener(new java.awt.event.ActionListener() {\r
1472 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1473 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1474 return;\r
1475 }\r
1476 String[] row = {"EFI_SECTION_RAW"};\r
1477 subsectionsTableModel.addRow(row);\r
1478 ffc.genBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row[0]);\r
1479 \r
1480 }\r
1481 });\r
6cba26e8 1482 }\r
1483 return jButton2;\r
1484 }\r
1485\r
1486 /**\r
1487 * This method initializes jButton3 \r
1488 * \r
1489 * @return javax.swing.JButton \r
1490 */\r
1491 private JButton getJButton3() {\r
1492 if (jButton3 == null) {\r
1493 jButton3 = new JButton();\r
1494 jButton3.setPreferredSize(new java.awt.Dimension(80,20));\r
1495 jButton3.setText("Remove");\r
3b405e9b 1496 jButton3.addActionListener(new java.awt.event.ActionListener() {\r
1497 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1498 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0 || jTable3.getSelectedRow() < 0) {\r
1499 return;\r
1500 }\r
1501 subsectionsTableModel.removeRow(jTable3.getSelectedRow());\r
1502 ffc.removeBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), jTable3.getSelectedRow());\r
1503 }\r
1504 });\r
6cba26e8 1505 }\r
1506 return jButton3;\r
1507 }\r
1508\r
1509 /**\r
1510 * This method initializes jButton6 \r
1511 * \r
1512 * @return javax.swing.JButton \r
1513 */\r
1514 private JButton getJButton6() {\r
1515 if (jButton6 == null) {\r
1516 jButton6 = new JButton();\r
1517 jButton6.setPreferredSize(new java.awt.Dimension(80,20));\r
1518 jButton6.setText("New");\r
3b405e9b 1519 jButton6.addActionListener(new java.awt.event.ActionListener() {\r
1520 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1521 if (jTable.getSelectedRow() < 0) {\r
1522 return;\r
1523 }\r
1524 String[] row = {""};\r
1525 sectionsTableModel.addRow(row);\r
1526 ffc.genBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), "");\r
1527 }\r
1528 });\r
6cba26e8 1529 }\r
1530 return jButton6;\r
1531 }\r
1532\r
1533 /**\r
1534 * This method initializes jButton7 \r
1535 * \r
1536 * @return javax.swing.JButton \r
1537 */\r
1538 private JButton getJButton7() {\r
1539 if (jButton7 == null) {\r
1540 jButton7 = new JButton();\r
1541 jButton7.setPreferredSize(new java.awt.Dimension(80,20));\r
1542 jButton7.setText("Remove");\r
3b405e9b 1543 jButton7.addActionListener(new java.awt.event.ActionListener() {\r
1544 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1545 if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
1546 return;\r
1547 }\r
1548 sectionsTableModel.removeRow(jTable6.getSelectedRow());\r
1549 ffc.removeBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), jTable6.getSelectedRow());\r
1550 }\r
1551 });\r
6cba26e8 1552 }\r
1553 return jButton7;\r
1554 }\r
1555\r
1556 /**\r
1557 * This method initializes jScrollPane4 \r
1558 * \r
1559 * @return javax.swing.JScrollPane \r
1560 */\r
1561 private JScrollPane getJScrollPane4() {\r
1562 if (jScrollPane4 == null) {\r
1563 jScrollPane4 = new JScrollPane();\r
1564 jScrollPane4.setPreferredSize(new java.awt.Dimension(500,80));\r
1565 jScrollPane4.setViewportView(getJTable6());\r
1566 }\r
1567 return jScrollPane4;\r
1568 }\r
1569\r
1570 /**\r
1571 * This method initializes jTable6 \r
1572 * \r
1573 * @return javax.swing.JTable \r
1574 */\r
1575 private JTable getJTable6() {\r
1576 if (jTable6 == null) {\r
1577 sectionsTableModel = new DefaultTableModel();\r
1578 sectionsTableModel.addColumn("EncapsulationType");\r
1579 jTable6 = new JTable(sectionsTableModel);\r
f3b0ed9a 1580 jTable6.setRowHeight(20);\r
6cba26e8 1581 jTable6.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1582 jTable6.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
1583 public void valueChanged(ListSelectionEvent e) {\r
1584 if (e.getValueIsAdjusting()){\r
1585 return;\r
1586 }\r
1587 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1588 if (lsm.isSelectionEmpty()) {\r
1589 return;\r
1590 }\r
1591 else{\r
1592 int sectionsRow = lsm.getMinSelectionIndex();\r
1593 if (jTable.getSelectedRow() < 0) {\r
1594 return;\r
1595 }\r
1596 subsectionsTableModel.setRowCount(0);\r
1597 ArrayList<String> al = new ArrayList<String>();\r
1598 ffc.getBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), sectionsRow, al);\r
1599 for (int i = 0; i < al.size(); ++i) {\r
1600 String[] subsectionRow = {al.get(i)};\r
1601 subsectionsTableModel.addRow(subsectionRow);\r
1602 }\r
1603 }\r
1604 }\r
1605 });\r
1606 \r
1607 jTable6.getModel().addTableModelListener(new TableModelListener() {\r
1608 public void tableChanged(TableModelEvent arg0) {\r
1609 // TODO Auto-generated method stub\r
1610 int row = arg0.getFirstRow();\r
1611 TableModel m = (TableModel)arg0.getSource();\r
1612 if (arg0.getType() == TableModelEvent.UPDATE){\r
1613 //ToDo Data Validition check.\r
3b405e9b 1614 String encapType = m.getValueAt(row, 0) + "";\r
1615 ffc.updateBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), row, encapType);\r
6cba26e8 1616 }\r
1617 }\r
1618 });\r
1619 }\r
1620 return jTable6;\r
1621 }\r
1622\r
a13899c5 1623 /**\r
1624 * @param args\r
1625 */\r
1626 public static void main(String[] args) {\r
1627 // TODO Auto-generated method stub\r
1628 new FpdBuildOptions().setVisible(true);\r
1629 }\r
1630\r
1631 /**\r
1632 * This is the default constructor\r
1633 */\r
1634 public FpdBuildOptions() {\r
1635 super();\r
1636 initialize();\r
1637 this.setVisible(true);\r
1638 }\r
1639 \r
1640 public FpdBuildOptions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
1641 this();\r
1642 ffc = new FpdFileContents(fpd);\r
1643 init(ffc);\r
1644 }\r
1645\r
1646 private void init(FpdFileContents ffc) {\r
1647 initOptionTable();\r
1648 initAntTaskTable();\r
6cba26e8 1649 initFfsTable();\r
44053733 1650 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1651 public void internalFrameDeactivated(InternalFrameEvent e){\r
1652 if (jTable.isEditing()) {\r
1653 jTable.getCellEditor().stopCellEditing();\r
1654 }\r
6cba26e8 1655 if (jTable1.isEditing()) {\r
1656 jTable1.getCellEditor().stopCellEditing();\r
1657 }\r
44053733 1658 if (jTable2.isEditing()) {\r
1659 jTable2.getCellEditor().stopCellEditing();\r
1660 }\r
6cba26e8 1661 if (jTable3.isEditing()) {\r
1662 jTable3.getCellEditor().stopCellEditing();\r
1663 }\r
44053733 1664 if (jTable4.isEditing()) {\r
1665 jTable4.getCellEditor().stopCellEditing();\r
1666 }\r
1667 if (jTable5.isEditing()) {\r
1668 jTable5.getCellEditor().stopCellEditing();\r
1669 }\r
1670 }\r
1671 });\r
a13899c5 1672 }\r
1673 \r
1674 private void initOptionTable() {\r
1675 if (ffc.getBuildOptionsOptCount() == 0) {\r
1676 //ToDo get default options from *.txt file\r
1677 return;\r
1678 }\r
1679 String[][] saa = new String[ffc.getBuildOptionsOptCount()][6];\r
1680 ffc.getBuildOptionsOpts(saa);\r
1681 for (int i = 0; i < saa.length; ++i) {\r
1682 optionsTableModel.addRow(saa[i]);\r
1683 }\r
1684 }\r
1685 \r
1686 private void initAntTaskTable() {\r
1687 if (ffc.getBuildOptionsUserDefAntTaskCount() == 0) {\r
1688 return;\r
1689 }\r
1690 String[][] saa = new String[ffc.getBuildOptionsUserDefAntTaskCount()][3];\r
1691 ffc.getBuildOptionsUserDefAntTasks(saa);\r
1692 for (int i = 0; i < saa.length; ++i) {\r
1693 antTaskTableModel.addRow(saa[i]);\r
1694 }\r
1695 }\r
6cba26e8 1696 \r
1697 private void initFfsTable(){\r
1698 int ffsCount = ffc.getBuildOptionsFfsCount();\r
1699 if (ffsCount < 0) {\r
1700 return;\r
1701 }\r
1702 String[][] saa = new String[ffsCount][1];\r
1703 ffc.getBuildOptionsFfsKey(saa);\r
1704 for (int i = 0; i < saa.length; ++i) {\r
1705 ffsTableModel.addRow(saa[i]);\r
1706 }\r
1707 }\r
a13899c5 1708 /**\r
1709 * This method initializes this\r
1710 * \r
1711 * @return void\r
1712 */\r
1713 private void initialize() {\r
6cba26e8 1714 this.setSize(722, 577);\r
a13899c5 1715 this.setTitle("FPD Build Options");\r
1716 this.setContentPane(getJContentPane());\r
1717 }\r
1718\r
1719 /**\r
1720 * This method initializes jContentPane\r
1721 * \r
1722 * @return javax.swing.JPanel\r
1723 */\r
1724 private JPanel getJContentPane() {\r
1725 if (jContentPane == null) {\r
1726 jContentPane = new JPanel();\r
1727 jContentPane.setLayout(new BorderLayout());\r
1728 jContentPane.add(getJPanel(), java.awt.BorderLayout.SOUTH);\r
1729 jContentPane.add(getJPanel1(), java.awt.BorderLayout.NORTH);\r
1730 jContentPane.add(getJPanel2(), java.awt.BorderLayout.WEST);\r
1731 jContentPane.add(getJPanel3(), java.awt.BorderLayout.EAST);\r
1732 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1733 }\r
1734 return jContentPane;\r
1735 }\r
1736\r
1737} // @jve:decl-index=0:visual-constraint="10,10"\r