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