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