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