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