]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
Make opening dialogs re-gain focus when user switch back to main UI from other window...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdBuildOptions.java
... / ...
CommitLineData
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
18\r
19import javax.swing.JPanel;\r
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
27import java.awt.event.ComponentEvent;\r
28\r
29import javax.swing.DefaultCellEditor;\r
30import javax.swing.JFileChooser;\r
31import javax.swing.JOptionPane;\r
32import javax.swing.JTextField;\r
33import javax.swing.JButton;\r
34import javax.swing.JScrollPane;\r
35import javax.swing.JTable;\r
36import javax.swing.JComboBox;\r
37import javax.swing.ListSelectionModel;\r
38import javax.swing.event.DocumentEvent;\r
39import javax.swing.event.DocumentListener;\r
40import javax.swing.event.InternalFrameAdapter;\r
41import javax.swing.event.InternalFrameEvent;\r
42import javax.swing.event.ListSelectionEvent;\r
43import javax.swing.event.ListSelectionListener;\r
44import javax.swing.event.TableModelEvent;\r
45import javax.swing.event.TableModelListener;\r
46import javax.swing.table.DefaultTableModel;\r
47import javax.swing.table.TableModel;\r
48\r
49import org.tianocore.PlatformSurfaceAreaDocument;\r
50import org.tianocore.frameworkwizard.FrameworkWizardUI;\r
51import org.tianocore.frameworkwizard.common.DataValidation;\r
52import org.tianocore.frameworkwizard.common.Tools;\r
53import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
54import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
55import org.tianocore.frameworkwizard.workspace.Workspace;\r
56\r
57import java.io.File;\r
58import java.util.ArrayList;\r
59import java.util.Iterator;\r
60import java.util.LinkedHashMap;\r
61import java.util.Set;\r
62import java.util.Vector;\r
63import java.awt.Dimension;\r
64import javax.swing.JSplitPane;\r
65import java.awt.GridLayout;\r
66\r
67public class FpdBuildOptions extends IInternalFrame {\r
68\r
69 private final int oneRowHeight = 20;\r
70\r
71 private final int twoRowHeight = 40;\r
72\r
73 private final int sepHeight = 6;\r
74\r
75 private final int sepWidth = 10;\r
76\r
77 private final int buttonWidth = 90;\r
78\r
79 private final int rowOne = 12;\r
80\r
81 private final int dialogWidth = 600;\r
82\r
83 private final int rowTwo = rowOne + oneRowHeight + sepHeight;\r
84\r
85 private final int rowThree = rowTwo + oneRowHeight + sepHeight;\r
86\r
87 private final int rowFour = rowThree + oneRowHeight + sepHeight;\r
88\r
89 private final int rowFive = rowFour + oneRowHeight + sepHeight;\r
90\r
91 private final int rowSix = rowFive + oneRowHeight + sepHeight;\r
92\r
93 private final int rowSeven = rowSix + oneRowHeight + sepHeight;\r
94\r
95 private final int buttonRow = rowSeven + oneRowHeight + sepHeight + sepHeight;\r
96\r
97 private final int dialogHeight = buttonRow + twoRowHeight + twoRowHeight;\r
98\r
99 private final int lastButtonXLoc = dialogWidth - buttonWidth - sepWidth;\r
100\r
101 private final int next2LastButtonLoc = lastButtonXLoc - buttonWidth - sepWidth;\r
102\r
103 private final int firstButtonLoc = next2LastButtonLoc - buttonWidth - sepWidth;\r
104\r
105 private final int labelColumn = 12;\r
106\r
107 private final int fieldColumn = 168;\r
108\r
109 private final int labelWidth = 155;\r
110\r
111 private final int fieldWidth = 320;\r
112\r
113 private static final long serialVersionUID = 1L;\r
114\r
115 private JPanel jContentPane = null;\r
116\r
117 // private JPanel jPanelContentSouth = null;\r
118\r
119 // private JPanel jPanelContentNorth = null;\r
120\r
121 // private JPanel jPanelContentWest = null;\r
122\r
123 // private JPanel jPanelContentEast = null;\r
124\r
125 private JTabbedPane jTabbedPane = null;\r
126\r
127 private JPanel jPanelUserDef = null;\r
128\r
129 private JPanel jPanelUserDefNorth = null;\r
130\r
131 private JPanel jPanelUserDefCenter = null;\r
132\r
133 private JTextField jTextFieldAntTaskFile = null;\r
134\r
135 private JLabel jLabelAntTaskId = null;\r
136\r
137 private JTextField jTextFieldAntTaskId = null;\r
138\r
139 private JButton jButtonAntTaskAdd = null;\r
140\r
141 private JButton jButtonAntTaskDel = null;\r
142\r
143 private JTextField jTextFieldAntCmdOpts = null;\r
144\r
145 private JScrollPane jScrollPaneAntTasks = null;\r
146\r
147 private JTable jTableAntTasks = null;\r
148\r
149 private DefaultTableModel ffsTableModel = null;\r
150\r
151 private DefaultTableModel sectionsTableModel = null;\r
152\r
153 private DefaultTableModel sectionTableModel = null;\r
154\r
155 private DefaultTableModel subsectionsTableModel = null;\r
156\r
157 private DefaultTableModel antTaskTableModel = null;\r
158\r
159 private DefaultTableModel ffsAttributesTableModel = null;\r
160\r
161 private DefaultTableModel optionsTableModel = null;\r
162\r
163 private JPanel jPanelFfsTab = null;\r
164\r
165 private JPanel jPanelFfsTabCenter = null;\r
166\r
167 private JPanel jPanelFfsTabCenterN = null;\r
168\r
169 private JPanel jPanelFfsTabCenterS = null;\r
170\r
171 private JButton jButtonFfsAdd = null;\r
172\r
173 private JButton jButtonFfsDel = null;\r
174\r
175 private JScrollPane jScrollPaneFfsAttribs = null;\r
176\r
177 private JTable jTableFfsAttribs = null;\r
178\r
179 private JPanel jPanelOptionsTab = null;\r
180\r
181 private JLabel jLabelOptionContents = null;\r
182\r
183 private JTextField jTextFieldOptionContents = null;\r
184\r
185 private JLabel jLabelToolChainFamily = null;\r
186\r
187 private JLabel jLabelSupArch = null;\r
188\r
189 private JLabel jLabelToolCmd = null;\r
190\r
191 private JTextField jTextFieldToolCmd = null;\r
192\r
193 private JScrollPane jScrollPaneOptions = null;\r
194\r
195 private JTable jTableOptions = null;\r
196 \r
197 private JButton jButtonOptionsAdd = null;\r
198\r
199 private JButton jButtonOptionsDel = null;\r
200\r
201 private JButton jButtonFfsAttribNew = null;\r
202\r
203 private JButton jButtonFfsAttribRemove = null;\r
204\r
205 private FpdFileContents ffc = null;\r
206\r
207 private OpeningPlatformType docConsole = null;\r
208\r
209 private JPanel jArchitectureSelections = null;\r
210\r
211 private JCheckBox jCheckBoxIA32 = null;\r
212\r
213 private JCheckBox jCheckBoxIpf = null;\r
214\r
215 private JCheckBox jCheckBoxX64 = null;\r
216\r
217 private JCheckBox jCheckBoxEBC = null;\r
218\r
219 private JCheckBox jCheckBoxARM = null;\r
220\r
221 private JCheckBox jCheckBoxPPC = null;\r
222\r
223 private JLabel jLabelBuildTargets = null;\r
224\r
225 private JTextField jTextFieldBuildTargets = null;\r
226\r
227 private JTextField jTextFieldTagName = null;\r
228\r
229 private JLabel jLabelTagName = null;\r
230\r
231 private int selectedRow = -1;\r
232\r
233 private JLabel jLabelAntTaskFile = null;\r
234\r
235 private JLabel jLabelAntCmdOpts = null;\r
236\r
237 private JScrollPane jScrollPaneFfs = null;\r
238\r
239 private JTable jTableFfs = null;\r
240\r
241 private JLabel jLabelFfsSection = null;\r
242\r
243 private JScrollPane jScrollPaneFfsSection = null;\r
244\r
245 private JTable jTableFfsSection = null;\r
246\r
247 private JLabel jLabelFfsSubSections = null;\r
248\r
249 private JScrollPane jScrollPaneFfsSubSection = null;\r
250\r
251 private JTable jTableFfsSubSection = null;\r
252\r
253 private JLabel jLabelEncapType = null;\r
254\r
255 private JTextField jTextFieldEncapType = null;\r
256\r
257 private JPanel jPanelFfsAttribButtonGroup = null;\r
258\r
259 private JLabel jLabelFfsAttribs = null;\r
260\r
261 private JButton jButtonFfsSectionNew = null;\r
262\r
263 private JButton jButtonFfsSectionRemove = null;\r
264\r
265 private JButton jButtonFfsSubSectionNew = null;\r
266\r
267 private JButton jButtonFfsSubSectionRemove = null;\r
268\r
269 private JLabel jLabelFfsSections = null;\r
270\r
271 private JButton jButtonFfsSectionsNew = null;\r
272\r
273 private JButton jButtonFfsSectionsRemove = null;\r
274\r
275 private JScrollPane jScrollPaneFfsSections = null;\r
276\r
277 private JTable jTableFfsSections = null;\r
278\r
279 private JButton jButtonAntTaskFileBrowse = null;\r
280\r
281 private JTextField jTextFieldToolChainFamily = null;\r
282\r
283 private JSplitPane jSplitPaneFfsC = null;\r
284\r
285 private JPanel jPanelFfsCTop = null;\r
286\r
287 private JSplitPane jSplitPaneFfsCBottom = null;\r
288\r
289 private JPanel jPanelFfsCBottomTop = null;\r
290\r
291 private JPanel jPanelFfsCBottomBottom = null;\r
292\r
293 private JPanel jPanelSectionN = null;\r
294\r
295 private JPanel jPanelSectionsN = null;\r
296\r
297 private JPanel jPanelSubSectionN = null;\r
298\r
299 private JPanel jPanelOptionsContainer = null;\r
300\r
301 private JPanel jPanelUserDefCenterN = null;\r
302\r
303 private JPanel jPanelTableOptionsContainer = null;\r
304\r
305 private JLabel jLabelTableOptionsTitle = null;\r
306 \r
307 private final int buildTargetWidth = 150;\r
308 private final int toolChainFamilyWidth = 150;\r
309 private final int supportArchWidth = 150;\r
310 private final int toolCmdCodeWidth = 200;\r
311 private final int tagNameWidth = 150;\r
312 private final int argWidth = 400;\r
313 \r
314 private boolean ffsSelection = false;\r
315 private int selectedFfsTableRow = -1;\r
316\r
317 /**\r
318 * This method initializes jPanel \r
319 * \r
320 * @return javax.swing.JPanel \r
321 private JPanel getJPanelContentSouth() {\r
322 if (jPanelContentSouth == null) {\r
323 jPanelContentSouth = new JPanel();\r
324 }\r
325 return jPanelContentSouth;\r
326 }\r
327 */\r
328\r
329 /**\r
330 * This method initializes jPanel1 \r
331 * \r
332 * @return javax.swing.JPanel \r
333 private JPanel getJPanelContentNorth() {\r
334 if (jPanelContentNorth == null) {\r
335 jPanelContentNorth = new JPanel();\r
336 }\r
337 return jPanelContentNorth;\r
338 }\r
339 */\r
340\r
341 /**\r
342 * This method initializes jPanel2 \r
343 * \r
344 * @return javax.swing.JPanel \r
345 private JPanel getJPanelContentWest() {\r
346 if (jPanelContentWest == null) {\r
347 jPanelContentWest = new JPanel();\r
348 }\r
349 return jPanelContentWest;\r
350 }\r
351 */\r
352\r
353 /**\r
354 * This method initializes jPanel3 \r
355 * \r
356 * @return javax.swing.JPanel \r
357 private JPanel getJPanelContentEast() {\r
358 if (jPanelContentEast == null) {\r
359 jPanelContentEast = new JPanel();\r
360 }\r
361 return jPanelContentEast;\r
362 }\r
363 */\r
364\r
365 /**\r
366 * This method initializes jTabbedPane \r
367 * \r
368 * @return javax.swing.JTabbedPane \r
369 */\r
370 private JTabbedPane getJTabbedPane() {\r
371 if (jTabbedPane == null) {\r
372 jTabbedPane = new JTabbedPane();\r
373 jTabbedPane.addTab("Flash Filesystem Options", null, getJPanelFfsTab(), null);\r
374 jTabbedPane.addTab("Customize Tool Chain Configurations", null, getJPanelOptionsTab(), null);\r
375 jTabbedPane.addTab("User Defined ANT Tasks", null, getJPanelUserDef(), null);\r
376 }\r
377 return jTabbedPane;\r
378 }\r
379\r
380 /**\r
381 * This method initializes this\r
382 * \r
383 * @return void\r
384 */\r
385 private void initialize() {\r
386 this.setSize(722, 577);\r
387 this.setTitle("Platform Build Options");\r
388 this.setContentPane(getJContentPane());\r
389 }\r
390\r
391 /**\r
392 * This method initializes jContentPane\r
393 * \r
394 * @return javax.swing.JPanel\r
395 */\r
396 private JPanel getJContentPane() {\r
397 if (jContentPane == null) {\r
398 jContentPane = new JPanel();\r
399 jContentPane.setLayout(new BorderLayout());\r
400 // jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
401 // jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
402 // jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
403 // jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
404 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
405 }\r
406 return jContentPane;\r
407 }\r
408\r
409 /**\r
410 * This method initializes jPanelTableOptionsContainer \r
411 * \r
412 * @return javax.swing.JPanel \r
413 */\r
414 private JPanel getJPanelTableOptionsContainer() {\r
415 if (jPanelTableOptionsContainer == null) {\r
416 jLabelTableOptionsTitle = new JLabel();\r
417 jLabelTableOptionsTitle.setText(" Current Argument Lines");\r
418 jPanelTableOptionsContainer = new JPanel();\r
419 jPanelTableOptionsContainer.setLayout(new BorderLayout());\r
420 jPanelTableOptionsContainer.add(jLabelTableOptionsTitle, java.awt.BorderLayout.NORTH);\r
421 jPanelTableOptionsContainer.add(getJScrollPaneOptions(), java.awt.BorderLayout.CENTER);\r
422 }\r
423 return jPanelTableOptionsContainer;\r
424 }\r
425\r
426 /**\r
427 * @param args\r
428 */\r
429 public static void main(String[] args) {\r
430 // TODO Auto-generated method stub\r
431 new FpdBuildOptions().setVisible(true);\r
432 }\r
433\r
434 /**\r
435 * This is the default constructor\r
436 */\r
437 public FpdBuildOptions() {\r
438 super();\r
439 initialize();\r
440 this.setVisible(true);\r
441 }\r
442\r
443 public FpdBuildOptions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
444 this();\r
445 ffc = new FpdFileContents(fpd);\r
446 init(ffc);\r
447 }\r
448\r
449 public FpdBuildOptions(OpeningPlatformType opt) {\r
450 this(opt.getXmlFpd());\r
451 docConsole = opt;\r
452 }\r
453\r
454 private void init(FpdFileContents ffc) {\r
455 initOptionTable();\r
456 initAntTaskTable();\r
457 initFfsTable();\r
458 this.addInternalFrameListener(new InternalFrameAdapter() {\r
459 public void internalFrameDeactivated(InternalFrameEvent e) {\r
460 if (jTableAntTasks.isEditing()) {\r
461 jTableAntTasks.getCellEditor().stopCellEditing();\r
462 }\r
463 if (jTableOptions.isEditing()) {\r
464 jTableOptions.getCellEditor().stopCellEditing();\r
465 }\r
466 stopEditingInTables ();\r
467 }\r
468 });\r
469 }\r
470 \r
471 private void stopEditingInTables () {\r
472 if (jTableFfs.isEditing()) {\r
473 jTableFfs.getCellEditor().stopCellEditing();\r
474 }\r
475 if (jTableFfsSection.isEditing()) {\r
476 jTableFfsSection.getCellEditor().stopCellEditing();\r
477 }\r
478 if (jTableFfsSections.isEditing()) {\r
479 jTableFfsSections.getCellEditor().stopCellEditing();\r
480 }\r
481 if (jTableFfsSubSection.isEditing()) {\r
482 jTableFfsSubSection.getCellEditor().stopCellEditing();\r
483 }\r
484 if (jTableFfsAttribs.isEditing()) {\r
485 jTableFfsAttribs.getCellEditor().stopCellEditing();\r
486 }\r
487 }\r
488\r
489 /**\r
490 * This method initializes jPanel13 \r
491 * \r
492 * @return javax.swing.JPanel \r
493 */\r
494 private JPanel getJPanelFfsTab() {\r
495 if (jPanelFfsTab == null) {\r
496 jPanelFfsTab = new JPanel();\r
497 jPanelFfsTab.setLayout(new BorderLayout());\r
498 jPanelFfsTab.add(getJPanelFfsTabCenter(), java.awt.BorderLayout.CENTER);\r
499 jPanelFfsTab.add(getJScrollPaneFfs(), java.awt.BorderLayout.WEST);\r
500 }\r
501 return jPanelFfsTab;\r
502 }\r
503\r
504 /**\r
505 * This method initializes jPanel18 \r
506 * \r
507 * @return javax.swing.JPanel \r
508 */\r
509 private JPanel getJPanelFfsTabCenter() {\r
510 if (jPanelFfsTabCenter == null) {\r
511 jPanelFfsTabCenter = new JPanel();\r
512 jPanelFfsTabCenter.setLayout(new BorderLayout());\r
513 jPanelFfsTabCenter.add(getJPanelFfsTabCenterN(), java.awt.BorderLayout.NORTH);\r
514 jPanelFfsTabCenter.add(getJPanelFfsTabCenterS(), java.awt.BorderLayout.SOUTH);\r
515 jPanelFfsTabCenter.add(getJSplitPaneFfsC(), java.awt.BorderLayout.CENTER);\r
516 }\r
517 return jPanelFfsTabCenter;\r
518 }\r
519\r
520 /**\r
521 * This method initializes jPanel15 \r
522 * \r
523 * @return javax.swing.JPanel \r
524 */\r
525 private JPanel getJPanelFfsTabCenterN() {\r
526 if (jPanelFfsTabCenterN == null) {\r
527 jLabelEncapType = new JLabel();\r
528 jLabelEncapType.setText("Encapsulation Type");\r
529 FlowLayout flowLayout5 = new FlowLayout();\r
530 flowLayout5.setAlignment(java.awt.FlowLayout.RIGHT);\r
531 \r
532 jPanelFfsTabCenterN = new JPanel();\r
533 jPanelFfsTabCenterN.setLayout(flowLayout5);\r
534 \r
535 \r
536 jPanelFfsTabCenterN.add(jLabelEncapType, null);\r
537 jPanelFfsTabCenterN.add(getJTextFieldEncapType(), null);\r
538 jPanelFfsTabCenterN.add(getJButtonFfsAdd(), null);\r
539 jPanelFfsTabCenterN.add(getJButtonFfsDel(), null);\r
540 }\r
541 return jPanelFfsTabCenterN;\r
542 }\r
543\r
544 /**\r
545 * This method initializes jPanel16 \r
546 * \r
547 * @return javax.swing.JPanel \r
548 */\r
549 private JPanel getJPanelFfsTabCenterS() {\r
550 if (jPanelFfsTabCenterS == null) {\r
551 jLabelFfsAttribs = new JLabel();\r
552 jLabelFfsAttribs.setText("Attributes");\r
553 jPanelFfsTabCenterS = new JPanel();\r
554 jPanelFfsTabCenterS.setPreferredSize(new java.awt.Dimension(491, 130));\r
555 jPanelFfsTabCenterS.setLayout(new BorderLayout());\r
556 jPanelFfsTabCenterS.add(jLabelFfsAttribs, java.awt.BorderLayout.WEST);\r
557 jPanelFfsTabCenterS.add(getJScrollPaneFfsAttribs(), java.awt.BorderLayout.CENTER);\r
558 jPanelFfsTabCenterS.add(getJPanelFfsAttribButtonGroup(), java.awt.BorderLayout.EAST);\r
559 }\r
560 return jPanelFfsTabCenterS;\r
561 }\r
562\r
563 /**\r
564 * This method initializes jTextField6 \r
565 * \r
566 * @return javax.swing.JTextField \r
567 */\r
568 \r
569\r
570 /**\r
571 * This method initializes jButton8 \r
572 * \r
573 * @return javax.swing.JButton \r
574 */\r
575 private JButton getJButtonFfsAdd() {\r
576 if (jButtonFfsAdd == null) {\r
577 jButtonFfsAdd = new JButton();\r
578 jButtonFfsAdd.setPreferredSize(new java.awt.Dimension(70, 20));\r
579 jButtonFfsAdd.setText("New");\r
580 jButtonFfsAdd.addActionListener(new AbstractAction() {\r
581 /**\r
582 * \r
583 */\r
584 private static final long serialVersionUID = -2923720717273384221L;\r
585\r
586 public void actionPerformed(java.awt.event.ActionEvent e) {\r
587 \r
588 String[] row = { "" };\r
589 ffsTableModel.addRow(row);\r
590 docConsole.setSaved(false);\r
591 ffc.genBuildOptionsFfs("", "");\r
592 jTableFfs.changeSelection(ffsTableModel.getRowCount()-1, 0, false, false);\r
593 \r
594 }\r
595 });\r
596 }\r
597 return jButtonFfsAdd;\r
598 }\r
599\r
600 /**\r
601 * This method initializes jButton9 \r
602 * \r
603 * @return javax.swing.JButton \r
604 */\r
605 private JButton getJButtonFfsDel() {\r
606 if (jButtonFfsDel == null) {\r
607 jButtonFfsDel = new JButton();\r
608 jButtonFfsDel.setPreferredSize(new java.awt.Dimension(70, 20));\r
609 jButtonFfsDel.setText("Delete");\r
610 jButtonFfsDel.addActionListener(new AbstractAction() {\r
611 /**\r
612 * \r
613 */\r
614 private static final long serialVersionUID = -4002678939178194476L;\r
615\r
616 public void actionPerformed(ActionEvent arg0) {\r
617 if (jTableFfs.getSelectedRow() < 0) {\r
618 return;\r
619 }\r
620 stopEditingInTables();\r
621 docConsole.setSaved(false);\r
622 ffc.removeBuildOptionsFfs(jTableFfs.getSelectedRow());\r
623 ffsTableModel.removeRow(jTableFfs.getSelectedRow());\r
624 sectionTableModel.setRowCount(0);\r
625 sectionsTableModel.setRowCount(0);\r
626 subsectionsTableModel.setRowCount(0);\r
627 ffsAttributesTableModel.setRowCount(0);\r
628 }\r
629 });\r
630 }\r
631 return jButtonFfsDel;\r
632 }\r
633\r
634 /**\r
635 * This method initializes jScrollPane5 \r
636 * \r
637 * @return javax.swing.JScrollPane \r
638 */\r
639 private JScrollPane getJScrollPaneFfsAttribs() {\r
640 if (jScrollPaneFfsAttribs == null) {\r
641 jScrollPaneFfsAttribs = new JScrollPane();\r
642// jScrollPaneFfsAttribs.setPreferredSize(new java.awt.Dimension(350, 100));\r
643 jScrollPaneFfsAttribs.setViewportView(getJTableFfsAttribs());\r
644 \r
645 }\r
646 return jScrollPaneFfsAttribs;\r
647 }\r
648\r
649 /**\r
650 * This method initializes jTable4 \r
651 * \r
652 * @return javax.swing.JTable \r
653 */\r
654 private JTable getJTableFfsAttribs() {\r
655 if (jTableFfsAttribs == null) {\r
656 ffsAttributesTableModel = new DefaultTableModel();\r
657 jTableFfsAttribs = new JTable(ffsAttributesTableModel);\r
658// jTableFfsAttribs.setPreferredSize(new java.awt.Dimension(400, 80));\r
659 jTableFfsAttribs.setRowHeight(20);\r
660 ffsAttributesTableModel.addColumn("Name");\r
661 ffsAttributesTableModel.addColumn("Value");\r
662\r
663 jTableFfsAttribs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
664 jTableFfsAttribs.getModel().addTableModelListener(new TableModelListener() {\r
665 public void tableChanged(TableModelEvent arg0) {\r
666 // TODO Auto-generated method stub\r
667 int row = arg0.getFirstRow();\r
668 TableModel m = (TableModel) arg0.getSource();\r
669 if (arg0.getType() == TableModelEvent.UPDATE) {\r
670 //ToDo Data Validition check.\r
671 String name = m.getValueAt(row, 0) + "";\r
672 String value = m.getValueAt(row, 1) + "";\r
673\r
674 if (name.length() == 0) {\r
675 return;\r
676 }\r
677 if (value.length() == 0) {\r
678 return;\r
679 }\r
680 docConsole.setSaved(false);\r
681 ffc.updateBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(), row, name, value);\r
682 }\r
683 }\r
684 });\r
685 }\r
686 return jTableFfsAttribs;\r
687 }\r
688\r
689 private void initFfsTable() {\r
690 int ffsCount = ffc.getBuildOptionsFfsCount();\r
691 if (ffsCount < 0) {\r
692 return;\r
693 }\r
694 String[][] saa = new String[ffsCount][1];\r
695 ffc.getBuildOptionsFfsKey(saa);\r
696 for (int i = 0; i < saa.length; ++i) {\r
697 ffsTableModel.addRow(saa[i]);\r
698 }\r
699 jTableFfs.changeSelection(0, 0, false, false);\r
700 }\r
701\r
702 /**\r
703 * This method initializes jButton17 \r
704 * \r
705 * @return javax.swing.JButton \r
706 */\r
707 private JButton getJButtonFfsAttribNew() {\r
708 if (jButtonFfsAttribNew == null) {\r
709 jButtonFfsAttribNew = new JButton();\r
710 jButtonFfsAttribNew.setPreferredSize(new java.awt.Dimension(80, 20));\r
711 jButtonFfsAttribNew.setText("New");\r
712 jButtonFfsAttribNew.addActionListener(new AbstractAction() {\r
713 /**\r
714 * \r
715 */\r
716 private static final long serialVersionUID = 1L;\r
717\r
718 public void actionPerformed(ActionEvent arg0) {\r
719 if (jTableFfs.getSelectedRow() < 0) {\r
720 return;\r
721 }\r
722 Object[] o = { "", "" };\r
723 ffsAttributesTableModel.addRow(o);\r
724 docConsole.setSaved(false);\r
725 ffc.genBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(), "", "");\r
726 }\r
727 });\r
728 }\r
729 return jButtonFfsAttribNew;\r
730 }\r
731\r
732 /**\r
733 * This method initializes jButton18 \r
734 * \r
735 * @return javax.swing.JButton \r
736 */\r
737 private JButton getJButtonFfsAttribRemove() {\r
738 if (jButtonFfsAttribRemove == null) {\r
739 jButtonFfsAttribRemove = new JButton();\r
740 jButtonFfsAttribRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
741 jButtonFfsAttribRemove.setText("Remove");\r
742 jButtonFfsAttribRemove.addActionListener(new AbstractAction() {\r
743 /**\r
744 * \r
745 */\r
746 private static final long serialVersionUID = 1L;\r
747\r
748 public void actionPerformed(ActionEvent arg0) {\r
749 if (jTableFfs.getSelectedRow() < 0) {\r
750 return;\r
751 }\r
752 stopEditingInTables();\r
753 if (jTableFfsAttribs.getSelectedRow() >= 0) {\r
754 docConsole.setSaved(false);\r
755 ffsAttributesTableModel.removeRow(jTableFfsAttribs.getSelectedRow());\r
756 ffc.removeBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(),\r
757 jTableFfsAttribs.getSelectedRow());\r
758 }\r
759 }\r
760 });\r
761 }\r
762 return jButtonFfsAttribRemove;\r
763 }\r
764\r
765 /**\r
766 * This method initializes jScrollPane \r
767 * \r
768 * @return javax.swing.JScrollPane \r
769 */\r
770 private JScrollPane getJScrollPaneFfs() {\r
771 if (jScrollPaneFfs == null) {\r
772 jScrollPaneFfs = new JScrollPane();\r
773 jScrollPaneFfs.setPreferredSize(new java.awt.Dimension(200,419));\r
774 jScrollPaneFfs.setViewportView(getJTableFfs());\r
775 }\r
776 return jScrollPaneFfs;\r
777 }\r
778\r
779 /**\r
780 * This method initializes jTable \r
781 * \r
782 * @return javax.swing.JTable \r
783 */\r
784 private JTable getJTableFfs() {\r
785 if (jTableFfs == null) {\r
786 ffsTableModel = new DefaultTableModel();\r
787 ffsTableModel.addColumn("FFS Type");\r
788 jTableFfs = new JTable(ffsTableModel);\r
789 jTableFfs.setShowGrid(false);\r
790 jTableFfs.setRowHeight(20);\r
791\r
792 jTableFfs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
793 jTableFfs.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
794 public void valueChanged(ListSelectionEvent e) {\r
795\r
796 if (e.getValueIsAdjusting()) {\r
797 return;\r
798 }\r
799 ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
800 if (lsm.isSelectionEmpty()) {\r
801 return;\r
802 } else {\r
803 int row = lsm.getMinSelectionIndex();\r
804 sectionTableModel.setRowCount(0);\r
805 sectionsTableModel.setRowCount(0);\r
806 subsectionsTableModel.setRowCount(0);\r
807 ffsAttributesTableModel.setRowCount(0);\r
808 String[] sArray = { "", "" };\r
809 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
810 ArrayList<String> alSections = new ArrayList<String>();\r
811 ArrayList<String> alSection = new ArrayList<String>();\r
812 ffc.getBuildOptionsFfs(row, sArray, lhm, alSections, alSection);\r
813 ffsSelection = true;\r
814 jTextFieldEncapType.setText(sArray[1]);\r
815 ffsSelection = false;\r
816 for (int i = 0; i < alSection.size(); ++i) {\r
817 String[] sectionRow = { alSection.get(i) };\r
818 sectionTableModel.addRow(sectionRow);\r
819 }\r
820 for (int j = 0; j < alSections.size(); ++j) {\r
821 String[] sectionsRow = { alSections.get(j) };\r
822 sectionsTableModel.addRow(sectionsRow);\r
823 }\r
824 if (lhm.size() <= 0) {\r
825 return;\r
826 }\r
827 Set<String> keySet = lhm.keySet();\r
828 Iterator<String> is = keySet.iterator();\r
829 while (is.hasNext()) {\r
830 String key = is.next();\r
831 String[] attribRow = { key, lhm.get(key) };\r
832 ffsAttributesTableModel.addRow(attribRow);\r
833 }\r
834 selectedFfsTableRow = row;\r
835 }\r
836 }\r
837 });\r
838\r
839 jTableFfs.getModel().addTableModelListener(new TableModelListener() {\r
840 public void tableChanged(TableModelEvent arg0) {\r
841 // TODO Auto-generated method stub\r
842 int row = arg0.getFirstRow();\r
843 TableModel m = (TableModel) arg0.getSource();\r
844 if (arg0.getType() == TableModelEvent.UPDATE) {\r
845 //ToDo Data Validition check.\r
846 String id = m.getValueAt(row, 0) + "";\r
847\r
848 if (id.length() == 0) {\r
849 return;\r
850 }\r
851 docConsole.setSaved(false);\r
852 ffc.updateBuildOptionsFfsKey(row, id);\r
853 }\r
854 }\r
855 });\r
856 }\r
857 return jTableFfs;\r
858 }\r
859\r
860 /**\r
861 * This method initializes jScrollPane1 \r
862 * \r
863 * @return javax.swing.JScrollPane \r
864 */\r
865 private JScrollPane getJScrollPaneFfsSection() {\r
866 if (jScrollPaneFfsSection == null) {\r
867 jScrollPaneFfsSection = new JScrollPane();\r
868// jScrollPaneFfsSection.setPreferredSize(new java.awt.Dimension(500, 80));\r
869 jScrollPaneFfsSection.setViewportView(getJTableFfsSection());\r
870 }\r
871 return jScrollPaneFfsSection;\r
872 }\r
873\r
874 /**\r
875 * This method initializes jTable1 \r
876 * \r
877 * @return javax.swing.JTable \r
878 */\r
879 private JTable getJTableFfsSection() {\r
880 if (jTableFfsSection == null) {\r
881 sectionTableModel = new DefaultTableModel();\r
882 sectionTableModel.addColumn("SectionType");\r
883\r
884 jTableFfsSection = new JTable(sectionTableModel);\r
885 jTableFfsSection.setRowHeight(20);\r
886 JComboBox cb = new JComboBox();\r
887 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
888 cb.addItem("EFI_SECTION_VERSION");\r
889 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
890 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
891 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
892 cb.addItem("EFI_SECTION_PE32");\r
893 cb.addItem("EFI_SECTION_PIC");\r
894 cb.addItem("EFI_SECTION_TE");\r
895 cb.addItem("EFI_SECTION_RAW");\r
896 cb.addItem("EFI_SECTION_COMPRESSION");\r
897 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
898 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
899 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
900 jTableFfsSection.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
901\r
902 jTableFfsSection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
903\r
904 jTableFfsSection.getModel().addTableModelListener(new TableModelListener() {\r
905 public void tableChanged(TableModelEvent arg0) {\r
906 // TODO Auto-generated method stub\r
907 if (jTableFfs.getSelectedRow() < 0) {\r
908 return;\r
909 }\r
910 int row = arg0.getFirstRow();\r
911 TableModel m = (TableModel) arg0.getSource();\r
912 if (arg0.getType() == TableModelEvent.UPDATE) {\r
913 //ToDo Data Validition check.\r
914 String type = m.getValueAt(row, 0) + "";\r
915 docConsole.setSaved(false);\r
916 ffc.updateBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(), row, type);\r
917 }\r
918 }\r
919 });\r
920 }\r
921 return jTableFfsSection;\r
922 }\r
923\r
924 /**\r
925 * This method initializes jScrollPane3 \r
926 * \r
927 * @return javax.swing.JScrollPane \r
928 */\r
929 private JScrollPane getJScrollPaneFfsSubSection() {\r
930 if (jScrollPaneFfsSubSection == null) {\r
931 jScrollPaneFfsSubSection = new JScrollPane();\r
932// jScrollPaneFfsSubSection.setPreferredSize(new java.awt.Dimension(500, 90));\r
933 jScrollPaneFfsSubSection.setViewportView(getJTableFfsSubSection());\r
934 }\r
935 return jScrollPaneFfsSubSection;\r
936 }\r
937\r
938 /**\r
939 * This method initializes jTable3 \r
940 * \r
941 * @return javax.swing.JTable \r
942 */\r
943 private JTable getJTableFfsSubSection() {\r
944 if (jTableFfsSubSection == null) {\r
945 subsectionsTableModel = new DefaultTableModel();\r
946 subsectionsTableModel.addColumn("SectionType");\r
947 jTableFfsSubSection = new JTable(subsectionsTableModel);\r
948 jTableFfsSubSection.setRowHeight(20);\r
949 JComboBox cb = new JComboBox();\r
950 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
951 cb.addItem("EFI_SECTION_VERSION");\r
952 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
953 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
954 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
955 cb.addItem("EFI_SECTION_PE32");\r
956 cb.addItem("EFI_SECTION_PIC");\r
957 cb.addItem("EFI_SECTION_TE");\r
958 cb.addItem("EFI_SECTION_RAW");\r
959 cb.addItem("EFI_SECTION_COMPRESSION");\r
960 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
961 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
962 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
963 jTableFfsSubSection.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
964 jTableFfsSubSection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
965\r
966 jTableFfsSubSection.getModel().addTableModelListener(new TableModelListener() {\r
967 public void tableChanged(TableModelEvent arg0) {\r
968 // TODO Auto-generated method stub\r
969 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
970 return;\r
971 }\r
972 int row = arg0.getFirstRow();\r
973 TableModel m = (TableModel) arg0.getSource();\r
974 if (arg0.getType() == TableModelEvent.UPDATE) {\r
975 //ToDo Data Validition check.\r
976 String type = m.getValueAt(row, 0) + "";\r
977 docConsole.setSaved(false);\r
978 ffc.updateBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(),\r
979 jTableFfsSections.getSelectedRow(), row, type);\r
980 }\r
981 }\r
982 });\r
983 }\r
984 return jTableFfsSubSection;\r
985 }\r
986\r
987 /**\r
988 * This method initializes jTextField \r
989 * \r
990 * @return javax.swing.JTextField \r
991 */\r
992 private JTextField getJTextFieldEncapType() {\r
993 if (jTextFieldEncapType == null) {\r
994 jTextFieldEncapType = new JTextField();\r
995 jTextFieldEncapType.setPreferredSize(new java.awt.Dimension(200,20));\r
996 jTextFieldEncapType.getDocument().addDocumentListener(new DocumentListener() {\r
997\r
998 public void insertUpdate(DocumentEvent arg0) {\r
999 if (ffsSelection) {\r
1000// ffsSelection = false;\r
1001 return;\r
1002 }\r
1003 if (docConsole != null) {\r
1004 docConsole.setSaved(false);\r
1005 }\r
1006 }\r
1007\r
1008 public void removeUpdate(DocumentEvent arg0) {\r
1009 if (ffsSelection) {\r
1010// ffsSelection = false;\r
1011 return;\r
1012 }\r
1013 if (docConsole != null) {\r
1014 docConsole.setSaved(false);\r
1015 }\r
1016 }\r
1017\r
1018 public void changedUpdate(DocumentEvent arg0) {\r
1019 // TODO Auto-generated method stub\r
1020 \r
1021 }\r
1022 \r
1023 });\r
1024 jTextFieldEncapType.addFocusListener(new java.awt.event.FocusAdapter() {\r
1025 public void focusLost(java.awt.event.FocusEvent e) {\r
1026 if (selectedFfsTableRow < 0) {\r
1027 return;\r
1028 }\r
1029 ffc.updateBuildOptionsFfsSectionsType(selectedFfsTableRow, jTextFieldEncapType.getText());\r
1030 \r
1031 }\r
1032 });\r
1033 }\r
1034 return jTextFieldEncapType;\r
1035 }\r
1036\r
1037 /**\r
1038 * This method initializes jPanel4 \r
1039 * \r
1040 * @return javax.swing.JPanel \r
1041 */\r
1042 private JPanel getJPanelFfsAttribButtonGroup() {\r
1043 if (jPanelFfsAttribButtonGroup == null) {\r
1044 jPanelFfsAttribButtonGroup = new JPanel();\r
1045 jPanelFfsAttribButtonGroup.setPreferredSize(new java.awt.Dimension(100, 100));\r
1046 jPanelFfsAttribButtonGroup.add(getJButtonFfsAttribNew(), null);\r
1047 jPanelFfsAttribButtonGroup.add(getJButtonFfsAttribRemove(), null);\r
1048 }\r
1049 return jPanelFfsAttribButtonGroup;\r
1050 }\r
1051\r
1052 /**\r
1053 * This method initializes jButton \r
1054 * \r
1055 * @return javax.swing.JButton \r
1056 */\r
1057 private JButton getJButtonFfsSectionNew() {\r
1058 if (jButtonFfsSectionNew == null) {\r
1059 jButtonFfsSectionNew = new JButton();\r
1060 jButtonFfsSectionNew.setPreferredSize(new java.awt.Dimension(80, 20));\r
1061 jButtonFfsSectionNew.setText("New");\r
1062 jButtonFfsSectionNew.addActionListener(new java.awt.event.ActionListener() {\r
1063 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1064 if (jTableFfs.getSelectedRow() < 0) {\r
1065 return;\r
1066 }\r
1067 docConsole.setSaved(false);\r
1068 String[] row = { "EFI_SECTION_RAW" };\r
1069 sectionTableModel.addRow(row);\r
1070 ffc.genBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(), row[0]);\r
1071 }\r
1072 });\r
1073 }\r
1074 return jButtonFfsSectionNew;\r
1075 }\r
1076\r
1077 /**\r
1078 * This method initializes jButton1 \r
1079 * \r
1080 * @return javax.swing.JButton \r
1081 */\r
1082 private JButton getJButtonFfsSectionRemove() {\r
1083 if (jButtonFfsSectionRemove == null) {\r
1084 jButtonFfsSectionRemove = new JButton();\r
1085 jButtonFfsSectionRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
1086 jButtonFfsSectionRemove.setText("Remove");\r
1087\r
1088 jButtonFfsSectionRemove.addActionListener(new java.awt.event.ActionListener() {\r
1089 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1090 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSection.getSelectedRow() < 0) {\r
1091 return;\r
1092 }\r
1093 stopEditingInTables();\r
1094 docConsole.setSaved(false);\r
1095 sectionTableModel.removeRow(jTableFfsSection.getSelectedRow());\r
1096 ffc.removeBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(),\r
1097 jTableFfsSection.getSelectedRow());\r
1098 }\r
1099 });\r
1100 }\r
1101 return jButtonFfsSectionRemove;\r
1102 }\r
1103\r
1104 /**\r
1105 * This method initializes jButton2 \r
1106 * \r
1107 * @return javax.swing.JButton \r
1108 */\r
1109 private JButton getJButtonFfsSubSectionNew() {\r
1110 if (jButtonFfsSubSectionNew == null) {\r
1111 jButtonFfsSubSectionNew = new JButton();\r
1112 jButtonFfsSubSectionNew.setPreferredSize(new java.awt.Dimension(80, 20));\r
1113 jButtonFfsSubSectionNew.setText("New");\r
1114 jButtonFfsSubSectionNew.addActionListener(new java.awt.event.ActionListener() {\r
1115 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1116 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
1117 return;\r
1118 }\r
1119 docConsole.setSaved(false);\r
1120 String[] row = { "EFI_SECTION_RAW" };\r
1121 subsectionsTableModel.addRow(row);\r
1122 ffc.genBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(),\r
1123 jTableFfsSections.getSelectedRow(), row[0]);\r
1124\r
1125 }\r
1126 });\r
1127 }\r
1128 return jButtonFfsSubSectionNew;\r
1129 }\r
1130\r
1131 /**\r
1132 * This method initializes jButton3 \r
1133 * \r
1134 * @return javax.swing.JButton \r
1135 */\r
1136 private JButton getJButtonFfsSubSectionRemove() {\r
1137 if (jButtonFfsSubSectionRemove == null) {\r
1138 jButtonFfsSubSectionRemove = new JButton();\r
1139 jButtonFfsSubSectionRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
1140 jButtonFfsSubSectionRemove.setText("Remove");\r
1141 jButtonFfsSubSectionRemove.addActionListener(new java.awt.event.ActionListener() {\r
1142 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1143 int selectedFfsRow = jTableFfs.getSelectedRow();\r
1144 int selectedSectionsRow = jTableFfsSections.getSelectedRow();\r
1145 int selectedSubSectionRow = jTableFfsSubSection.getSelectedRow();\r
1146 if (selectedFfsRow < 0 || selectedSectionsRow < 0\r
1147 || selectedSubSectionRow < 0) {\r
1148 return;\r
1149 }\r
1150 stopEditingInTables();\r
1151 docConsole.setSaved(false);\r
1152 subsectionsTableModel.removeRow(selectedSubSectionRow);\r
1153 ffc.removeBuildOptionsFfsSectionsSectionsSection(selectedFfsRow,\r
1154 selectedSectionsRow,\r
1155 selectedSubSectionRow);\r
1156 if (subsectionsTableModel.getRowCount() == 0) {\r
1157 sectionsTableModel.removeRow(selectedSectionsRow);\r
1158 }\r
1159 }\r
1160 });\r
1161 }\r
1162 return jButtonFfsSubSectionRemove;\r
1163 }\r
1164\r
1165 /**\r
1166 * This method initializes jButton6 \r
1167 * \r
1168 * @return javax.swing.JButton \r
1169 */\r
1170 private JButton getJButtonFfsSectionsNew() {\r
1171 if (jButtonFfsSectionsNew == null) {\r
1172 jButtonFfsSectionsNew = new JButton();\r
1173 jButtonFfsSectionsNew.setPreferredSize(new java.awt.Dimension(80, 20));\r
1174 jButtonFfsSectionsNew.setText("New");\r
1175 jButtonFfsSectionsNew.addActionListener(new java.awt.event.ActionListener() {\r
1176 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1177 if (jTableFfs.getSelectedRow() < 0) {\r
1178 return;\r
1179 }\r
1180 docConsole.setSaved(false);\r
1181 String[] row = { "Compress" };\r
1182 sectionsTableModel.addRow(row);\r
1183 ffc.genBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(), "");\r
1184 JOptionPane.showMessageDialog(FpdBuildOptions.this, "Add Default Section Type EFI_SECTION_PE32 into the New Sections Entry.");\r
1185 jTableFfsSections.changeSelection(sectionsTableModel.getRowCount()-1, 0, false, false);\r
1186 }\r
1187 });\r
1188 }\r
1189 return jButtonFfsSectionsNew;\r
1190 }\r
1191\r
1192 /**\r
1193 * This method initializes jButton7 \r
1194 * \r
1195 * @return javax.swing.JButton \r
1196 */\r
1197 private JButton getJButtonFfsSectionsRemove() {\r
1198 if (jButtonFfsSectionsRemove == null) {\r
1199 jButtonFfsSectionsRemove = new JButton();\r
1200 jButtonFfsSectionsRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
1201 jButtonFfsSectionsRemove.setText("Remove");\r
1202 jButtonFfsSectionsRemove.addActionListener(new java.awt.event.ActionListener() {\r
1203 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1204 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
1205 return;\r
1206 }\r
1207 stopEditingInTables();\r
1208 docConsole.setSaved(false);\r
1209 sectionsTableModel.removeRow(jTableFfsSections.getSelectedRow());\r
1210 ffc.removeBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(),\r
1211 jTableFfsSections.getSelectedRow());\r
1212 subsectionsTableModel.setRowCount(0);\r
1213 }\r
1214 });\r
1215 }\r
1216 return jButtonFfsSectionsRemove;\r
1217 }\r
1218\r
1219 private JScrollPane getJScrollPaneFfsSections() {\r
1220 if (jScrollPaneFfsSections == null) {\r
1221 jScrollPaneFfsSections = new JScrollPane();\r
1222// jScrollPaneFfsSections.setPreferredSize(new java.awt.Dimension(500, 80));\r
1223 jScrollPaneFfsSections.setViewportView(getJTableFfsSections());\r
1224 }\r
1225 return jScrollPaneFfsSections;\r
1226 }\r
1227\r
1228 /**\r
1229 * This method initializes jTable6 \r
1230 * \r
1231 * @return javax.swing.JTable \r
1232 */\r
1233 private JTable getJTableFfsSections() {\r
1234 if (jTableFfsSections == null) {\r
1235 sectionsTableModel = new DefaultTableModel();\r
1236 sectionsTableModel.addColumn("EncapsulationType");\r
1237 jTableFfsSections = new JTable(sectionsTableModel);\r
1238 jTableFfsSections.setRowHeight(20);\r
1239 jTableFfsSections.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1240 jTableFfsSections.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
1241 public void valueChanged(ListSelectionEvent e) {\r
1242 if (e.getValueIsAdjusting()) {\r
1243 return;\r
1244 }\r
1245 ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
1246 if (lsm.isSelectionEmpty()) {\r
1247 return;\r
1248 } else {\r
1249 int sectionsRow = lsm.getMinSelectionIndex();\r
1250 if (jTableFfs.getSelectedRow() < 0) {\r
1251 return;\r
1252 }\r
1253 subsectionsTableModel.setRowCount(0);\r
1254 ArrayList<String> al = new ArrayList<String>();\r
1255 ffc.getBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(), sectionsRow, al);\r
1256 for (int i = 0; i < al.size(); ++i) {\r
1257 String[] subsectionRow = { al.get(i) };\r
1258 subsectionsTableModel.addRow(subsectionRow);\r
1259 }\r
1260 }\r
1261 }\r
1262 });\r
1263\r
1264 jTableFfsSections.getModel().addTableModelListener(new TableModelListener() {\r
1265 public void tableChanged(TableModelEvent arg0) {\r
1266 // TODO Auto-generated method stub\r
1267 int row = arg0.getFirstRow();\r
1268 TableModel m = (TableModel) arg0.getSource();\r
1269 if (arg0.getType() == TableModelEvent.UPDATE) {\r
1270 //ToDo Data Validition check.\r
1271 String encapType = m.getValueAt(row, 0) + "";\r
1272 docConsole.setSaved(false);\r
1273 ffc.updateBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(), row, encapType);\r
1274 }\r
1275 }\r
1276 });\r
1277 }\r
1278 return jTableFfsSections;\r
1279 }\r
1280\r
1281 /**\r
1282 * This method initializes jSplitPaneFfsC \r
1283 * \r
1284 * @return javax.swing.JSplitPane \r
1285 */\r
1286 private JSplitPane getJSplitPaneFfsC() {\r
1287 if (jSplitPaneFfsC == null) {\r
1288 jSplitPaneFfsC = new JSplitPane();\r
1289 jSplitPaneFfsC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
1290 jSplitPaneFfsC.setDividerLocation(130);\r
1291 jSplitPaneFfsC.setTopComponent(getJPanelFfsCTop());\r
1292 jSplitPaneFfsC.setBottomComponent(getJSplitPaneFfsCBottom());\r
1293 jSplitPaneFfsC.setDividerSize(5);\r
1294 }\r
1295 return jSplitPaneFfsC;\r
1296 }\r
1297\r
1298 /**\r
1299 * This method initializes jPanelFfsCTop \r
1300 * \r
1301 * @return javax.swing.JPanel \r
1302 */\r
1303 private JPanel getJPanelFfsCTop() {\r
1304 if (jPanelFfsCTop == null) {\r
1305 jPanelFfsCTop = new JPanel();\r
1306 jPanelFfsCTop.setLayout(new BorderLayout());\r
1307 jPanelFfsCTop.add(getJPanelSectionN(), java.awt.BorderLayout.NORTH);\r
1308 jPanelFfsCTop.add(getJScrollPaneFfsSection(), java.awt.BorderLayout.CENTER);\r
1309 }\r
1310 return jPanelFfsCTop;\r
1311 }\r
1312\r
1313 /**\r
1314 * This method initializes jSplitPaneFfsCBottom \r
1315 * \r
1316 * @return javax.swing.JSplitPane \r
1317 */\r
1318 private JSplitPane getJSplitPaneFfsCBottom() {\r
1319 if (jSplitPaneFfsCBottom == null) {\r
1320 jSplitPaneFfsCBottom = new JSplitPane();\r
1321 jSplitPaneFfsCBottom.setDividerSize(5);\r
1322 jSplitPaneFfsCBottom.setDividerLocation(130);\r
1323 jSplitPaneFfsCBottom.setTopComponent(getJPanelFfsCBottomTop());\r
1324 jSplitPaneFfsCBottom.setBottomComponent(getJPanelFfsCBottomBottom());\r
1325 jSplitPaneFfsCBottom.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
1326 }\r
1327 return jSplitPaneFfsCBottom;\r
1328 }\r
1329\r
1330 /**\r
1331 * This method initializes jPanelFfsCBottomTop \r
1332 * \r
1333 * @return javax.swing.JPanel \r
1334 */\r
1335 private JPanel getJPanelFfsCBottomTop() {\r
1336 if (jPanelFfsCBottomTop == null) {\r
1337 jPanelFfsCBottomTop = new JPanel();\r
1338 jPanelFfsCBottomTop.setLayout(new BorderLayout());\r
1339 jPanelFfsCBottomTop.add(getJPanelSectionsN(), java.awt.BorderLayout.NORTH);\r
1340 jPanelFfsCBottomTop.add(getJScrollPaneFfsSections(), java.awt.BorderLayout.CENTER);\r
1341 }\r
1342 return jPanelFfsCBottomTop;\r
1343 }\r
1344\r
1345 /**\r
1346 * This method initializes jPanelFfsCBottomBottom \r
1347 * \r
1348 * @return javax.swing.JPanel \r
1349 */\r
1350 private JPanel getJPanelFfsCBottomBottom() {\r
1351 if (jPanelFfsCBottomBottom == null) {\r
1352 jPanelFfsCBottomBottom = new JPanel();\r
1353 jPanelFfsCBottomBottom.setLayout(new BorderLayout());\r
1354 jPanelFfsCBottomBottom.add(getJPanelSubSectionN(), java.awt.BorderLayout.NORTH);\r
1355 jPanelFfsCBottomBottom.add(getJScrollPaneFfsSubSection(), java.awt.BorderLayout.CENTER);\r
1356 }\r
1357 return jPanelFfsCBottomBottom;\r
1358 }\r
1359\r
1360 /**\r
1361 * This method initializes jPanelSectionN \r
1362 * \r
1363 * @return javax.swing.JPanel \r
1364 */\r
1365 private JPanel getJPanelSectionN() {\r
1366 if (jPanelSectionN == null) {\r
1367 jPanelSectionN = new JPanel();\r
1368 jLabelFfsSection = new JLabel();\r
1369 jLabelFfsSection.setText("Section");\r
1370 jPanelSectionN.add(jLabelFfsSection, null);\r
1371 jPanelSectionN.add(getJButtonFfsSectionNew(), null);\r
1372 jPanelSectionN.add(getJButtonFfsSectionRemove(), null);\r
1373 }\r
1374 return jPanelSectionN;\r
1375 }\r
1376\r
1377 /**\r
1378 * This method initializes jPanelSectionsN \r
1379 * \r
1380 * @return javax.swing.JPanel \r
1381 */\r
1382 private JPanel getJPanelSectionsN() {\r
1383 if (jPanelSectionsN == null) {\r
1384 jPanelSectionsN = new JPanel();\r
1385 jLabelFfsSections = new JLabel();\r
1386 jLabelFfsSections.setText("Sections");\r
1387 jPanelSectionsN.add(jLabelFfsSections, null);\r
1388 jPanelSectionsN.add(getJButtonFfsSectionsNew(), null);\r
1389 jPanelSectionsN.add(getJButtonFfsSectionsRemove(), null);\r
1390 }\r
1391 return jPanelSectionsN;\r
1392 }\r
1393\r
1394 /**\r
1395 * This method initializes jPanelSubSectionN \r
1396 * \r
1397 * @return javax.swing.JPanel \r
1398 */\r
1399 private JPanel getJPanelSubSectionN() {\r
1400 if (jPanelSubSectionN == null) {\r
1401 jPanelSubSectionN = new JPanel();\r
1402 jLabelFfsSubSections = new JLabel();\r
1403 jLabelFfsSubSections.setText("Sub-Sections");\r
1404 jPanelSubSectionN.add(jLabelFfsSubSections, null);\r
1405 jPanelSubSectionN.add(getJButtonFfsSubSectionNew(), null);\r
1406 jPanelSubSectionN.add(getJButtonFfsSubSectionRemove(), null);\r
1407 }\r
1408 return jPanelSubSectionN;\r
1409 }\r
1410\r
1411 /**\r
1412 * The following section contains all Build Options content\r
1413 */\r
1414\r
1415 /**\r
1416 * This method initializes jPanelOptionsTab\r
1417 * \r
1418 * This is the main Options screen\r
1419 * \r
1420 * @return javax.swing.JPanel jPanelOptionsTab\r
1421 */\r
1422 private JPanel getJPanelOptionsTab() {\r
1423 if (jPanelOptionsTab == null) {\r
1424 // This container holds the Options Tab content\r
1425\r
1426 // FlowLayout flowLayout9 = new FlowLayout();\r
1427 // flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);\r
1428\r
1429 GridLayout gridLayout = new GridLayout();\r
1430 gridLayout.setRows(2);\r
1431 jPanelOptionsTab = new JPanel();\r
1432 jPanelOptionsTab.setLayout(gridLayout);\r
1433 jPanelOptionsTab.setBounds(new java.awt.Rectangle(0, 0, dialogWidth * 2, dialogHeight * 3));\r
1434 jPanelOptionsTab.setPreferredSize(new java.awt.Dimension(dialogWidth + 10, (dialogHeight * 3) + 10));\r
1435 jPanelOptionsTab.setAutoscrolls(true);\r
1436 jPanelOptionsTab.setLocation(0, 0);\r
1437 jPanelOptionsTab.add(getJPanelOptionsContainer(), null);\r
1438// jPanelOptionsTab.add(getJScrollPaneOptions(), null);\r
1439 jPanelOptionsTab.add(getJPanelTableOptionsContainer(), null);\r
1440 }\r
1441 return jPanelOptionsTab;\r
1442 }\r
1443\r
1444 /**\r
1445 * This method initializes jPanelOptionsContainer \r
1446 * \r
1447 * @return javax.swing.JPanel \r
1448 */\r
1449 private JPanel getJPanelOptionsContainer() {\r
1450 if (jPanelOptionsContainer == null) {\r
1451 jLabelTagName = new JLabel();\r
1452 jLabelTagName.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
1453 jLabelTagName.setLocation(new java.awt.Point(labelColumn, rowOne));\r
1454 jLabelTagName.setText("Tag Name");\r
1455 jLabelBuildTargets = new JLabel();\r
1456 jLabelBuildTargets.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
1457 jLabelBuildTargets.setLocation(new java.awt.Point(labelColumn, rowTwo));\r
1458 jLabelBuildTargets.setText("Build Targets");\r
1459 jLabelToolCmd = new JLabel();\r
1460 jLabelToolCmd.setBounds(new java.awt.Rectangle(labelColumn, rowThree, labelWidth, oneRowHeight));\r
1461 jLabelToolCmd.setLocation(new java.awt.Point(labelColumn, rowThree));\r
1462 jLabelToolCmd.setText("Tool Command");\r
1463 jLabelSupArch = new JLabel();\r
1464 jLabelSupArch.setBounds(new java.awt.Rectangle(labelColumn, rowFour, labelWidth, oneRowHeight));\r
1465 jLabelSupArch.setLocation(new java.awt.Point(labelColumn, rowFour));\r
1466 jLabelSupArch.setText("Supported Architectures");\r
1467 jLabelToolChainFamily = new JLabel();\r
1468 jLabelToolChainFamily.setBounds(new java.awt.Rectangle(labelColumn, rowFive, labelWidth, oneRowHeight));\r
1469 jLabelToolChainFamily.setLocation(new java.awt.Point(labelColumn, rowFive));\r
1470 jLabelToolChainFamily.setText("Tool Chain Family");\r
1471\r
1472 jLabelOptionContents = new JLabel();\r
1473 jLabelOptionContents.setBounds(new java.awt.Rectangle(labelColumn, rowSix, labelWidth, oneRowHeight));\r
1474 jLabelOptionContents.setLocation(new java.awt.Point(labelColumn, rowSix));\r
1475 jLabelOptionContents.setText("Argument Strings");\r
1476\r
1477 jPanelOptionsContainer = new JPanel();\r
1478\r
1479 jPanelOptionsContainer.setLayout(null);\r
1480 \r
1481 jPanelOptionsContainer.setPreferredSize(new java.awt.Dimension(dialogWidth, dialogHeight));\r
1482 /*\r
1483 jPanelOptionsContainer\r
1484 .setBorder(javax.swing.BorderFactory\r
1485 .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
1486*/\r
1487 jPanelOptionsContainer.add(jLabelTagName, null);\r
1488 jPanelOptionsContainer.add(getJTextFieldTagName(), null);\r
1489\r
1490 jPanelOptionsContainer.add(jLabelBuildTargets, null);\r
1491 jPanelOptionsContainer.add(getJTextFieldBuildTargets(), null);\r
1492\r
1493 jPanelOptionsContainer.add(jLabelToolChainFamily, null);\r
1494 jPanelOptionsContainer.add(getJTextFieldToolChainFamily(), null);\r
1495\r
1496 jPanelOptionsContainer.add(jLabelToolCmd, null);\r
1497 jPanelOptionsContainer.add(getJTextFieldToolCmd(), null);\r
1498\r
1499 jPanelOptionsContainer.add(jLabelSupArch, null);\r
1500 jPanelOptionsContainer.add(getArchitectureSelections(), null);\r
1501\r
1502 jPanelOptionsContainer.add(jLabelOptionContents, null);\r
1503 jPanelOptionsContainer.add(getJTextFieldOptionContents(), null);\r
1504\r
1505 jPanelOptionsContainer.add(getJButtonOptionsAdd(), null);\r
1506 jPanelOptionsContainer.add(getJButtonOptionsDel(), null);\r
1507 }\r
1508 return jPanelOptionsContainer;\r
1509 }\r
1510\r
1511 /**\r
1512 * This method initializes jTextFieldOptionTagName Row 1\r
1513 * \r
1514 * @return javax.swing.JTextField \r
1515 */\r
1516 private JTextField getJTextFieldTagName() {\r
1517 if (jTextFieldTagName == null) {\r
1518 jTextFieldTagName = new JTextField();\r
1519 jTextFieldTagName.setBounds(new java.awt.Rectangle(fieldColumn, rowOne, fieldWidth, oneRowHeight));\r
1520 jTextFieldTagName.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1521 jTextFieldTagName.setLocation(new java.awt.Point(fieldColumn, rowOne));\r
1522 }\r
1523 return jTextFieldTagName;\r
1524 }\r
1525\r
1526 /**\r
1527 * This method initializes jTextFieldBuildTargets Row 2 \r
1528 * \r
1529 * @return javax.swing.JTextField jTextFieldBuildTargets\r
1530 */\r
1531 private JTextField getJTextFieldBuildTargets() {\r
1532 if (jTextFieldBuildTargets == null) {\r
1533 jTextFieldBuildTargets = new JTextField();\r
1534 jTextFieldBuildTargets.setBounds(new java.awt.Rectangle(fieldColumn, rowTwo, fieldWidth, oneRowHeight));\r
1535 jTextFieldBuildTargets.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1536 jTextFieldBuildTargets.setLocation(new java.awt.Point(fieldColumn, rowTwo));\r
1537 }\r
1538 return jTextFieldBuildTargets;\r
1539 }\r
1540\r
1541 /**\r
1542 * This method initializes jTextFieldToolCmd Row 3 \r
1543 * \r
1544 * This should be a dropdown box of command codes from tools_def.txt\r
1545 * \r
1546 * @return javax.swing.JTextField jTextFieldToolCmd\r
1547 */\r
1548 private JTextField getJTextFieldToolCmd() {\r
1549 if (jTextFieldToolCmd == null) {\r
1550 jTextFieldToolCmd = new JTextField();\r
1551 jTextFieldToolCmd.setBounds(new java.awt.Rectangle(fieldColumn, rowThree, fieldWidth, oneRowHeight));\r
1552 jTextFieldToolCmd.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1553 jTextFieldToolCmd.setLocation(new java.awt.Point(fieldColumn, rowThree));\r
1554 }\r
1555 return jTextFieldToolCmd;\r
1556 }\r
1557\r
1558 /**\r
1559 * This method initializes jArchitectureSelections Row 4\r
1560 * \r
1561 * @return jArchitectureSelections\r
1562 */\r
1563 private JPanel getArchitectureSelections() {\r
1564 if (jArchitectureSelections == null) {\r
1565 jArchitectureSelections = new JPanel();\r
1566 jArchitectureSelections.setLayout(null);\r
1567 jArchitectureSelections.add(getJCheckBoxIA32(), null);\r
1568 jArchitectureSelections.add(getJCheckBoxX64(), null);\r
1569 jArchitectureSelections.add(getJCheckBoxIpf(), null);\r
1570 jArchitectureSelections.add(getJCheckBoxEBC(), null);\r
1571 jArchitectureSelections.add(getJCheckBoxARM(), null);\r
1572 jArchitectureSelections.add(getJCheckBoxPPC(), null);\r
1573 jArchitectureSelections.setBounds(new java.awt.Rectangle(fieldColumn, rowFour, fieldWidth, oneRowHeight));\r
1574 jArchitectureSelections.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1575 jArchitectureSelections.setLocation(new java.awt.Point(fieldColumn, rowFour));\r
1576 }\r
1577 return jArchitectureSelections;\r
1578 }\r
1579\r
1580 /**\r
1581 * This method initializes jCheckBoxIA32 \r
1582 * \r
1583 * @return javax.swing.JCheckBox jCheckBoxIA32\r
1584 */\r
1585 private JCheckBox getJCheckBoxIA32() {\r
1586 if (jCheckBoxIA32 == null) {\r
1587 jCheckBoxIA32 = new JCheckBox();\r
1588 jCheckBoxIA32.setBounds(new java.awt.Rectangle(0, 0, 55, 20));\r
1589 jCheckBoxIA32.setText("IA32");\r
1590 }\r
1591 return jCheckBoxIA32;\r
1592 }\r
1593\r
1594 /**\r
1595 * This method initializes jCheckBoxX64 \r
1596 * \r
1597 * @return javax.swing.JCheckBox jCheckBoxX64\r
1598 */\r
1599 private JCheckBox getJCheckBoxX64() {\r
1600 if (jCheckBoxX64 == null) {\r
1601 jCheckBoxX64 = new JCheckBox();\r
1602 jCheckBoxX64.setText("X64");\r
1603 jCheckBoxX64.setBounds(new java.awt.Rectangle(55, 0, 53, 20));\r
1604 }\r
1605 return jCheckBoxX64;\r
1606 }\r
1607\r
1608 /**\r
1609 * This method initializes jCheckBoxIpf\r
1610 * \r
1611 * @return javax.swing.JCheckBox jCheckBoxIpf\r
1612 */\r
1613 private JCheckBox getJCheckBoxIpf() {\r
1614 if (jCheckBoxIpf == null) {\r
1615 jCheckBoxIpf = new JCheckBox();\r
1616 jCheckBoxIpf.setBounds(new java.awt.Rectangle(108, 0, 52, 20));\r
1617 jCheckBoxIpf.setText("IPF");\r
1618 }\r
1619 return jCheckBoxIpf;\r
1620 }\r
1621\r
1622\r
1623 /**\r
1624 * This method initializes jCheckBoxEBC\r
1625 * \r
1626 * @return javax.swing.JCheckBox jCheckBoxEBC\r
1627 */\r
1628 private JCheckBox getJCheckBoxEBC() {\r
1629 if (jCheckBoxEBC == null) {\r
1630 jCheckBoxEBC = new JCheckBox();\r
1631 jCheckBoxEBC.setBounds(new java.awt.Rectangle(160, 0, 53, 20));\r
1632 jCheckBoxEBC.setText("EBC");\r
1633 }\r
1634 return jCheckBoxEBC;\r
1635 }\r
1636\r
1637 /**\r
1638 * This method initializes jCheckBoxARM\r
1639 * \r
1640 * @return javax.swing.JCheckBox jCheckBoxARM\r
1641 */\r
1642 private JCheckBox getJCheckBoxARM() {\r
1643 if (jCheckBoxARM == null) {\r
1644 jCheckBoxARM = new JCheckBox();\r
1645 jCheckBoxARM.setBounds(new java.awt.Rectangle(213, 0, 54, 20));\r
1646 jCheckBoxARM.setText("ARM");\r
1647 }\r
1648 return jCheckBoxARM;\r
1649 }\r
1650\r
1651 /**\r
1652 * This method initializes jCheckBoxPPC \r
1653 * \r
1654 * @return javax.swing.JCheckBox jCheckBoxPPC\r
1655 */\r
1656 private JCheckBox getJCheckBoxPPC() {\r
1657 if (jCheckBoxPPC == null) {\r
1658 jCheckBoxPPC = new JCheckBox();\r
1659 jCheckBoxPPC.setBounds(new java.awt.Rectangle(267, 0, 53, 20));\r
1660 jCheckBoxPPC.setText("PPC");\r
1661 }\r
1662 return jCheckBoxPPC;\r
1663 }\r
1664\r
1665 /**\r
1666 * This method initializes jTextFieldToolChainFamily Row 5 \r
1667 * \r
1668 * This should be a drop down for MSFT, INTEL, GCC or USER_DEFINED\r
1669 * \r
1670 * @return javax.swing.JTextField \r
1671 */\r
1672 private JTextField getJTextFieldToolChainFamily() {\r
1673 if (jTextFieldToolChainFamily == null) {\r
1674 jTextFieldToolChainFamily = new JTextField();\r
1675 jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(fieldColumn, rowFive, fieldWidth, oneRowHeight));\r
1676 jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1677 jTextFieldToolChainFamily.setLocation(new java.awt.Point(fieldColumn, rowFive));\r
1678 }\r
1679 return jTextFieldToolChainFamily;\r
1680 }\r
1681\r
1682 /**\r
1683 * This method initializes jTextFieldOptionContents Row 6\r
1684 * \r
1685 * This is where we should put the checkbox & entry data for the command arguments\r
1686 * \r
1687 * @return javax.swing.JTextField \r
1688 */\r
1689 private JTextField getJTextFieldOptionContents() {\r
1690 if (jTextFieldOptionContents == null) {\r
1691 jTextFieldOptionContents = new JTextField();\r
1692 jTextFieldOptionContents.setPreferredSize(new java.awt.Dimension(fieldWidth, oneRowHeight));\r
1693 jTextFieldOptionContents.setBounds(fieldColumn, rowSix, fieldWidth, oneRowHeight);\r
1694 jTextFieldOptionContents.setLocation(new java.awt.Point(fieldColumn, rowSix));\r
1695 }\r
1696 return jTextFieldOptionContents;\r
1697 }\r
1698\r
1699 /**\r
1700 * This method initializes jButtonOptionsAdd\r
1701 * \r
1702 * Add entry from the top screen to the table\r
1703 * \r
1704 * @return javax.swing.JButton jButtonOptionsAdd\r
1705 */\r
1706 private JButton getJButtonOptionsAdd() {\r
1707 if (jButtonOptionsAdd == null) {\r
1708 jButtonOptionsAdd = new JButton();\r
1709 jButtonOptionsAdd.setText("Add");\r
1710\r
1711 jButtonOptionsAdd.setPreferredSize(new java.awt.Dimension(buttonWidth, oneRowHeight));\r
1712 jButtonOptionsAdd.setBounds(new java.awt.Rectangle(firstButtonLoc, buttonRow, buttonWidth, oneRowHeight)); \r
1713 jButtonOptionsAdd.setLocation(new java.awt.Point(firstButtonLoc, buttonRow));\r
1714 jButtonOptionsAdd.addActionListener(new AbstractAction() {\r
1715 /**\r
1716 * \r
1717 */\r
1718 private static final long serialVersionUID = 1L;\r
1719\r
1720 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1721 boolean[] boolArray = { jCheckBoxIA32.isSelected(), jCheckBoxIpf.isSelected(),\r
1722 jCheckBoxX64.isSelected(), jCheckBoxEBC.isSelected(),\r
1723 jCheckBoxARM.isSelected(), jCheckBoxPPC.isSelected() };\r
1724 String s = boolToList(boolArray);\r
1725 Object[] o = { jTextFieldBuildTargets.getText(), jTextFieldToolChainFamily.getText(), s,\r
1726 jTextFieldToolCmd.getText(), jTextFieldTagName.getText(),\r
1727 jTextFieldOptionContents.getText() };\r
1728 optionsTableModel.addRow(o);\r
1729 docConsole.setSaved(false);\r
1730 ffc.genBuildOptionsOpt(stringToVector(jTextFieldBuildTargets.getText().trim()),\r
1731 jTextFieldToolChainFamily.getText(), jTextFieldTagName.getText(),\r
1732 jTextFieldToolCmd.getText(), stringToVector(s.trim()),\r
1733 jTextFieldOptionContents.getText());\r
1734 }\r
1735 });\r
1736 }\r
1737 return jButtonOptionsAdd;\r
1738 }\r
1739\r
1740 /**\r
1741 * This method initializes jButtonOptionsDel \r
1742 * \r
1743 * Remove a line from the table below\r
1744 * \r
1745 * @return javax.swing.JButton jButtonOptionsDel\r
1746 */\r
1747 private JButton getJButtonOptionsDel() {\r
1748 if (jButtonOptionsDel == null) {\r
1749 jButtonOptionsDel = new JButton();\r
1750 jButtonOptionsDel.setText("Delete");\r
1751 jButtonOptionsDel.setPreferredSize(new java.awt.Dimension(buttonWidth, oneRowHeight));\r
1752 jButtonOptionsDel.setBounds(new java.awt.Rectangle(next2LastButtonLoc, buttonRow, buttonWidth, oneRowHeight));\r
1753 jButtonOptionsDel.setLocation(new java.awt.Point(next2LastButtonLoc, buttonRow));\r
1754 jButtonOptionsDel.addActionListener(new AbstractAction() {\r
1755 /**\r
1756 * \r
1757 */\r
1758 private static final long serialVersionUID = 1L;\r
1759\r
1760 public void actionPerformed(java.awt.event.ActionEvent e) {\r
1761 if (selectedRow >= 0) {\r
1762 optionsTableModel.removeRow(selectedRow);\r
1763 docConsole.setSaved(false);\r
1764 ffc.removeBuildOptionsOpt(selectedRow);\r
1765 }\r
1766 }\r
1767 });\r
1768 }\r
1769 return jButtonOptionsDel;\r
1770 }\r
1771\r
1772 public void componentResized(ComponentEvent arg0) {\r
1773 int intPreferredWidth = 500;\r
1774 \r
1775 Tools.resizeComponentWidth(this.jScrollPaneOptions, this.getWidth(), intPreferredWidth);\r
1776 \r
1777 }\r
1778 /**\r
1779 * This method initializes jScrollPaneOptions \r
1780 * Contains the Table and is located below the data entry section\r
1781 * @return javax.swing.JScrollPane jScrollPaneOptoins\r
1782 */\r
1783 private JScrollPane getJScrollPaneOptions() {\r
1784 if (jScrollPaneOptions == null) {\r
1785 jScrollPaneOptions = new JScrollPane();\r
1786 jScrollPaneOptions.setViewportView(getJTableOptions());\r
1787 }\r
1788 return jScrollPaneOptions;\r
1789 }\r
1790\r
1791 /**\r
1792 * This method initializes jTableOptions\r
1793 * \r
1794 * @return javax.swing.JTable jTableOptions\r
1795 */\r
1796 private JTable getJTableOptions() {\r
1797 if (jTableOptions == null) {\r
1798 \r
1799 optionsTableModel = new DefaultTableModel();\r
1800 jTableOptions = new JTable(optionsTableModel);\r
1801 jTableOptions.setRowHeight(20);\r
1802 optionsTableModel.addColumn("Build Targets");\r
1803 optionsTableModel.addColumn("Tool Chain Family");\r
1804 optionsTableModel.addColumn("Supported Architectures");\r
1805 optionsTableModel.addColumn("Tool Command Code");\r
1806 optionsTableModel.addColumn("TagName");\r
1807 optionsTableModel.addColumn("Arguments");\r
1808 \r
1809 jTableOptions.getColumnModel().getColumn(0).setMinWidth(buildTargetWidth);\r
1810 jTableOptions.getColumnModel().getColumn(1).setMinWidth(toolChainFamilyWidth);\r
1811 jTableOptions.getColumnModel().getColumn(2).setMinWidth(supportArchWidth);\r
1812 jTableOptions.getColumnModel().getColumn(3).setMinWidth(toolCmdCodeWidth);\r
1813 jTableOptions.getColumnModel().getColumn(4).setMinWidth(tagNameWidth);\r
1814 jTableOptions.getColumnModel().getColumn(5).setMinWidth(argWidth);\r
1815\r
1816// javax.swing.table.TableColumn toolFamilyCol = jTableOptions.getColumnModel().getColumn(1);\r
1817// JComboBox cb = new JComboBox();\r
1818// cb.addItem("MSFT");\r
1819// cb.addItem("GCC");\r
1820// cb.addItem("CYGWIN");\r
1821// cb.addItem("INTEL");\r
1822// cb.addItem("USER_DEFINED");\r
1823// toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
1824 Vector<String> vArch = new Vector<String>();\r
1825 vArch.add("IA32");\r
1826 vArch.add("X64");\r
1827 vArch.add("IPF");\r
1828 vArch.add("EBC");\r
1829 vArch.add("ARM");\r
1830 vArch.add("PPC");\r
1831 jTableOptions.getColumnModel().getColumn(2).setCellEditor(new ListEditor(vArch, FrameworkWizardUI.getInstance()));\r
1832 \r
1833 jTableOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor(FrameworkWizardUI.getInstance()));\r
1834 \r
1835 jTableOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1836 jTableOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
1837 jTableOptions.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
1838 public void valueChanged(ListSelectionEvent e) {\r
1839 selectedRow = -1;\r
1840 if (e.getValueIsAdjusting()) {\r
1841 return;\r
1842 }\r
1843 ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
1844 if (lsm.isSelectionEmpty()) {\r
1845 return;\r
1846 } else {\r
1847 selectedRow = lsm.getMinSelectionIndex();\r
1848 }\r
1849 }\r
1850 });\r
1851\r
1852 jTableOptions.getModel().addTableModelListener(new TableModelListener() {\r
1853 public void tableChanged(TableModelEvent arg0) {\r
1854 // TODO Auto-generated method stub\r
1855 int row = arg0.getFirstRow();\r
1856 TableModel m = (TableModel) arg0.getSource();\r
1857 if (arg0.getType() == TableModelEvent.UPDATE) {\r
1858 //ToDo Data Validition check.\r
1859 String targets = m.getValueAt(row, 0) + "";\r
1860 Vector<Object> targetName = new Vector<Object>();\r
1861 String[] sArray = targets.split("( )+");\r
1862 for (int i = 0; i < sArray.length; ++i) {\r
1863 targetName.add(sArray[i]);\r
1864 }\r
1865 String toolChain = m.getValueAt(row, 1) + "";\r
1866 String archs = m.getValueAt(row, 2) + "";\r
1867 Vector<Object> supArch = null;\r
1868 if (archs.length() > 0) {\r
1869 supArch = new Vector<Object>();\r
1870 String[] sArray1 = archs.split("( )+");\r
1871 for (int i = 0; i < sArray1.length; ++i) {\r
1872 supArch.add(sArray1[i]);\r
1873 }\r
1874 }\r
1875\r
1876 String toolCmd = m.getValueAt(row, 3) + "";\r
1877 String tagName = m.getValueAt(row, 4) + "";\r
1878 String contents = m.getValueAt(row, 5) + "";\r
1879 docConsole.setSaved(false);\r
1880 ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);\r
1881 }\r
1882 }\r
1883 });\r
1884 }\r
1885 return jTableOptions;\r
1886 }\r
1887\r
1888 private Vector<Object> stringToVector(String s) {\r
1889 String[] sArray = s.split(" ");\r
1890 Vector<Object> v = null;\r
1891 if (s.length() > 0 && !s.trim().equalsIgnoreCase("")) {\r
1892 v = new Vector<Object>();\r
1893 for (int i = 0; i < sArray.length; ++i) {\r
1894 v.add(sArray[i]);\r
1895 }\r
1896 }\r
1897 return v;\r
1898 }\r
1899\r
1900 private String boolToList(boolean[] bool) {\r
1901 String s = " ";\r
1902 if (bool[0]) {\r
1903 s += "IA32 ";\r
1904 }\r
1905 if (bool[1]) {\r
1906 s += "IPF ";\r
1907 }\r
1908 if (bool[2]) {\r
1909 s += "X64 ";\r
1910 }\r
1911 if (bool[3]) {\r
1912 s += "EBC ";\r
1913 }\r
1914 if (bool[4]) {\r
1915 s += "ARM ";\r
1916 }\r
1917 if (bool[5]) {\r
1918 s += "PPC ";\r
1919 }\r
1920 \r
1921 return s.trim();\r
1922 }\r
1923\r
1924 private void initOptionTable() {\r
1925 if (ffc.getBuildOptionsOptCount() == 0) {\r
1926 //ToDo get default options from *.txt file\r
1927 return;\r
1928 }\r
1929 String[][] saa = new String[ffc.getBuildOptionsOptCount()][6];\r
1930 ffc.getBuildOptionsOpts(saa);\r
1931 for (int i = 0; i < saa.length; ++i) {\r
1932 optionsTableModel.addRow(saa[i]);\r
1933 }\r
1934 }\r
1935\r
1936\r
1937 /**\r
1938 * Everything below should pertain to the ANT Task Tab\r
1939 */\r
1940\r
1941 /**\r
1942 * This method initializes jButton12 \r
1943 * \r
1944 * @return javax.swing.JButton \r
1945 */\r
1946 private JButton getJButtonAntTaskFileBrowse() {\r
1947 if (jButtonAntTaskFileBrowse == null) {\r
1948 jButtonAntTaskFileBrowse = new JButton();\r
1949 jButtonAntTaskFileBrowse.setPreferredSize(new Dimension(buttonWidth, oneRowHeight));\r
1950 jButtonAntTaskFileBrowse.setText("Browse");\r
1951 jButtonAntTaskFileBrowse.addActionListener(new AbstractAction() {\r
1952 private static final long serialVersionUID = 1L;\r
1953\r
1954 public void actionPerformed(ActionEvent arg0) {\r
1955 //\r
1956 // Select files from current workspace\r
1957 //\r
1958 String dirPrefix = Workspace.getCurrentWorkspace();\r
1959 JFileChooser chooser = new JFileChooser(dirPrefix);\r
1960 File theFile = null;\r
1961 String headerDest = null;\r
1962\r
1963 chooser.setMultiSelectionEnabled(false);\r
1964 chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);\r
1965 int retval = chooser.showOpenDialog(FpdBuildOptions.this);\r
1966 if (retval == JFileChooser.APPROVE_OPTION) {\r
1967\r
1968 theFile = chooser.getSelectedFile();\r
1969 String file = theFile.getPath();\r
1970 if (!file.startsWith(dirPrefix)) {\r
1971 JOptionPane.showMessageDialog(FpdBuildOptions.this, "You can only select files in current package!");\r
1972 return;\r
1973 }\r
1974 } else {\r
1975 return;\r
1976 }\r
1977\r
1978 headerDest = theFile.getPath();\r
1979 jTextFieldAntTaskFile.setText(headerDest.substring(dirPrefix.length()).replace('\\', '/'));\r
1980\r
1981 }\r
1982\r
1983 });\r
1984 }\r
1985 return jButtonAntTaskFileBrowse;\r
1986 }\r
1987\r
1988 /**\r
1989 * This method initializes jPanelUserDefCenterN \r
1990 * \r
1991 * @return javax.swing.JPanel \r
1992 */\r
1993 private JPanel getJPanelUserDefCenterN() {\r
1994 if (jPanelUserDefCenterN == null) {\r
1995 jPanelUserDefCenterN = new JPanel();\r
1996 jPanelUserDefCenterN.add(jLabelAntCmdOpts, null);\r
1997 jPanelUserDefCenterN.add(getJTextFieldAntCmdOpts(), null);\r
1998 jPanelUserDefCenterN.add(getJButtonAntTaskAdd(), null);\r
1999 jPanelUserDefCenterN.add(getJButtonAntTaskDel(), null);\r
2000 }\r
2001 return jPanelUserDefCenterN;\r
2002 }\r
2003\r
2004 /**\r
2005 * This method initializes jPanel8 \r
2006 * \r
2007 * @return javax.swing.JPanel \r
2008 */\r
2009 private JPanel getJPanelUserDef() {\r
2010 if (jPanelUserDef == null) {\r
2011 jPanelUserDef = new JPanel();\r
2012 jPanelUserDef.setLayout(new BorderLayout());\r
2013 jPanelUserDef.add(getJPanelUserDefNorth(), java.awt.BorderLayout.NORTH);\r
2014 jPanelUserDef.add(getJPanelUserDefCenter(), java.awt.BorderLayout.CENTER);\r
2015\r
2016 }\r
2017 return jPanelUserDef;\r
2018 }\r
2019\r
2020 /**\r
2021 * This method initializes jPanel9 \r
2022 * \r
2023 * @return javax.swing.JPanel \r
2024 */\r
2025 private JPanel getJPanelUserDefNorth() {\r
2026 if (jPanelUserDefNorth == null) {\r
2027 jLabelAntTaskFile = new JLabel();\r
2028 jLabelAntTaskFile.setText("ANT Task File");\r
2029 jLabelAntTaskFile.setPreferredSize(new java.awt.Dimension(80, 20));\r
2030 FlowLayout flowLayout8 = new FlowLayout();\r
2031 flowLayout8.setAlignment(java.awt.FlowLayout.CENTER);\r
2032 jLabelAntTaskId = new JLabel();\r
2033 jLabelAntTaskId.setText("ID");\r
2034 jPanelUserDefNorth = new JPanel();\r
2035 jPanelUserDefNorth.setLayout(flowLayout8);\r
2036 jPanelUserDefNorth.add(jLabelAntTaskFile, null);\r
2037 jPanelUserDefNorth.add(getJTextFieldAntTaskFile(), null);\r
2038 jPanelUserDefNorth.add(getJButtonAntTaskFileBrowse(), null);\r
2039 jPanelUserDefNorth.add(jLabelAntTaskId, null);\r
2040 jPanelUserDefNorth.add(getJTextFieldAntTaskId(), null);\r
2041 }\r
2042 return jPanelUserDefNorth;\r
2043 }\r
2044\r
2045 /**\r
2046 * This method initializes jPanel11 \r
2047 * \r
2048 * @return javax.swing.JPanel \r
2049 */\r
2050 private JPanel getJPanelUserDefCenter() {\r
2051 if (jPanelUserDefCenter == null) {\r
2052 jLabelAntCmdOpts = new JLabel();\r
2053 jLabelAntCmdOpts.setText("ANT Command Options");\r
2054 jLabelAntCmdOpts.setPreferredSize(new java.awt.Dimension(131, 20));\r
2055 jPanelUserDefCenter = new JPanel();\r
2056 jPanelUserDefCenter.setLayout(new BorderLayout());\r
2057\r
2058 jPanelUserDefCenter.add(getJPanelUserDefCenterN(), java.awt.BorderLayout.NORTH);\r
2059 jPanelUserDefCenter.add(getJScrollPaneAntTasks(), java.awt.BorderLayout.CENTER);\r
2060 }\r
2061 return jPanelUserDefCenter;\r
2062 }\r
2063\r
2064 /**\r
2065 * This method initializes jTextField2 \r
2066 * \r
2067 * @return javax.swing.JTextField \r
2068 */\r
2069 private JTextField getJTextFieldAntTaskFile() {\r
2070 if (jTextFieldAntTaskFile == null) {\r
2071 jTextFieldAntTaskFile = new JTextField();\r
2072 jTextFieldAntTaskFile.setPreferredSize(new java.awt.Dimension(200, 20));\r
2073 }\r
2074 return jTextFieldAntTaskFile;\r
2075 }\r
2076\r
2077 /**\r
2078 * This method initializes jTextField3 \r
2079 * \r
2080 * @return javax.swing.JTextField \r
2081 */\r
2082 private JTextField getJTextFieldAntTaskId() {\r
2083 if (jTextFieldAntTaskId == null) {\r
2084 jTextFieldAntTaskId = new JTextField();\r
2085 jTextFieldAntTaskId.setPreferredSize(new java.awt.Dimension(100, 20));\r
2086 }\r
2087 return jTextFieldAntTaskId;\r
2088 }\r
2089\r
2090 /**\r
2091 * This method initializes jButton4 \r
2092 * \r
2093 * @return javax.swing.JButton \r
2094 */\r
2095 private JButton getJButtonAntTaskAdd() {\r
2096 if (jButtonAntTaskAdd == null) {\r
2097 jButtonAntTaskAdd = new JButton();\r
2098 jButtonAntTaskAdd.setPreferredSize(new java.awt.Dimension(90, 20));\r
2099 jButtonAntTaskAdd.setText("Add");\r
2100 jButtonAntTaskAdd.addActionListener(new ActionListener() {\r
2101 public void actionPerformed(ActionEvent e) {\r
2102 if (!DataValidation.isInt(jTextFieldAntTaskId.getText())\r
2103 || jTextFieldAntTaskId.getText().length() != 8) {\r
2104 JOptionPane.showMessageDialog(FpdBuildOptions.this, "ID must be an 8-digit integer.");\r
2105 return;\r
2106 }\r
2107 Object[] o = { jTextFieldAntTaskId.getText(), null, null };\r
2108 o[1] = jTextFieldAntTaskFile.getText();\r
2109 o[2] = jTextFieldAntCmdOpts.getText();\r
2110 ffc.genBuildOptionsUserDefAntTask(o[0] + "", o[1] + "", o[2] + "");\r
2111 antTaskTableModel.addRow(o);\r
2112 docConsole.setSaved(false);\r
2113 }\r
2114 });\r
2115 }\r
2116 return jButtonAntTaskAdd;\r
2117 }\r
2118\r
2119 /**\r
2120 * This method initializes jButton5 \r
2121 * \r
2122 * @return javax.swing.JButton \r
2123 */\r
2124 private JButton getJButtonAntTaskDel() {\r
2125 if (jButtonAntTaskDel == null) {\r
2126 jButtonAntTaskDel = new JButton();\r
2127 jButtonAntTaskDel.setPreferredSize(new java.awt.Dimension(90, 20));\r
2128 jButtonAntTaskDel.setText("Delete");\r
2129 jButtonAntTaskDel.addActionListener(new ActionListener() {\r
2130 public void actionPerformed(ActionEvent e) {\r
2131 if (selectedRow >= 0) {\r
2132 docConsole.setSaved(false);\r
2133 antTaskTableModel.removeRow(selectedRow);\r
2134 ffc.removeBuildOptionsUserDefAntTask(selectedRow);\r
2135 }\r
2136 }\r
2137 });\r
2138 }\r
2139 return jButtonAntTaskDel;\r
2140 }\r
2141\r
2142 /**\r
2143 * This method initializes jTextField4 \r
2144 * \r
2145 * @return javax.swing.JTextField \r
2146 */\r
2147 private JTextField getJTextFieldAntCmdOpts() {\r
2148 if (jTextFieldAntCmdOpts == null) {\r
2149 jTextFieldAntCmdOpts = new JTextField();\r
2150 jTextFieldAntCmdOpts.setPreferredSize(new java.awt.Dimension(270, 20));\r
2151 jTextFieldAntCmdOpts.setEnabled(true);\r
2152 }\r
2153 return jTextFieldAntCmdOpts;\r
2154 }\r
2155\r
2156 /**\r
2157 * This method initializes jScrollPane2 \r
2158 * \r
2159 * @return javax.swing.JScrollPane \r
2160 */\r
2161 private JScrollPane getJScrollPaneAntTasks() {\r
2162 if (jScrollPaneAntTasks == null) {\r
2163 jScrollPaneAntTasks = new JScrollPane();\r
2164 jScrollPaneAntTasks.setPreferredSize(new java.awt.Dimension(600, 400));\r
2165 jScrollPaneAntTasks.setViewportView(getJTableAntTasks());\r
2166 }\r
2167 return jScrollPaneAntTasks;\r
2168 }\r
2169\r
2170 /**\r
2171 * This method initializes jTable2 \r
2172 * \r
2173 * @return javax.swing.JTable \r
2174 */\r
2175 private JTable getJTableAntTasks() {\r
2176 if (jTableAntTasks == null) {\r
2177 antTaskTableModel = new DefaultTableModel();\r
2178 jTableAntTasks = new JTable(antTaskTableModel);\r
2179 jTableAntTasks.setRowHeight(20);\r
2180 antTaskTableModel.addColumn("ID");\r
2181 antTaskTableModel.addColumn("Filename");\r
2182 antTaskTableModel.addColumn("ANT Command Options");\r
2183\r
2184 jTableAntTasks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
2185 jTableAntTasks.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
2186 public void valueChanged(ListSelectionEvent e) {\r
2187 selectedRow = -1;\r
2188 if (e.getValueIsAdjusting()) {\r
2189 return;\r
2190 }\r
2191 ListSelectionModel lsm = (ListSelectionModel) e.getSource();\r
2192 if (lsm.isSelectionEmpty()) {\r
2193 return;\r
2194 } else {\r
2195 selectedRow = lsm.getMinSelectionIndex();\r
2196 }\r
2197 }\r
2198 });\r
2199\r
2200 jTableAntTasks.getModel().addTableModelListener(new TableModelListener() {\r
2201 public void tableChanged(TableModelEvent arg0) {\r
2202 // TODO Auto-generated method stub\r
2203 int row = arg0.getFirstRow();\r
2204 TableModel m = (TableModel) arg0.getSource();\r
2205 if (arg0.getType() == TableModelEvent.UPDATE) {\r
2206 //ToDo Data Validition check.\r
2207 String id = m.getValueAt(row, 0) + "";\r
2208 String file = m.getValueAt(row, 1) + "";\r
2209 String execOrder = m.getValueAt(row, 2) + "";\r
2210 if (id.length() == 0) {\r
2211 return;\r
2212 }\r
2213 if (file.length() == 0 && execOrder.length() == 0) {\r
2214 return;\r
2215 }\r
2216 if (file.length() == 0) {\r
2217 file = null;\r
2218 }\r
2219 if (execOrder.length() == 0) {\r
2220 execOrder = null;\r
2221 }\r
2222 ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);\r
2223\r
2224 }\r
2225 }\r
2226 });\r
2227 }\r
2228 return jTableAntTasks;\r
2229 }\r
2230\r
2231 private void initAntTaskTable() {\r
2232 if (ffc.getBuildOptionsUserDefAntTaskCount() == 0) {\r
2233 return;\r
2234 }\r
2235 String[][] saa = new String[ffc.getBuildOptionsUserDefAntTaskCount()][3];\r
2236 ffc.getBuildOptionsUserDefAntTasks(saa);\r
2237 for (int i = 0; i < saa.length; ++i) {\r
2238 antTaskTableModel.addRow(saa[i]);\r
2239 }\r
2240 }\r
2241\r
2242} // @jve:decl-index=0:visual-constraint="10,10"\r