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