]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
sort modules by name alphabetically when start; make column width resizable and remov...
[mirror_edk2.git] / Tools / 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
a13899c5 27\r
a13899c5 28import javax.swing.DefaultCellEditor;\r
af25df16 29import javax.swing.JFileChooser;\r
d6d24759 30import javax.swing.JFrame;\r
31import javax.swing.JOptionPane;\r
a13899c5 32import javax.swing.JTextField;\r
33import javax.swing.JButton;\r
34import javax.swing.JScrollPane;\r
35import javax.swing.JTable;\r
36import javax.swing.JComboBox;\r
a13899c5 37import javax.swing.ListSelectionModel;\r
44053733 38import javax.swing.event.InternalFrameAdapter;\r
39import javax.swing.event.InternalFrameEvent;\r
a13899c5 40import javax.swing.event.ListSelectionEvent;\r
41import javax.swing.event.ListSelectionListener;\r
42import javax.swing.event.TableModelEvent;\r
43import javax.swing.event.TableModelListener;\r
44import javax.swing.table.DefaultTableModel;\r
a13899c5 45import javax.swing.table.TableModel;\r
a13899c5 46\r
47import org.tianocore.PlatformSurfaceAreaDocument;\r
d6d24759 48import org.tianocore.frameworkwizard.common.DataValidation;\r
49import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
a13899c5 50import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
af25df16 51\r
52import java.io.File;\r
6cba26e8 53import java.util.ArrayList;\r
54import java.util.Iterator;\r
55import java.util.LinkedHashMap;\r
56import java.util.Set;\r
1800d80f 57import java.util.Vector;\r
af25df16 58import java.awt.Dimension;\r
a13899c5 59\r
60public class FpdBuildOptions extends IInternalFrame {\r
61\r
62 private static final long serialVersionUID = 1L;\r
d6d24759 63 static JFrame frame;\r
a13899c5 64 private JPanel jContentPane = null;\r
4da2e625 65 private JPanel jPanelContentSouth = null;\r
66 private JPanel jPanelContentNorth = null;\r
67 private JPanel jPanelContentWest = null;\r
68 private JPanel jPanelContentEast = null;\r
a13899c5 69 private JTabbedPane jTabbedPane = null;\r
4da2e625 70 private JPanel jPanelUserDef = null;\r
71 private JPanel jPanelUserDefNorth = null;\r
72 private JPanel jPanelUserDefCenter = null;\r
73 private JTextField jTextFieldAntTaskFile = null;\r
74 private JLabel jLabelAntTaskId = null;\r
75 private JTextField jTextFieldAntTaskId = null;\r
76 private JButton jButtonAntTaskAdd = null;\r
77 private JButton jButtonAntTaskDel = null;\r
78 private JTextField jTextFieldAntCmdOpts = null;\r
79 private JScrollPane jScrollPaneAntTasks = null;\r
80 private JTable jTableAntTasks = null;\r
44053733 81 private DefaultTableModel ffsTableModel = null;\r
6cba26e8 82 private DefaultTableModel sectionsTableModel = null;\r
83 private DefaultTableModel sectionTableModel = null;\r
84 private DefaultTableModel subsectionsTableModel = null;\r
a13899c5 85 private DefaultTableModel antTaskTableModel = null;\r
86 private DefaultTableModel ffsAttributesTableModel = null;\r
87 private DefaultTableModel optionsTableModel = null;\r
4da2e625 88 private JPanel jPanelFfsTab = null;\r
89 private JPanel jPanelFfsTabCenter = null;\r
90 private JPanel jPanelFfsTabCenterN = null;\r
91 private JPanel jPanelFfsTabCenterS = null;\r
92 private JPanel jPanelFfsTabCenterE = null;\r
93 private JLabel jLabelFfsKey = null;\r
94 private JTextField jTextFieldFfsKey = null;\r
95 private JButton jButtonFfsAdd = null;\r
96 private JButton jButtonFfsDel = null;\r
97 private JScrollPane jScrollPaneFfsAttribs = null;\r
98 private JTable jTableFfsAttribs = null;\r
99 private JPanel jPanelFfsTabCenterC = null;\r
100 private JPanel jPanelOptionsTab = null;\r
101 private JLabel jLabelOptionContents = null;\r
102 private JTextField jTextFieldOptionContents = null;\r
103 private JLabel jLabelToolChainFamily = null;\r
104 private JLabel jLabelSupArch = null;\r
105 private JLabel jLabelToolCmd = null;\r
106 private JTextField jTextFieldToolCmd = null;\r
107 private JScrollPane jScrollPaneOptions = null;\r
108 private JTable jTableOptions = null;\r
109 private JButton jButtonOptionsAdd = null;\r
110 private JButton jButtonOptionsDel = null;\r
111 private JButton jButtonFfsAttribNew = null;\r
112 private JButton jButtonFfsAttribRemove = null;\r
a13899c5 113 private FpdFileContents ffc = null;\r
d6d24759 114 private OpeningPlatformType docConsole = null;\r
4da2e625 115 private JCheckBox jCheckBoxIA32 = null;\r
116 private JCheckBox jCheckBoxIpf = null;\r
117 private JCheckBox jCheckBoxX64 = null;\r
118 private JCheckBox jCheckBoxEBC = null;\r
119 private JCheckBox jCheckBoxARM = null;\r
120 private JCheckBox jCheckBoxPPC = null;\r
121 private JLabel jLabelBuildTargets = null;\r
122 private JTextField jTextFieldBuildTargets = null;\r
123 private JTextField jTextFieldTagName = null;\r
124 private JLabel jLabelTagName = null;\r
a13899c5 125 private int selectedRow = -1;\r
4da2e625 126 private JLabel jLabelAntTaskFile = null;\r
127 private JLabel jLabelAntCmdOpts = null;\r
128 private JScrollPane jScrollPaneFfs = null;\r
129 private JTable jTableFfs = null;\r
130 private JLabel jLabelFfsSection = null;\r
131 private JScrollPane jScrollPaneFfsSection = null;\r
132 private JTable jTableFfsSection = null;\r
133 private JLabel jLabelFfsSubSections = null;\r
134 private JScrollPane jScrollPaneFfsSubSection = null;\r
135 private JTable jTableFfsSubSection = null;\r
136 private JLabel jLabelEncapType = null;\r
137 private JTextField jTextFieldEncapType = null;\r
138 private JPanel jPanelFfsAttribButtonGroup = null;\r
139 private JLabel jLabelFfsAttribs = null;\r
140 private JButton jButtonFfsSectionNew = null;\r
141 private JButton jButtonFfsSectionRemove = null;\r
142 private JButton jButtonFfsSubSectionNew = null;\r
143 private JButton jButtonFfsSubSectionRemove = null;\r
144 private JLabel jLabelFfsSections = null;\r
145 private JButton jButtonFfsSectionsNew = null;\r
146 private JButton jButtonFfsSectionsRemove = null;\r
147 private JScrollPane jScrollPaneFfsSections = null;\r
148 private JTable jTableFfsSections = null;\r
149 private JButton jButtonAntTaskFileBrowse = null;\r
150 private JTextField jTextFieldToolChainFamily = null;\r
a13899c5 151 /**\r
152 * This method initializes jPanel \r
153 * \r
154 * @return javax.swing.JPanel \r
155 */\r
4da2e625 156 private JPanel getJPanelContentSouth() {\r
157 if (jPanelContentSouth == null) {\r
158 jPanelContentSouth = new JPanel();\r
a13899c5 159 }\r
4da2e625 160 return jPanelContentSouth;\r
a13899c5 161 }\r
162\r
163 /**\r
164 * This method initializes jPanel1 \r
165 * \r
166 * @return javax.swing.JPanel \r
167 */\r
4da2e625 168 private JPanel getJPanelContentNorth() {\r
169 if (jPanelContentNorth == null) {\r
170 jPanelContentNorth = new JPanel();\r
a13899c5 171 }\r
4da2e625 172 return jPanelContentNorth;\r
a13899c5 173 }\r
174\r
175 /**\r
176 * This method initializes jPanel2 \r
177 * \r
178 * @return javax.swing.JPanel \r
179 */\r
4da2e625 180 private JPanel getJPanelContentWest() {\r
181 if (jPanelContentWest == null) {\r
182 jPanelContentWest = new JPanel();\r
a13899c5 183 }\r
4da2e625 184 return jPanelContentWest;\r
a13899c5 185 }\r
186\r
187 /**\r
188 * This method initializes jPanel3 \r
189 * \r
190 * @return javax.swing.JPanel \r
191 */\r
4da2e625 192 private JPanel getJPanelContentEast() {\r
193 if (jPanelContentEast == null) {\r
194 jPanelContentEast = new JPanel();\r
a13899c5 195 }\r
4da2e625 196 return jPanelContentEast;\r
a13899c5 197 }\r
198\r
199 /**\r
200 * This method initializes jTabbedPane \r
201 * \r
202 * @return javax.swing.JTabbedPane \r
203 */\r
204 private JTabbedPane getJTabbedPane() {\r
205 if (jTabbedPane == null) {\r
206 jTabbedPane = new JTabbedPane();\r
4da2e625 207 jTabbedPane.addTab("FFS", null, getJPanelFfsTab(), null);\r
208 jTabbedPane.addTab("Options", null, getJPanelOptionsTab(), null);\r
209 jTabbedPane.addTab("User Defined ANT Tasks", null, getJPanelUserDef(), null);\r
a13899c5 210 }\r
211 return jTabbedPane;\r
212 }\r
213\r
214 \r
215 /**\r
216 * This method initializes jPanel8 \r
217 * \r
218 * @return javax.swing.JPanel \r
219 */\r
4da2e625 220 private JPanel getJPanelUserDef() {\r
221 if (jPanelUserDef == null) {\r
222 jPanelUserDef = new JPanel();\r
223 jPanelUserDef.setLayout(new BorderLayout());\r
224 jPanelUserDef.add(getJPanelUserDefNorth(), java.awt.BorderLayout.NORTH);\r
225 jPanelUserDef.add(getJPanelUserDefCenter(), java.awt.BorderLayout.CENTER);\r
202c4f38 226\r
a13899c5 227 }\r
4da2e625 228 return jPanelUserDef;\r
a13899c5 229 }\r
230\r
231 /**\r
232 * This method initializes jPanel9 \r
233 * \r
234 * @return javax.swing.JPanel \r
235 */\r
4da2e625 236 private JPanel getJPanelUserDefNorth() {\r
237 if (jPanelUserDefNorth == null) {\r
238 jLabelAntTaskFile = new JLabel();\r
239 jLabelAntTaskFile.setText("ANT Task File");\r
240 jLabelAntTaskFile.setPreferredSize(new java.awt.Dimension(80,20));\r
a13899c5 241 FlowLayout flowLayout8 = new FlowLayout();\r
242 flowLayout8.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 243 jLabelAntTaskId = new JLabel();\r
244 jLabelAntTaskId.setText("ID");\r
245 jPanelUserDefNorth = new JPanel();\r
246 jPanelUserDefNorth.setLayout(flowLayout8);\r
247 jPanelUserDefNorth.add(jLabelAntTaskFile, null);\r
248 jPanelUserDefNorth.add(getJTextFieldAntTaskFile(), null);\r
249 jPanelUserDefNorth.add(getJButtonAntTaskFileBrowse(), null);\r
250 jPanelUserDefNorth.add(jLabelAntTaskId, null);\r
251 jPanelUserDefNorth.add(getJTextFieldAntTaskId(), null);\r
a13899c5 252 }\r
4da2e625 253 return jPanelUserDefNorth;\r
a13899c5 254 }\r
255\r
256 /**\r
257 * This method initializes jPanel11 \r
258 * \r
259 * @return javax.swing.JPanel \r
260 */\r
4da2e625 261 private JPanel getJPanelUserDefCenter() {\r
262 if (jPanelUserDefCenter == null) {\r
263 jLabelAntCmdOpts = new JLabel();\r
264 jLabelAntCmdOpts.setText("ANT Command Options");\r
265 jLabelAntCmdOpts.setPreferredSize(new java.awt.Dimension(131,20));\r
a13899c5 266 FlowLayout flowLayout3 = new FlowLayout();\r
267 flowLayout3.setHgap(5);\r
268 flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 269 jPanelUserDefCenter = new JPanel();\r
270 jPanelUserDefCenter.setLayout(flowLayout3);\r
271 jPanelUserDefCenter.add(jLabelAntCmdOpts, null);\r
272 jPanelUserDefCenter.add(getJTextField4(), null);\r
273 jPanelUserDefCenter.add(getJButtonAntTaskAdd(), null);\r
274 jPanelUserDefCenter.add(getJButtonAntTaskDel(), null);\r
275 jPanelUserDefCenter.add(getJScrollPaneAntTasks(), null);\r
a13899c5 276 }\r
4da2e625 277 return jPanelUserDefCenter;\r
a13899c5 278 }\r
279\r
a13899c5 280 /**\r
281 * This method initializes jTextField2 \r
282 * \r
283 * @return javax.swing.JTextField \r
284 */\r
4da2e625 285 private JTextField getJTextFieldAntTaskFile() {\r
286 if (jTextFieldAntTaskFile == null) {\r
287 jTextFieldAntTaskFile = new JTextField();\r
288 jTextFieldAntTaskFile.setPreferredSize(new java.awt.Dimension(200,20));\r
a13899c5 289 }\r
4da2e625 290 return jTextFieldAntTaskFile;\r
a13899c5 291 }\r
292\r
293 /**\r
294 * This method initializes jTextField3 \r
295 * \r
296 * @return javax.swing.JTextField \r
297 */\r
4da2e625 298 private JTextField getJTextFieldAntTaskId() {\r
299 if (jTextFieldAntTaskId == null) {\r
300 jTextFieldAntTaskId = new JTextField();\r
301 jTextFieldAntTaskId.setPreferredSize(new java.awt.Dimension(100,20));\r
a13899c5 302 }\r
4da2e625 303 return jTextFieldAntTaskId;\r
a13899c5 304 }\r
305\r
306 /**\r
307 * This method initializes jButton4 \r
308 * \r
309 * @return javax.swing.JButton \r
310 */\r
4da2e625 311 private JButton getJButtonAntTaskAdd() {\r
312 if (jButtonAntTaskAdd == null) {\r
313 jButtonAntTaskAdd = new JButton();\r
314 jButtonAntTaskAdd.setPreferredSize(new java.awt.Dimension(90,20));\r
315 jButtonAntTaskAdd.setText("Add");\r
316 jButtonAntTaskAdd.addActionListener(new ActionListener() {\r
a13899c5 317 public void actionPerformed(ActionEvent e) {\r
4da2e625 318 if (!DataValidation.isInt(jTextFieldAntTaskId.getText()) || jTextFieldAntTaskId.getText().length() != 8) {\r
af25df16 319 JOptionPane.showMessageDialog(frame, "ID must be an 8-digit integer.");\r
d6d24759 320 return;\r
321 }\r
4da2e625 322 Object[] o = {jTextFieldAntTaskId.getText(), null, null};\r
323 o[1] = jTextFieldAntTaskFile.getText();\r
324 o[2] = jTextFieldAntCmdOpts.getText();\r
af25df16 325 ffc.genBuildOptionsUserDefAntTask(o[0]+"", o[1]+"", o[2]+"");\r
a13899c5 326 antTaskTableModel.addRow(o);\r
d6d24759 327 docConsole.setSaved(false);\r
a13899c5 328 }\r
329 });\r
330 }\r
4da2e625 331 return jButtonAntTaskAdd;\r
a13899c5 332 }\r
333\r
334 /**\r
335 * This method initializes jButton5 \r
336 * \r
337 * @return javax.swing.JButton \r
338 */\r
4da2e625 339 private JButton getJButtonAntTaskDel() {\r
340 if (jButtonAntTaskDel == null) {\r
341 jButtonAntTaskDel = new JButton();\r
342 jButtonAntTaskDel.setPreferredSize(new java.awt.Dimension(90,20));\r
343 jButtonAntTaskDel.setText("Delete");\r
344 jButtonAntTaskDel.addActionListener(new ActionListener() {\r
a13899c5 345 public void actionPerformed(ActionEvent e) {\r
346 if (selectedRow >= 0) {\r
d6d24759 347 docConsole.setSaved(false);\r
a13899c5 348 antTaskTableModel.removeRow(selectedRow);\r
349 ffc.removeBuildOptionsUserDefAntTask(selectedRow);\r
350 }\r
351 }\r
352 });\r
353 }\r
4da2e625 354 return jButtonAntTaskDel;\r
a13899c5 355 }\r
356\r
a13899c5 357 /**\r
358 * This method initializes jTextField4 \r
359 * \r
360 * @return javax.swing.JTextField \r
361 */\r
362 private JTextField getJTextField4() {\r
4da2e625 363 if (jTextFieldAntCmdOpts == null) {\r
364 jTextFieldAntCmdOpts = new JTextField();\r
365 jTextFieldAntCmdOpts.setPreferredSize(new java.awt.Dimension(270,20));\r
366 jTextFieldAntCmdOpts.setEnabled(true);\r
a13899c5 367 }\r
4da2e625 368 return jTextFieldAntCmdOpts;\r
a13899c5 369 }\r
370\r
371 /**\r
372 * This method initializes jScrollPane2 \r
373 * \r
374 * @return javax.swing.JScrollPane \r
375 */\r
4da2e625 376 private JScrollPane getJScrollPaneAntTasks() {\r
377 if (jScrollPaneAntTasks == null) {\r
378 jScrollPaneAntTasks = new JScrollPane();\r
379 jScrollPaneAntTasks.setPreferredSize(new java.awt.Dimension(600,100));\r
380 jScrollPaneAntTasks.setViewportView(getJTableAntTasks());\r
a13899c5 381 }\r
4da2e625 382 return jScrollPaneAntTasks;\r
a13899c5 383 }\r
384\r
385 /**\r
386 * This method initializes jTable2 \r
387 * \r
388 * @return javax.swing.JTable \r
389 */\r
4da2e625 390 private JTable getJTableAntTasks() {\r
391 if (jTableAntTasks == null) {\r
a13899c5 392 antTaskTableModel = new DefaultTableModel();\r
4da2e625 393 jTableAntTasks = new JTable(antTaskTableModel);\r
394 jTableAntTasks.setRowHeight(20);\r
a13899c5 395 antTaskTableModel.addColumn("ID");\r
396 antTaskTableModel.addColumn("Filename");\r
202c4f38 397 antTaskTableModel.addColumn("ANT Command Options");\r
a13899c5 398 \r
4da2e625 399 jTableAntTasks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
400 jTableAntTasks.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 401 public void valueChanged(ListSelectionEvent e) {\r
402 selectedRow = -1;\r
403 if (e.getValueIsAdjusting()){\r
404 return;\r
405 }\r
406 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
407 if (lsm.isSelectionEmpty()) {\r
408 return;\r
409 }\r
410 else{\r
411 selectedRow = lsm.getMinSelectionIndex();\r
412 }\r
413 }\r
414 });\r
415 \r
4da2e625 416 jTableAntTasks.getModel().addTableModelListener(new TableModelListener() {\r
a13899c5 417 public void tableChanged(TableModelEvent arg0) {\r
418 // TODO Auto-generated method stub\r
419 int row = arg0.getFirstRow();\r
420 TableModel m = (TableModel)arg0.getSource();\r
421 if (arg0.getType() == TableModelEvent.UPDATE){\r
422 //ToDo Data Validition check.\r
423 String id = m.getValueAt(row, 0) + "";\r
424 String file = m.getValueAt(row, 1) + "";\r
425 String execOrder = m.getValueAt(row, 2) + "";\r
426 if (id.length() == 0) {\r
427 return;\r
428 }\r
429 if (file.length() == 0 && execOrder.length() == 0){\r
430 return;\r
431 }\r
432 if (file.length() == 0) {\r
433 file = null;\r
434 }\r
435 if (execOrder.length() == 0) {\r
436 execOrder = null;\r
437 }\r
438 ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);\r
439 \r
440 }\r
441 }\r
442 });\r
443 }\r
4da2e625 444 return jTableAntTasks;\r
a13899c5 445 }\r
446\r
447 /**\r
448 * This method initializes jPanel13 \r
449 * \r
450 * @return javax.swing.JPanel \r
451 */\r
4da2e625 452 private JPanel getJPanelFfsTab() {\r
453 if (jPanelFfsTab == null) {\r
454 jPanelFfsTab = new JPanel();\r
455 jPanelFfsTab.setLayout(new BorderLayout());\r
456 jPanelFfsTab.add(getJPanelFfsTabCenter(), java.awt.BorderLayout.CENTER);\r
457 jPanelFfsTab.add(getJScrollPaneFfs(), java.awt.BorderLayout.WEST);\r
a13899c5 458 }\r
4da2e625 459 return jPanelFfsTab;\r
a13899c5 460 }\r
461\r
a13899c5 462 /**\r
463 * This method initializes jPanel18 \r
464 * \r
465 * @return javax.swing.JPanel \r
466 */\r
4da2e625 467 private JPanel getJPanelFfsTabCenter() {\r
468 if (jPanelFfsTabCenter == null) {\r
469 jPanelFfsTabCenter = new JPanel();\r
470 jPanelFfsTabCenter.setLayout(new BorderLayout());\r
471 jPanelFfsTabCenter.add(getJPanelFfsTabCenterN(), java.awt.BorderLayout.NORTH);\r
472 jPanelFfsTabCenter.add(getJPanelFfsTabCenterS(), java.awt.BorderLayout.SOUTH);\r
473 jPanelFfsTabCenter.add(getJPanelFfsTabCenterE(), java.awt.BorderLayout.EAST);\r
474 jPanelFfsTabCenter.add(getJPanelFfsTabCenterC(), java.awt.BorderLayout.CENTER);\r
a13899c5 475 }\r
4da2e625 476 return jPanelFfsTabCenter;\r
a13899c5 477 }\r
478\r
a13899c5 479 /**\r
480 * This method initializes jPanel15 \r
481 * \r
482 * @return javax.swing.JPanel \r
483 */\r
4da2e625 484 private JPanel getJPanelFfsTabCenterN() {\r
485 if (jPanelFfsTabCenterN == null) {\r
486 jLabelEncapType = new JLabel();\r
487 jLabelEncapType.setText("Encapsulation Type");\r
a13899c5 488 FlowLayout flowLayout5 = new FlowLayout();\r
489 flowLayout5.setAlignment(java.awt.FlowLayout.RIGHT);\r
4da2e625 490 jLabelFfsKey = new JLabel();\r
491 jLabelFfsKey.setText("FFS Key");\r
492 jPanelFfsTabCenterN = new JPanel();\r
493 jPanelFfsTabCenterN.setLayout(flowLayout5);\r
494 jPanelFfsTabCenterN.add(jLabelFfsKey, null);\r
495 jPanelFfsTabCenterN.add(getJTextFieldFfsKey(), null);\r
496 jPanelFfsTabCenterN.add(jLabelEncapType, null);\r
497 jPanelFfsTabCenterN.add(getJTextFieldEncapType(), null);\r
498 jPanelFfsTabCenterN.add(getJButtonFfsAdd(), null);\r
499 jPanelFfsTabCenterN.add(getJButtonFfsDel(), null);\r
a13899c5 500 }\r
4da2e625 501 return jPanelFfsTabCenterN;\r
a13899c5 502 }\r
503\r
504 /**\r
505 * This method initializes jPanel16 \r
506 * \r
507 * @return javax.swing.JPanel \r
508 */\r
4da2e625 509 private JPanel getJPanelFfsTabCenterS() {\r
510 if (jPanelFfsTabCenterS == null) {\r
511 jLabelFfsAttribs = new JLabel();\r
512 jLabelFfsAttribs.setText("Attributes");\r
a13899c5 513 FlowLayout flowLayout6 = new FlowLayout();\r
514 flowLayout6.setHgap(5);\r
6cba26e8 515 flowLayout6.setVgap(20);\r
516 flowLayout6.setAlignment(java.awt.FlowLayout.CENTER);\r
4da2e625 517 jPanelFfsTabCenterS = new JPanel();\r
518 jPanelFfsTabCenterS.setPreferredSize(new java.awt.Dimension(491,130));\r
519 jPanelFfsTabCenterS.setLayout(flowLayout6);\r
520 jPanelFfsTabCenterS.add(jLabelFfsAttribs, null);\r
521 jPanelFfsTabCenterS.add(getJScrollPaneFfsAttribs(), null);\r
522 jPanelFfsTabCenterS.add(getJPanelFfsAttribButtonGroup(), null);\r
a13899c5 523 }\r
4da2e625 524 return jPanelFfsTabCenterS;\r
a13899c5 525 }\r
526\r
527 /**\r
528 * This method initializes jPanel17 \r
529 * \r
530 * @return javax.swing.JPanel \r
531 */\r
4da2e625 532 private JPanel getJPanelFfsTabCenterE() {\r
533 if (jPanelFfsTabCenterE == null) {\r
534 jPanelFfsTabCenterE = new JPanel();\r
a13899c5 535 }\r
4da2e625 536 return jPanelFfsTabCenterE;\r
a13899c5 537 }\r
538\r
539 /**\r
540 * This method initializes jTextField6 \r
541 * \r
542 * @return javax.swing.JTextField \r
543 */\r
4da2e625 544 private JTextField getJTextFieldFfsKey() {\r
545 if (jTextFieldFfsKey == null) {\r
546 jTextFieldFfsKey = new JTextField();\r
547 jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(100,20));\r
548 jTextFieldFfsKey.setEditable(true);\r
549 jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
3b405e9b 550 public void focusLost(java.awt.event.FocusEvent e) {\r
4da2e625 551 if (jTableFfs.getSelectedRow() < 0) {\r
3b405e9b 552 return;\r
553 }\r
554// ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());\r
555 }\r
556 });\r
a13899c5 557 }\r
4da2e625 558 return jTextFieldFfsKey;\r
a13899c5 559 }\r
560\r
561 /**\r
562 * This method initializes jButton8 \r
563 * \r
564 * @return javax.swing.JButton \r
565 */\r
4da2e625 566 private JButton getJButtonFfsAdd() {\r
567 if (jButtonFfsAdd == null) {\r
568 jButtonFfsAdd = new JButton();\r
569 jButtonFfsAdd.setPreferredSize(new java.awt.Dimension(70,20));\r
570 jButtonFfsAdd.setText("Add");\r
571 jButtonFfsAdd.addActionListener(new AbstractAction() {\r
44053733 572 /**\r
573 * \r
574 */\r
575 private static final long serialVersionUID = -2923720717273384221L;\r
576\r
a13899c5 577 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 578 if (jTextFieldFfsKey.getText().length() > 0) {\r
579 String[] row = {jTextFieldFfsKey.getText()};\r
6cba26e8 580 ffsTableModel.addRow(row);\r
d6d24759 581 docConsole.setSaved(false);\r
4da2e625 582 ffc.genBuildOptionsFfs(jTextFieldFfsKey.getText(), jTextFieldEncapType.getText());\r
a13899c5 583 }\r
584 }\r
585 });\r
586 }\r
4da2e625 587 return jButtonFfsAdd;\r
a13899c5 588 }\r
589\r
590 /**\r
591 * This method initializes jButton9 \r
592 * \r
593 * @return javax.swing.JButton \r
594 */\r
4da2e625 595 private JButton getJButtonFfsDel() {\r
596 if (jButtonFfsDel == null) {\r
597 jButtonFfsDel = new JButton();\r
598 jButtonFfsDel.setPreferredSize(new java.awt.Dimension(70,20));\r
599 jButtonFfsDel.setText("Delete");\r
600 jButtonFfsDel.addActionListener(new AbstractAction() {\r
44053733 601 /**\r
602 * \r
603 */\r
604 private static final long serialVersionUID = -4002678939178194476L;\r
605\r
a13899c5 606 public void actionPerformed(ActionEvent arg0){\r
4da2e625 607 if (jTableFfs.getSelectedRow() < 0) {\r
6cba26e8 608 return;\r
609 }\r
d6d24759 610 docConsole.setSaved(false);\r
4da2e625 611 ffc.removeBuildOptionsFfs(jTableFfs.getSelectedRow());\r
a13899c5 612 }\r
613 });\r
614 }\r
4da2e625 615 return jButtonFfsDel;\r
a13899c5 616 }\r
617\r
a13899c5 618 /**\r
619 * This method initializes jScrollPane5 \r
620 * \r
621 * @return javax.swing.JScrollPane \r
622 */\r
4da2e625 623 private JScrollPane getJScrollPaneFfsAttribs() {\r
624 if (jScrollPaneFfsAttribs == null) {\r
625 jScrollPaneFfsAttribs = new JScrollPane();\r
626 jScrollPaneFfsAttribs.setPreferredSize(new java.awt.Dimension(350,100));\r
627 jScrollPaneFfsAttribs.setViewportView(getJTableFfsAttribs());\r
a13899c5 628 }\r
4da2e625 629 return jScrollPaneFfsAttribs;\r
a13899c5 630 }\r
631\r
632 /**\r
633 * This method initializes jTable4 \r
634 * \r
635 * @return javax.swing.JTable \r
636 */\r
4da2e625 637 private JTable getJTableFfsAttribs() {\r
638 if (jTableFfsAttribs == null) {\r
a13899c5 639 ffsAttributesTableModel = new DefaultTableModel();\r
4da2e625 640 jTableFfsAttribs = new JTable(ffsAttributesTableModel);\r
641 jTableFfsAttribs.setPreferredSize(new java.awt.Dimension(400,80));\r
642 jTableFfsAttribs.setRowHeight(20);\r
a13899c5 643 ffsAttributesTableModel.addColumn("Name");\r
644 ffsAttributesTableModel.addColumn("Value");\r
6cba26e8 645 \r
4da2e625 646 jTableFfsAttribs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
647 jTableFfsAttribs.getModel().addTableModelListener(new TableModelListener() {\r
6cba26e8 648 public void tableChanged(TableModelEvent arg0) {\r
649 // TODO Auto-generated method stub\r
650 int row = arg0.getFirstRow();\r
651 TableModel m = (TableModel)arg0.getSource();\r
652 if (arg0.getType() == TableModelEvent.UPDATE){\r
653 //ToDo Data Validition check.\r
654 String name = m.getValueAt(row, 0) + "";\r
655 String value = m.getValueAt(row, 1) + "";\r
656 \r
657 if (name.length() == 0) {\r
658 return;\r
659 }\r
660 if (value.length() == 0){\r
661 return;\r
662 }\r
d6d24759 663 docConsole.setSaved(false);\r
4da2e625 664 ffc.updateBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(), row, name, value);\r
6cba26e8 665 }\r
666 }\r
667 });\r
a13899c5 668 }\r
4da2e625 669 return jTableFfsAttribs;\r
a13899c5 670 }\r
671\r
672 /**\r
673 * This method initializes jPanel19 \r
674 * \r
675 * @return javax.swing.JPanel \r
676 */\r
4da2e625 677 private JPanel getJPanelFfsTabCenterC() {\r
678 if (jPanelFfsTabCenterC == null) {\r
679 jLabelFfsSections = new JLabel();\r
680 jLabelFfsSections.setText("Sections");\r
681 jLabelFfsSubSections = new JLabel();\r
682 jLabelFfsSubSections.setText("Sub-Sections");\r
683 jLabelFfsSection = new JLabel();\r
684 jLabelFfsSection.setText("Section");\r
685 jPanelFfsTabCenterC = new JPanel();\r
686 jPanelFfsTabCenterC.setLayout(new FlowLayout());\r
687 jPanelFfsTabCenterC.add(jLabelFfsSection, null);\r
688 jPanelFfsTabCenterC.add(getJButtonFfsSectionNew(), null);\r
689 jPanelFfsTabCenterC.add(getJButtonFfsSectionRemove(), null);\r
690 jPanelFfsTabCenterC.add(getJScrollPaneFfsSection(), null);\r
691 jPanelFfsTabCenterC.add(jLabelFfsSections, null);\r
692 jPanelFfsTabCenterC.add(getJButtonFfsSectionsNew(), null);\r
693 jPanelFfsTabCenterC.add(getJButtonFfsSectionsRemove(), null);\r
694 jPanelFfsTabCenterC.add(getJScrollPaneFfsSections(), null);\r
695 jPanelFfsTabCenterC.add(jLabelFfsSubSections, null);\r
696 jPanelFfsTabCenterC.add(getJButtonFfsSubSectionNew(), null);\r
697 jPanelFfsTabCenterC.add(getJButtonFfsSubSectionRemove(), null);\r
698 jPanelFfsTabCenterC.add(getJScrollPaneFfsSubSection(), null);\r
699 }\r
700 return jPanelFfsTabCenterC;\r
a13899c5 701 }\r
702\r
703 /**\r
704 * This method initializes jPanel20 \r
705 * \r
706 * @return javax.swing.JPanel \r
707 */\r
4da2e625 708 private JPanel getJPanelOptionsTab() {\r
709 if (jPanelOptionsTab == null) {\r
710 jLabelTagName = new JLabel();\r
711 jLabelTagName.setText("Tag Name");\r
a13899c5 712 FlowLayout flowLayout9 = new FlowLayout();\r
713 flowLayout9.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 714 jLabelBuildTargets = new JLabel();\r
715 jLabelBuildTargets.setText("Build Targets");\r
716 jLabelToolCmd = new JLabel();\r
717 jLabelToolCmd.setText("Tool Command");\r
718 jLabelSupArch = new JLabel();\r
719 jLabelSupArch.setText("Supported Arch");\r
720 jLabelToolChainFamily = new JLabel();\r
721 jLabelToolChainFamily.setText("Tool Chain Family");\r
722 jLabelOptionContents = new JLabel();\r
723 jLabelOptionContents.setText("Option Contents");\r
724 jPanelOptionsTab = new JPanel();\r
725 jPanelOptionsTab.setLayout(flowLayout9);\r
726 jPanelOptionsTab.add(jLabelBuildTargets, null);\r
727 jPanelOptionsTab.add(getJTextFieldBuildTargets(), null);\r
728 jPanelOptionsTab.add(jLabelToolChainFamily, null);\r
729 jPanelOptionsTab.add(getJTextFieldToolChainFamily(), null);\r
730 jPanelOptionsTab.add(jLabelToolCmd, null);\r
731 jPanelOptionsTab.add(getJTextFieldToolCmd(), null);\r
732 jPanelOptionsTab.add(jLabelSupArch, null);\r
733 jPanelOptionsTab.add(getJCheckBoxIA32(), null);\r
734 jPanelOptionsTab.add(getJCheckBoxIpf(), null);\r
735 jPanelOptionsTab.add(getJCheckBoxX64(), null);\r
736 jPanelOptionsTab.add(getJCheckBoxEBC(), null);\r
737 jPanelOptionsTab.add(getJCheckBoxARM(), null);\r
738 jPanelOptionsTab.add(getJCheckBoxPPC(), null);\r
739 jPanelOptionsTab.add(jLabelTagName, null);\r
740 jPanelOptionsTab.add(getJTextFieldTagName(), null);\r
741 jPanelOptionsTab.add(jLabelOptionContents, null);\r
742 jPanelOptionsTab.add(getJTextFieldOptionContents(), null);\r
743 jPanelOptionsTab.add(getJButtonOptionsAdd(), null);\r
744 jPanelOptionsTab.add(getJButtonOptionsDel(), null);\r
745 jPanelOptionsTab.add(getJScrollPaneOptions(), null);\r
746 }\r
747 return jPanelOptionsTab;\r
a13899c5 748 }\r
749\r
750 /**\r
751 * This method initializes jTextField7 \r
752 * \r
753 * @return javax.swing.JTextField \r
754 */\r
4da2e625 755 private JTextField getJTextFieldOptionContents() {\r
756 if (jTextFieldOptionContents == null) {\r
757 jTextFieldOptionContents = new JTextField();\r
758 jTextFieldOptionContents.setPreferredSize(new java.awt.Dimension(300,20));\r
a13899c5 759 }\r
4da2e625 760 return jTextFieldOptionContents;\r
a13899c5 761 }\r
762\r
763 /**\r
764 * This method initializes jTextField8 \r
765 * \r
766 * @return javax.swing.JTextField \r
767 */\r
4da2e625 768 private JTextField getJTextFieldToolCmd() {\r
769 if (jTextFieldToolCmd == null) {\r
770 jTextFieldToolCmd = new JTextField();\r
771 jTextFieldToolCmd.setPreferredSize(new java.awt.Dimension(110,20));\r
a13899c5 772 }\r
4da2e625 773 return jTextFieldToolCmd;\r
a13899c5 774 }\r
775\r
776 /**\r
777 * This method initializes jScrollPane6 \r
778 * \r
779 * @return javax.swing.JScrollPane \r
780 */\r
4da2e625 781 private JScrollPane getJScrollPaneOptions() {\r
782 if (jScrollPaneOptions == null) {\r
783 jScrollPaneOptions = new JScrollPane();\r
784 jScrollPaneOptions.setPreferredSize(new java.awt.Dimension(630,200));\r
785 jScrollPaneOptions.setViewportView(getJTableOptions());\r
a13899c5 786 }\r
4da2e625 787 return jScrollPaneOptions;\r
a13899c5 788 }\r
789\r
790 /**\r
791 * This method initializes jTable5 \r
792 * \r
793 * @return javax.swing.JTable \r
794 */\r
4da2e625 795 private JTable getJTableOptions() {\r
796 if (jTableOptions == null) {\r
a13899c5 797 optionsTableModel = new DefaultTableModel();\r
4da2e625 798 jTableOptions = new JTable(optionsTableModel);\r
799 jTableOptions.setRowHeight(20);\r
a13899c5 800 optionsTableModel.addColumn("BuildTargets");\r
801 optionsTableModel.addColumn("ToolChainFamily");\r
802 optionsTableModel.addColumn("SupportedArch");\r
803 optionsTableModel.addColumn("ToolCommand");\r
804 optionsTableModel.addColumn("TagName");\r
805 optionsTableModel.addColumn("Contents");\r
806 \r
af25df16 807// TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);\r
808// JComboBox cb = new JComboBox();\r
809// cb.addItem("MSFT");\r
810// cb.addItem("GCC");\r
811// cb.addItem("CYGWIN");\r
812// cb.addItem("INTEL");\r
813// toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
d6d24759 814 Vector<String> vArch = new Vector<String>();\r
815 vArch.add("IA32");\r
816 vArch.add("X64");\r
817 vArch.add("IPF");\r
818 vArch.add("EBC");\r
819 vArch.add("ARM");\r
820 vArch.add("PPC");\r
4da2e625 821 jTableOptions.getColumnModel().getColumn(2).setCellEditor(new ListEditor(vArch));\r
822 jTableOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
823 jTableOptions.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 824 public void valueChanged(ListSelectionEvent e) {\r
825 selectedRow = -1;\r
826 if (e.getValueIsAdjusting()){\r
827 return;\r
828 }\r
829 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
830 if (lsm.isSelectionEmpty()) {\r
831 return;\r
832 }\r
833 else{\r
834 selectedRow = lsm.getMinSelectionIndex();\r
835 }\r
836 }\r
837 });\r
838 \r
4da2e625 839 jTableOptions.getModel().addTableModelListener(new TableModelListener() {\r
a13899c5 840 public void tableChanged(TableModelEvent arg0) {\r
841 // TODO Auto-generated method stub\r
842 int row = arg0.getFirstRow();\r
843 TableModel m = (TableModel)arg0.getSource();\r
844 if (arg0.getType() == TableModelEvent.UPDATE){\r
845 //ToDo Data Validition check.\r
1800d80f 846 String targets = m.getValueAt(row, 0) + "";\r
847 Vector<Object> targetName = new Vector<Object>();\r
848 String[] sArray = targets.split("( )+");\r
849 for (int i = 0; i < sArray.length; ++i) {\r
850 targetName.add(sArray[i]);\r
851 }\r
a13899c5 852 String toolChain = m.getValueAt(row, 1) + "";\r
1800d80f 853 String archs = m.getValueAt(row, 2) + "";\r
d6d24759 854 Vector<Object> supArch = null;\r
855 if (archs.length() > 0) {\r
856 supArch = new Vector<Object>();\r
857 String[] sArray1 = archs.split("( )+");\r
858 for (int i = 0; i < sArray1.length; ++i) {\r
859 supArch.add(sArray1[i]);\r
860 }\r
1800d80f 861 }\r
d6d24759 862 \r
a13899c5 863 String toolCmd = m.getValueAt(row, 3) + "";\r
864 String tagName = m.getValueAt(row, 4) + "";\r
865 String contents = m.getValueAt(row, 5) + "";\r
d6d24759 866 docConsole.setSaved(false);\r
a13899c5 867 ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);\r
868 }\r
869 }\r
870 });\r
871 }\r
4da2e625 872 return jTableOptions;\r
a13899c5 873 }\r
874\r
875 /**\r
876 * This method initializes jButton10 \r
877 * \r
878 * @return javax.swing.JButton \r
879 */\r
4da2e625 880 private JButton getJButtonOptionsAdd() {\r
881 if (jButtonOptionsAdd == null) {\r
882 jButtonOptionsAdd = new JButton();\r
883 jButtonOptionsAdd.setText("Add");\r
884 jButtonOptionsAdd.setPreferredSize(new java.awt.Dimension(90,20));\r
885 jButtonOptionsAdd.addActionListener(new AbstractAction() {\r
44053733 886 /**\r
887 * \r
888 */\r
889 private static final long serialVersionUID = 1L;\r
890\r
a13899c5 891 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 892 boolean[] boolArray = {jCheckBoxIA32.isSelected(),jCheckBoxIpf.isSelected(),jCheckBoxX64.isSelected(),\r
893 jCheckBoxEBC.isSelected(),jCheckBoxARM.isSelected(),jCheckBoxPPC.isSelected()};\r
a13899c5 894 String s = boolToList(boolArray);\r
4da2e625 895 Object[] o = {jTextFieldBuildTargets.getText(), jTextFieldToolChainFamily.getText(), s,\r
896 jTextFieldToolCmd.getText(), jTextFieldTagName.getText(), jTextFieldOptionContents.getText()};\r
a13899c5 897 optionsTableModel.addRow(o);\r
d6d24759 898 docConsole.setSaved(false);\r
4da2e625 899 ffc.genBuildOptionsOpt(stringToVector(jTextFieldBuildTargets.getText()), jTextFieldToolChainFamily.getText(), jTextFieldTagName.getText(), jTextFieldToolCmd.getText(), stringToVector(s), jTextFieldOptionContents.getText());\r
a13899c5 900 }\r
901 });\r
902 }\r
4da2e625 903 return jButtonOptionsAdd;\r
a13899c5 904 }\r
905 \r
1800d80f 906 private Vector<Object> stringToVector(String s) {\r
907 String[] sArray = s.split(" ");\r
d6d24759 908 Vector<Object> v = null;\r
909 if (s.length() > 0) {\r
910 v = new Vector<Object>();\r
911 for (int i = 0; i < sArray.length; ++i) {\r
912 v.add(sArray[i]);\r
913 } \r
1800d80f 914 }\r
915 return v;\r
916 }\r
917 \r
a13899c5 918 private String boolToList (boolean[] bool) {\r
919 String s = " ";\r
920 if (bool[0]) {\r
921 s += "IA32 ";\r
922 }\r
923 if (bool[1]) {\r
924 s += "IPF ";\r
925 }\r
926 if (bool[2]) {\r
927 s += "X64 ";\r
928 }\r
929 if (bool[3]) {\r
930 s += "EBC ";\r
931 }\r
932 if (bool[4]) {\r
933 s += "ARM ";\r
934 }\r
935 if (bool[5]) {\r
936 s += "PPC ";\r
937 }\r
1800d80f 938 if (s == " ") {\r
939 s += "IA32";\r
940 }\r
a13899c5 941 return s.trim();\r
942 }\r
943\r
944 /**\r
945 * This method initializes jButton11 \r
946 * \r
947 * @return javax.swing.JButton \r
948 */\r
4da2e625 949 private JButton getJButtonOptionsDel() {\r
950 if (jButtonOptionsDel == null) {\r
951 jButtonOptionsDel = new JButton();\r
952 jButtonOptionsDel.setText("Delete");\r
953 jButtonOptionsDel.setPreferredSize(new java.awt.Dimension(90,20));\r
954 jButtonOptionsDel.addActionListener(new AbstractAction() {\r
44053733 955 /**\r
956 * \r
957 */\r
958 private static final long serialVersionUID = 1L;\r
959\r
a13899c5 960 public void actionPerformed(java.awt.event.ActionEvent e) {\r
961 if (selectedRow >= 0) {\r
962 optionsTableModel.removeRow(selectedRow);\r
d6d24759 963 docConsole.setSaved(false);\r
a13899c5 964 ffc.removeBuildOptionsOpt(selectedRow);\r
965 }\r
966 }\r
967 });\r
968 }\r
4da2e625 969 return jButtonOptionsDel;\r
a13899c5 970 }\r
971\r
a13899c5 972 /**\r
973 * This method initializes jButton17 \r
974 * \r
975 * @return javax.swing.JButton \r
976 */\r
4da2e625 977 private JButton getJButtonFfsAttribNew() {\r
978 if (jButtonFfsAttribNew == null) {\r
979 jButtonFfsAttribNew = new JButton();\r
980 jButtonFfsAttribNew.setPreferredSize(new java.awt.Dimension(80,20));\r
981 jButtonFfsAttribNew.setText("New");\r
982 jButtonFfsAttribNew.addActionListener(new AbstractAction() {\r
44053733 983 /**\r
984 * \r
985 */\r
986 private static final long serialVersionUID = 1L;\r
987\r
a13899c5 988 public void actionPerformed(ActionEvent arg0){\r
4da2e625 989 if (jTableFfs.getSelectedRow() < 0) {\r
6cba26e8 990 return;\r
991 }\r
a13899c5 992 Object[] o = {"", ""};\r
993 ffsAttributesTableModel.addRow(o);\r
d6d24759 994 docConsole.setSaved(false);\r
4da2e625 995 ffc.genBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(), "", "");\r
a13899c5 996 }\r
997 });\r
998 }\r
4da2e625 999 return jButtonFfsAttribNew;\r
a13899c5 1000 }\r
1001\r
1002 /**\r
1003 * This method initializes jButton18 \r
1004 * \r
1005 * @return javax.swing.JButton \r
1006 */\r
4da2e625 1007 private JButton getJButtonFfsAttribRemove() {\r
1008 if (jButtonFfsAttribRemove == null) {\r
1009 jButtonFfsAttribRemove = new JButton();\r
1010 jButtonFfsAttribRemove.setPreferredSize(new java.awt.Dimension(80,20));\r
1011 jButtonFfsAttribRemove.setText("Remove");\r
1012 jButtonFfsAttribRemove.addActionListener(new AbstractAction(){\r
44053733 1013 /**\r
1014 * \r
1015 */\r
1016 private static final long serialVersionUID = 1L;\r
1017\r
a13899c5 1018 public void actionPerformed(ActionEvent arg0){\r
4da2e625 1019 if (jTableFfs.getSelectedRow() < 0) {\r
6cba26e8 1020 return;\r
1021 }\r
4da2e625 1022 if (jTableFfsAttribs.getSelectedRow() >= 0){\r
d6d24759 1023 docConsole.setSaved(false);\r
4da2e625 1024 ffsAttributesTableModel.removeRow(jTableFfsAttribs.getSelectedRow());\r
1025 ffc.removeBuildOptionsFfsAttribute(jTableFfs.getSelectedRow(), jTableFfsAttribs.getSelectedRow());\r
a13899c5 1026 }\r
1027 }\r
1028 });\r
1029 }\r
4da2e625 1030 return jButtonFfsAttribRemove;\r
a13899c5 1031 }\r
1032\r
a13899c5 1033 /**\r
1034 * This method initializes jCheckBox9 \r
1035 * \r
1036 * @return javax.swing.JCheckBox \r
1037 */\r
4da2e625 1038 private JCheckBox getJCheckBoxIA32() {\r
1039 if (jCheckBoxIA32 == null) {\r
1040 jCheckBoxIA32 = new JCheckBox();\r
1041 jCheckBoxIA32.setPreferredSize(new java.awt.Dimension(50,20));\r
1042 jCheckBoxIA32.setText("IA32");\r
a13899c5 1043 }\r
4da2e625 1044 return jCheckBoxIA32;\r
a13899c5 1045 }\r
1046\r
1047 /**\r
1048 * This method initializes jCheckBox10 \r
1049 * \r
1050 * @return javax.swing.JCheckBox \r
1051 */\r
4da2e625 1052 private JCheckBox getJCheckBoxIpf() {\r
1053 if (jCheckBoxIpf == null) {\r
1054 jCheckBoxIpf = new JCheckBox();\r
1055 jCheckBoxIpf.setPreferredSize(new java.awt.Dimension(50,20));\r
1056 jCheckBoxIpf.setText("IPF");\r
a13899c5 1057 }\r
4da2e625 1058 return jCheckBoxIpf;\r
a13899c5 1059 }\r
1060\r
1061 /**\r
1062 * This method initializes jCheckBox11 \r
1063 * \r
1064 * @return javax.swing.JCheckBox \r
1065 */\r
4da2e625 1066 private JCheckBox getJCheckBoxX64() {\r
1067 if (jCheckBoxX64 == null) {\r
1068 jCheckBoxX64 = new JCheckBox();\r
1069 jCheckBoxX64.setText("X64");\r
1070 jCheckBoxX64.setPreferredSize(new java.awt.Dimension(47,20));\r
a13899c5 1071 }\r
4da2e625 1072 return jCheckBoxX64;\r
a13899c5 1073 }\r
1074\r
1075 /**\r
1076 * This method initializes jCheckBox12 \r
1077 * \r
1078 * @return javax.swing.JCheckBox \r
1079 */\r
4da2e625 1080 private JCheckBox getJCheckBoxEBC() {\r
1081 if (jCheckBoxEBC == null) {\r
1082 jCheckBoxEBC = new JCheckBox();\r
1083 jCheckBoxEBC.setPreferredSize(new java.awt.Dimension(50,20));\r
1084 jCheckBoxEBC.setText("EBC");\r
a13899c5 1085 }\r
4da2e625 1086 return jCheckBoxEBC;\r
a13899c5 1087 }\r
1088\r
1089 /**\r
1090 * This method initializes jCheckBox13 \r
1091 * \r
1092 * @return javax.swing.JCheckBox \r
1093 */\r
4da2e625 1094 private JCheckBox getJCheckBoxARM() {\r
1095 if (jCheckBoxARM == null) {\r
1096 jCheckBoxARM = new JCheckBox();\r
1097 jCheckBoxARM.setPreferredSize(new java.awt.Dimension(55,20));\r
1098 jCheckBoxARM.setText("ARM");\r
a13899c5 1099 }\r
4da2e625 1100 return jCheckBoxARM;\r
a13899c5 1101 }\r
1102\r
1103 /**\r
1104 * This method initializes jCheckBox14 \r
1105 * \r
1106 * @return javax.swing.JCheckBox \r
1107 */\r
4da2e625 1108 private JCheckBox getJCheckBoxPPC() {\r
1109 if (jCheckBoxPPC == null) {\r
1110 jCheckBoxPPC = new JCheckBox();\r
1111 jCheckBoxPPC.setPreferredSize(new java.awt.Dimension(50,20));\r
1112 jCheckBoxPPC.setText("PPC");\r
a13899c5 1113 }\r
4da2e625 1114 return jCheckBoxPPC;\r
a13899c5 1115 }\r
1116\r
1117 /**\r
1118 * This method initializes jTextField12 \r
1119 * \r
1120 * @return javax.swing.JTextField \r
1121 */\r
4da2e625 1122 private JTextField getJTextFieldBuildTargets() {\r
1123 if (jTextFieldBuildTargets == null) {\r
1124 jTextFieldBuildTargets = new JTextField();\r
1125 jTextFieldBuildTargets.setPreferredSize(new java.awt.Dimension(150,20));\r
a13899c5 1126 }\r
4da2e625 1127 return jTextFieldBuildTargets;\r
a13899c5 1128 }\r
1129\r
1130 /**\r
1131 * This method initializes jTextField13 \r
1132 * \r
1133 * @return javax.swing.JTextField \r
1134 */\r
4da2e625 1135 private JTextField getJTextFieldTagName() {\r
1136 if (jTextFieldTagName == null) {\r
1137 jTextFieldTagName = new JTextField();\r
1138 jTextFieldTagName.setPreferredSize(new java.awt.Dimension(140,20));\r
a13899c5 1139 }\r
4da2e625 1140 return jTextFieldTagName;\r
a13899c5 1141 }\r
1142\r
44053733 1143 /**\r
1144 * This method initializes jScrollPane \r
1145 * \r
1146 * @return javax.swing.JScrollPane \r
1147 */\r
4da2e625 1148 private JScrollPane getJScrollPaneFfs() {\r
1149 if (jScrollPaneFfs == null) {\r
1150 jScrollPaneFfs = new JScrollPane();\r
1151 jScrollPaneFfs.setPreferredSize(new java.awt.Dimension(150,419));\r
1152 jScrollPaneFfs.setViewportView(getJTableFfs());\r
44053733 1153 }\r
4da2e625 1154 return jScrollPaneFfs;\r
44053733 1155 }\r
1156\r
1157 /**\r
1158 * This method initializes jTable \r
1159 * \r
1160 * @return javax.swing.JTable \r
1161 */\r
4da2e625 1162 private JTable getJTableFfs() {\r
1163 if (jTableFfs == null) {\r
44053733 1164 ffsTableModel = new DefaultTableModel();\r
1165 ffsTableModel.addColumn("FFS Type");\r
4da2e625 1166 jTableFfs = new JTable(ffsTableModel);\r
1167 jTableFfs.setShowGrid(false);\r
1168 jTableFfs.setRowHeight(20);\r
6cba26e8 1169 \r
4da2e625 1170 jTableFfs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1171 jTableFfs.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
6cba26e8 1172 public void valueChanged(ListSelectionEvent e) {\r
1173 \r
1174 if (e.getValueIsAdjusting()){\r
1175 return;\r
1176 }\r
1177 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1178 if (lsm.isSelectionEmpty()) {\r
1179 return;\r
1180 }\r
1181 else{\r
1182 int row = lsm.getMinSelectionIndex();\r
1183 sectionTableModel.setRowCount(0);\r
1184 sectionsTableModel.setRowCount(0);\r
1185 subsectionsTableModel.setRowCount(0);\r
1186 ffsAttributesTableModel.setRowCount(0);\r
1187 String[] sArray = {"", ""};\r
1188 LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
1189 ArrayList<String> alSections = new ArrayList<String>();\r
1190 ArrayList<String> alSection = new ArrayList<String>();\r
1191 ffc.getBuildOptionsFfs(row, sArray, lhm, alSections, alSection);\r
4da2e625 1192 jTextFieldFfsKey.setText(sArray[0]);\r
1193 jTextFieldEncapType.setText(sArray[1]);\r
6cba26e8 1194 for (int i = 0; i < alSection.size(); ++i) {\r
1195 String[] sectionRow = {alSection.get(i)};\r
1196 sectionTableModel.addRow(sectionRow);\r
1197 }\r
1198 for (int j = 0; j < alSections.size(); ++j) {\r
1199 String[] sectionsRow = {alSections.get(j)};\r
1200 sectionsTableModel.addRow(sectionsRow);\r
1201 }\r
1202 if (lhm.size() <= 0 ) {\r
1203 return;\r
1204 }\r
1205 Set<String> keySet = lhm.keySet();\r
1206 Iterator<String> is = keySet.iterator();\r
1207 while(is.hasNext()) {\r
1208 String key = is.next();\r
1209 String[] attribRow = {key, lhm.get(key)};\r
1210 ffsAttributesTableModel.addRow(attribRow);\r
1211 }\r
1212 }\r
1213 }\r
1214 });\r
1215 \r
4da2e625 1216 jTableFfs.getModel().addTableModelListener(new TableModelListener() {\r
6cba26e8 1217 public void tableChanged(TableModelEvent arg0) {\r
1218 // TODO Auto-generated method stub\r
1219 int row = arg0.getFirstRow();\r
1220 TableModel m = (TableModel)arg0.getSource();\r
1221 if (arg0.getType() == TableModelEvent.UPDATE){\r
1222 //ToDo Data Validition check.\r
1223 String id = m.getValueAt(row, 0) + "";\r
1224 \r
1225 if (id.length() == 0) {\r
1226 return;\r
1227 }\r
d6d24759 1228 docConsole.setSaved(false);\r
3b405e9b 1229 ffc.updateBuildOptionsFfsKey(row, id);\r
6cba26e8 1230 }\r
1231 }\r
1232 });\r
44053733 1233 }\r
4da2e625 1234 return jTableFfs;\r
44053733 1235 }\r
1236\r
6cba26e8 1237 /**\r
1238 * This method initializes jScrollPane1 \r
1239 * \r
1240 * @return javax.swing.JScrollPane \r
1241 */\r
4da2e625 1242 private JScrollPane getJScrollPaneFfsSection() {\r
1243 if (jScrollPaneFfsSection == null) {\r
1244 jScrollPaneFfsSection = new JScrollPane();\r
1245 jScrollPaneFfsSection.setPreferredSize(new java.awt.Dimension(500,80));\r
1246 jScrollPaneFfsSection.setViewportView(getJTableFfsSection());\r
6cba26e8 1247 }\r
4da2e625 1248 return jScrollPaneFfsSection;\r
6cba26e8 1249 }\r
1250\r
1251 /**\r
1252 * This method initializes jTable1 \r
1253 * \r
1254 * @return javax.swing.JTable \r
1255 */\r
4da2e625 1256 private JTable getJTableFfsSection() {\r
1257 if (jTableFfsSection == null) {\r
6cba26e8 1258 sectionTableModel = new DefaultTableModel();\r
1259 sectionTableModel.addColumn("SectionType");\r
1260 \r
4da2e625 1261 jTableFfsSection = new JTable(sectionTableModel);\r
1262 jTableFfsSection.setRowHeight(20);\r
3b405e9b 1263 JComboBox cb = new JComboBox();\r
1264 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1265 cb.addItem("EFI_SECTION_VERSION");\r
1266 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1267 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1268 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1269 cb.addItem("EFI_SECTION_PE32");\r
1270 cb.addItem("EFI_SECTION_PIC");\r
1271 cb.addItem("EFI_SECTION_TE");\r
1272 cb.addItem("EFI_SECTION_RAW");\r
1273 cb.addItem("EFI_SECTION_COMPRESSION");\r
1274 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1275 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1276 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
4da2e625 1277 jTableFfsSection.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
3b405e9b 1278 \r
4da2e625 1279 jTableFfsSection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
3b405e9b 1280 \r
4da2e625 1281 jTableFfsSection.getModel().addTableModelListener(new TableModelListener() {\r
3b405e9b 1282 public void tableChanged(TableModelEvent arg0) {\r
1283 // TODO Auto-generated method stub\r
4da2e625 1284 if (jTableFfs.getSelectedRow() < 0) {\r
3b405e9b 1285 return;\r
1286 }\r
1287 int row = arg0.getFirstRow();\r
1288 TableModel m = (TableModel)arg0.getSource();\r
1289 if (arg0.getType() == TableModelEvent.UPDATE){\r
1290 //ToDo Data Validition check.\r
1291 String type = m.getValueAt(row, 0) + "";\r
d6d24759 1292 docConsole.setSaved(false);\r
4da2e625 1293 ffc.updateBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(), row, type);\r
3b405e9b 1294 }\r
1295 }\r
1296 });\r
6cba26e8 1297 }\r
4da2e625 1298 return jTableFfsSection;\r
6cba26e8 1299 }\r
1300\r
1301 /**\r
1302 * This method initializes jScrollPane3 \r
1303 * \r
1304 * @return javax.swing.JScrollPane \r
1305 */\r
4da2e625 1306 private JScrollPane getJScrollPaneFfsSubSection() {\r
1307 if (jScrollPaneFfsSubSection == null) {\r
1308 jScrollPaneFfsSubSection = new JScrollPane();\r
1309 jScrollPaneFfsSubSection.setPreferredSize(new java.awt.Dimension(500,90));\r
1310 jScrollPaneFfsSubSection.setViewportView(getJTableFfsSubSection());\r
6cba26e8 1311 }\r
4da2e625 1312 return jScrollPaneFfsSubSection;\r
6cba26e8 1313 }\r
1314\r
1315 /**\r
1316 * This method initializes jTable3 \r
1317 * \r
1318 * @return javax.swing.JTable \r
1319 */\r
4da2e625 1320 private JTable getJTableFfsSubSection() {\r
1321 if (jTableFfsSubSection == null) {\r
6cba26e8 1322 subsectionsTableModel = new DefaultTableModel();\r
1323 subsectionsTableModel.addColumn("SectionType");\r
4da2e625 1324 jTableFfsSubSection = new JTable(subsectionsTableModel);\r
1325 jTableFfsSubSection.setRowHeight(20);\r
3b405e9b 1326 JComboBox cb = new JComboBox();\r
1327 cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
1328 cb.addItem("EFI_SECTION_VERSION");\r
1329 cb.addItem("EFI_SECTION_USER_INTERFACE");\r
1330 cb.addItem("EFI_SECTION_DXE_DEPEX");\r
1331 cb.addItem("EFI_SECTION_PEI_DEPEX");\r
1332 cb.addItem("EFI_SECTION_PE32");\r
1333 cb.addItem("EFI_SECTION_PIC");\r
1334 cb.addItem("EFI_SECTION_TE");\r
1335 cb.addItem("EFI_SECTION_RAW");\r
1336 cb.addItem("EFI_SECTION_COMPRESSION");\r
1337 cb.addItem("EFI_SECTION_GUID_DEFINED");\r
1338 cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
1339 cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
4da2e625 1340 jTableFfsSubSection.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
1341 jTableFfsSubSection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
3b405e9b 1342 \r
4da2e625 1343 jTableFfsSubSection.getModel().addTableModelListener(new TableModelListener() {\r
3b405e9b 1344 public void tableChanged(TableModelEvent arg0) {\r
1345 // TODO Auto-generated method stub\r
4da2e625 1346 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
3b405e9b 1347 return;\r
1348 }\r
1349 int row = arg0.getFirstRow();\r
1350 TableModel m = (TableModel)arg0.getSource();\r
1351 if (arg0.getType() == TableModelEvent.UPDATE){\r
1352 //ToDo Data Validition check.\r
1353 String type = m.getValueAt(row, 0) + "";\r
d6d24759 1354 docConsole.setSaved(false);\r
4da2e625 1355 ffc.updateBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(), jTableFfsSections.getSelectedRow(), row, type);\r
3b405e9b 1356 }\r
1357 }\r
1358 });\r
6cba26e8 1359 }\r
4da2e625 1360 return jTableFfsSubSection;\r
6cba26e8 1361 }\r
1362\r
1363 /**\r
1364 * This method initializes jTextField \r
1365 * \r
1366 * @return javax.swing.JTextField \r
1367 */\r
4da2e625 1368 private JTextField getJTextFieldEncapType() {\r
1369 if (jTextFieldEncapType == null) {\r
1370 jTextFieldEncapType = new JTextField();\r
1371 jTextFieldEncapType.setPreferredSize(new java.awt.Dimension(100,20));\r
1372 jTextFieldEncapType.addFocusListener(new java.awt.event.FocusAdapter() {\r
3b405e9b 1373 public void focusLost(java.awt.event.FocusEvent e) {\r
4da2e625 1374 if (jTableFfs.getSelectedRow() < 0) {\r
3b405e9b 1375 return;\r
1376 }\r
4da2e625 1377 ffc.updateBuildOptionsFfsSectionsType(jTableFfs.getSelectedRow(), jTextFieldEncapType.getText());\r
3b405e9b 1378 }\r
1379 });\r
6cba26e8 1380 }\r
4da2e625 1381 return jTextFieldEncapType;\r
6cba26e8 1382 }\r
1383\r
1384 /**\r
1385 * This method initializes jPanel4 \r
1386 * \r
1387 * @return javax.swing.JPanel \r
1388 */\r
4da2e625 1389 private JPanel getJPanelFfsAttribButtonGroup() {\r
1390 if (jPanelFfsAttribButtonGroup == null) {\r
1391 jPanelFfsAttribButtonGroup = new JPanel();\r
1392 jPanelFfsAttribButtonGroup.setPreferredSize(new java.awt.Dimension(100,100));\r
1393 jPanelFfsAttribButtonGroup.add(getJButtonFfsAttribNew(), null);\r
1394 jPanelFfsAttribButtonGroup.add(getJButtonFfsAttribRemove(), null);\r
6cba26e8 1395 }\r
4da2e625 1396 return jPanelFfsAttribButtonGroup;\r
6cba26e8 1397 }\r
1398\r
1399 /**\r
1400 * This method initializes jButton \r
1401 * \r
1402 * @return javax.swing.JButton \r
1403 */\r
4da2e625 1404 private JButton getJButtonFfsSectionNew() {\r
1405 if (jButtonFfsSectionNew == null) {\r
1406 jButtonFfsSectionNew = new JButton();\r
1407 jButtonFfsSectionNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1408 jButtonFfsSectionNew.setText("New");\r
1409 jButtonFfsSectionNew.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1410 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1411 if (jTableFfs.getSelectedRow() < 0) {\r
3b405e9b 1412 return;\r
1413 }\r
d6d24759 1414 docConsole.setSaved(false);\r
3b405e9b 1415 String[] row = {"EFI_SECTION_RAW"};\r
1416 sectionTableModel.addRow(row);\r
4da2e625 1417 ffc.genBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(), row[0]);\r
3b405e9b 1418 }\r
1419 });\r
6cba26e8 1420 }\r
4da2e625 1421 return jButtonFfsSectionNew;\r
6cba26e8 1422 }\r
1423\r
1424 /**\r
1425 * This method initializes jButton1 \r
1426 * \r
1427 * @return javax.swing.JButton \r
1428 */\r
4da2e625 1429 private JButton getJButtonFfsSectionRemove() {\r
1430 if (jButtonFfsSectionRemove == null) {\r
1431 jButtonFfsSectionRemove = new JButton();\r
1432 jButtonFfsSectionRemove.setPreferredSize(new java.awt.Dimension(80,20));\r
1433 jButtonFfsSectionRemove.setText("Remove");\r
3b405e9b 1434 \r
4da2e625 1435 jButtonFfsSectionRemove.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1436 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1437 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSection.getSelectedRow() < 0) {\r
3b405e9b 1438 return;\r
1439 }\r
d6d24759 1440 docConsole.setSaved(false);\r
4da2e625 1441 sectionTableModel.removeRow(jTableFfsSection.getSelectedRow());\r
1442 ffc.removeBuildOptionsFfsSectionsSection(jTableFfs.getSelectedRow(), jTableFfsSection.getSelectedRow());\r
3b405e9b 1443 }\r
1444 });\r
6cba26e8 1445 }\r
4da2e625 1446 return jButtonFfsSectionRemove;\r
6cba26e8 1447 }\r
1448\r
1449 /**\r
1450 * This method initializes jButton2 \r
1451 * \r
1452 * @return javax.swing.JButton \r
1453 */\r
4da2e625 1454 private JButton getJButtonFfsSubSectionNew() {\r
1455 if (jButtonFfsSubSectionNew == null) {\r
1456 jButtonFfsSubSectionNew = new JButton();\r
1457 jButtonFfsSubSectionNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1458 jButtonFfsSubSectionNew.setText("New");\r
1459 jButtonFfsSubSectionNew.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1460 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1461 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
3b405e9b 1462 return;\r
1463 }\r
d6d24759 1464 docConsole.setSaved(false);\r
3b405e9b 1465 String[] row = {"EFI_SECTION_RAW"};\r
1466 subsectionsTableModel.addRow(row);\r
4da2e625 1467 ffc.genBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(), jTableFfsSections.getSelectedRow(), row[0]);\r
3b405e9b 1468 \r
1469 }\r
1470 });\r
6cba26e8 1471 }\r
4da2e625 1472 return jButtonFfsSubSectionNew;\r
6cba26e8 1473 }\r
1474\r
1475 /**\r
1476 * This method initializes jButton3 \r
1477 * \r
1478 * @return javax.swing.JButton \r
1479 */\r
4da2e625 1480 private JButton getJButtonFfsSubSectionRemove() {\r
1481 if (jButtonFfsSubSectionRemove == null) {\r
1482 jButtonFfsSubSectionRemove = new JButton();\r
1483 jButtonFfsSubSectionRemove.setPreferredSize(new java.awt.Dimension(80,20));\r
1484 jButtonFfsSubSectionRemove.setText("Remove");\r
1485 jButtonFfsSubSectionRemove.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1486 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1487 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0 || jTableFfsSubSection.getSelectedRow() < 0) {\r
3b405e9b 1488 return;\r
1489 }\r
d6d24759 1490 docConsole.setSaved(false);\r
4da2e625 1491 subsectionsTableModel.removeRow(jTableFfsSubSection.getSelectedRow());\r
1492 ffc.removeBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(), jTableFfsSections.getSelectedRow(), jTableFfsSubSection.getSelectedRow());\r
3b405e9b 1493 }\r
1494 });\r
6cba26e8 1495 }\r
4da2e625 1496 return jButtonFfsSubSectionRemove;\r
6cba26e8 1497 }\r
1498\r
1499 /**\r
1500 * This method initializes jButton6 \r
1501 * \r
1502 * @return javax.swing.JButton \r
1503 */\r
4da2e625 1504 private JButton getJButtonFfsSectionsNew() {\r
1505 if (jButtonFfsSectionsNew == null) {\r
1506 jButtonFfsSectionsNew = new JButton();\r
1507 jButtonFfsSectionsNew.setPreferredSize(new java.awt.Dimension(80,20));\r
1508 jButtonFfsSectionsNew.setText("New");\r
1509 jButtonFfsSectionsNew.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1510 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1511 if (jTableFfs.getSelectedRow() < 0) {\r
3b405e9b 1512 return;\r
1513 }\r
d6d24759 1514 docConsole.setSaved(false);\r
3b405e9b 1515 String[] row = {""};\r
1516 sectionsTableModel.addRow(row);\r
4da2e625 1517 ffc.genBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(), "");\r
3b405e9b 1518 }\r
1519 });\r
6cba26e8 1520 }\r
4da2e625 1521 return jButtonFfsSectionsNew;\r
6cba26e8 1522 }\r
1523\r
1524 /**\r
1525 * This method initializes jButton7 \r
1526 * \r
1527 * @return javax.swing.JButton \r
1528 */\r
4da2e625 1529 private JButton getJButtonFfsSectionsRemove() {\r
1530 if (jButtonFfsSectionsRemove == null) {\r
1531 jButtonFfsSectionsRemove = new JButton();\r
1532 jButtonFfsSectionsRemove.setPreferredSize(new java.awt.Dimension(80,20));\r
1533 jButtonFfsSectionsRemove.setText("Remove");\r
1534 jButtonFfsSectionsRemove.addActionListener(new java.awt.event.ActionListener() {\r
3b405e9b 1535 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 1536 if (jTableFfs.getSelectedRow() < 0 || jTableFfsSections.getSelectedRow() < 0) {\r
3b405e9b 1537 return;\r
1538 }\r
d6d24759 1539 docConsole.setSaved(false);\r
4da2e625 1540 sectionsTableModel.removeRow(jTableFfsSections.getSelectedRow());\r
1541 ffc.removeBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(), jTableFfsSections.getSelectedRow());\r
3b405e9b 1542 }\r
1543 });\r
6cba26e8 1544 }\r
4da2e625 1545 return jButtonFfsSectionsRemove;\r
6cba26e8 1546 }\r
1547\r
1548 /**\r
1549 * This method initializes jScrollPane4 \r
1550 * \r
1551 * @return javax.swing.JScrollPane \r
1552 */\r
4da2e625 1553 private JScrollPane getJScrollPaneFfsSections() {\r
1554 if (jScrollPaneFfsSections == null) {\r
1555 jScrollPaneFfsSections = new JScrollPane();\r
1556 jScrollPaneFfsSections.setPreferredSize(new java.awt.Dimension(500,80));\r
1557 jScrollPaneFfsSections.setViewportView(getJTableFfsSections());\r
6cba26e8 1558 }\r
4da2e625 1559 return jScrollPaneFfsSections;\r
6cba26e8 1560 }\r
1561\r
1562 /**\r
1563 * This method initializes jTable6 \r
1564 * \r
1565 * @return javax.swing.JTable \r
1566 */\r
4da2e625 1567 private JTable getJTableFfsSections() {\r
1568 if (jTableFfsSections == null) {\r
6cba26e8 1569 sectionsTableModel = new DefaultTableModel();\r
1570 sectionsTableModel.addColumn("EncapsulationType");\r
4da2e625 1571 jTableFfsSections = new JTable(sectionsTableModel);\r
1572 jTableFfsSections.setRowHeight(20);\r
1573 jTableFfsSections.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
1574 jTableFfsSections.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
6cba26e8 1575 public void valueChanged(ListSelectionEvent e) {\r
1576 if (e.getValueIsAdjusting()){\r
1577 return;\r
1578 }\r
1579 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
1580 if (lsm.isSelectionEmpty()) {\r
1581 return;\r
1582 }\r
1583 else{\r
1584 int sectionsRow = lsm.getMinSelectionIndex();\r
4da2e625 1585 if (jTableFfs.getSelectedRow() < 0) {\r
6cba26e8 1586 return;\r
1587 }\r
1588 subsectionsTableModel.setRowCount(0);\r
1589 ArrayList<String> al = new ArrayList<String>();\r
4da2e625 1590 ffc.getBuildOptionsFfsSectionsSectionsSection(jTableFfs.getSelectedRow(), sectionsRow, al);\r
6cba26e8 1591 for (int i = 0; i < al.size(); ++i) {\r
1592 String[] subsectionRow = {al.get(i)};\r
1593 subsectionsTableModel.addRow(subsectionRow);\r
1594 }\r
1595 }\r
1596 }\r
1597 });\r
1598 \r
4da2e625 1599 jTableFfsSections.getModel().addTableModelListener(new TableModelListener() {\r
6cba26e8 1600 public void tableChanged(TableModelEvent arg0) {\r
1601 // TODO Auto-generated method stub\r
1602 int row = arg0.getFirstRow();\r
1603 TableModel m = (TableModel)arg0.getSource();\r
1604 if (arg0.getType() == TableModelEvent.UPDATE){\r
1605 //ToDo Data Validition check.\r
3b405e9b 1606 String encapType = m.getValueAt(row, 0) + "";\r
d6d24759 1607 docConsole.setSaved(false);\r
4da2e625 1608 ffc.updateBuildOptionsFfsSectionsSections(jTableFfs.getSelectedRow(), row, encapType);\r
6cba26e8 1609 }\r
1610 }\r
1611 });\r
1612 }\r
4da2e625 1613 return jTableFfsSections;\r
6cba26e8 1614 }\r
1615\r
af25df16 1616 /**\r
1617 * This method initializes jButton12 \r
1618 * \r
1619 * @return javax.swing.JButton \r
1620 */\r
4da2e625 1621 private JButton getJButtonAntTaskFileBrowse() {\r
1622 if (jButtonAntTaskFileBrowse == null) {\r
1623 jButtonAntTaskFileBrowse = new JButton();\r
1624 jButtonAntTaskFileBrowse.setPreferredSize(new Dimension(90, 20));\r
1625 jButtonAntTaskFileBrowse.setText("Browse");\r
1626 jButtonAntTaskFileBrowse.addActionListener(new AbstractAction() {\r
af25df16 1627 private static final long serialVersionUID = 1L;\r
1628\r
1629 public void actionPerformed(ActionEvent arg0) {\r
1630 //\r
1631 // Select files from current workspace\r
1632 //\r
1633 String dirPrefix = System.getenv("WORKSPACE");\r
1634 JFileChooser chooser = new JFileChooser(dirPrefix);\r
1635 File theFile = null;\r
1636 String headerDest = null;\r
1637 \r
1638 chooser.setMultiSelectionEnabled(false);\r
1639 chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);\r
1640 int retval = chooser.showOpenDialog(frame);\r
1641 if (retval == JFileChooser.APPROVE_OPTION) {\r
1642\r
1643 theFile = chooser.getSelectedFile();\r
1644 String file = theFile.getPath();\r
1645 if (!file.startsWith(dirPrefix)) {\r
1646 JOptionPane.showMessageDialog(frame, "You can only select files in current package!");\r
1647 return;\r
1648 }\r
1649 }\r
1650 else {\r
1651 return;\r
1652 }\r
1653 \r
1654 headerDest = theFile.getPath();\r
4da2e625 1655 jTextFieldAntTaskFile.setText(headerDest.substring(dirPrefix.length()).replace('\\', '/'));\r
af25df16 1656 \r
1657 }\r
1658\r
1659 });\r
1660 }\r
4da2e625 1661 return jButtonAntTaskFileBrowse;\r
af25df16 1662 }\r
1663\r
1664 /**\r
1665 * This method initializes jTextField1 \r
1666 * \r
1667 * @return javax.swing.JTextField \r
1668 */\r
4da2e625 1669 private JTextField getJTextFieldToolChainFamily() {\r
1670 if (jTextFieldToolChainFamily == null) {\r
1671 jTextFieldToolChainFamily = new JTextField();\r
1672 jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(85,20));\r
af25df16 1673 }\r
4da2e625 1674 return jTextFieldToolChainFamily;\r
af25df16 1675 }\r
1676\r
a13899c5 1677 /**\r
1678 * @param args\r
1679 */\r
1680 public static void main(String[] args) {\r
1681 // TODO Auto-generated method stub\r
1682 new FpdBuildOptions().setVisible(true);\r
1683 }\r
1684\r
1685 /**\r
1686 * This is the default constructor\r
1687 */\r
1688 public FpdBuildOptions() {\r
1689 super();\r
1690 initialize();\r
1691 this.setVisible(true);\r
1692 }\r
1693 \r
1694 public FpdBuildOptions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
1695 this();\r
1696 ffc = new FpdFileContents(fpd);\r
1697 init(ffc);\r
1698 }\r
d6d24759 1699 \r
1700 public FpdBuildOptions(OpeningPlatformType opt) {\r
1701 this(opt.getXmlFpd());\r
1702 docConsole = opt;\r
1703 }\r
a13899c5 1704\r
1705 private void init(FpdFileContents ffc) {\r
1706 initOptionTable();\r
1707 initAntTaskTable();\r
6cba26e8 1708 initFfsTable();\r
44053733 1709 this.addInternalFrameListener(new InternalFrameAdapter(){\r
1710 public void internalFrameDeactivated(InternalFrameEvent e){\r
4da2e625 1711 if (jTableFfs.isEditing()) {\r
1712 jTableFfs.getCellEditor().stopCellEditing();\r
44053733 1713 }\r
4da2e625 1714 if (jTableFfsSection.isEditing()) {\r
1715 jTableFfsSection.getCellEditor().stopCellEditing();\r
6cba26e8 1716 }\r
4da2e625 1717 if (jTableAntTasks.isEditing()) {\r
1718 jTableAntTasks.getCellEditor().stopCellEditing();\r
44053733 1719 }\r
4da2e625 1720 if (jTableFfsSubSection.isEditing()) {\r
1721 jTableFfsSubSection.getCellEditor().stopCellEditing();\r
6cba26e8 1722 }\r
4da2e625 1723 if (jTableFfsAttribs.isEditing()) {\r
1724 jTableFfsAttribs.getCellEditor().stopCellEditing();\r
44053733 1725 }\r
4da2e625 1726 if (jTableOptions.isEditing()) {\r
1727 jTableOptions.getCellEditor().stopCellEditing();\r
44053733 1728 }\r
1729 }\r
1730 });\r
a13899c5 1731 }\r
1732 \r
1733 private void initOptionTable() {\r
1734 if (ffc.getBuildOptionsOptCount() == 0) {\r
1735 //ToDo get default options from *.txt file\r
1736 return;\r
1737 }\r
1738 String[][] saa = new String[ffc.getBuildOptionsOptCount()][6];\r
1739 ffc.getBuildOptionsOpts(saa);\r
1740 for (int i = 0; i < saa.length; ++i) {\r
1741 optionsTableModel.addRow(saa[i]);\r
1742 }\r
1743 }\r
1744 \r
1745 private void initAntTaskTable() {\r
1746 if (ffc.getBuildOptionsUserDefAntTaskCount() == 0) {\r
1747 return;\r
1748 }\r
1749 String[][] saa = new String[ffc.getBuildOptionsUserDefAntTaskCount()][3];\r
1750 ffc.getBuildOptionsUserDefAntTasks(saa);\r
1751 for (int i = 0; i < saa.length; ++i) {\r
1752 antTaskTableModel.addRow(saa[i]);\r
1753 }\r
1754 }\r
6cba26e8 1755 \r
1756 private void initFfsTable(){\r
1757 int ffsCount = ffc.getBuildOptionsFfsCount();\r
1758 if (ffsCount < 0) {\r
1759 return;\r
1760 }\r
1761 String[][] saa = new String[ffsCount][1];\r
1762 ffc.getBuildOptionsFfsKey(saa);\r
1763 for (int i = 0; i < saa.length; ++i) {\r
1764 ffsTableModel.addRow(saa[i]);\r
1765 }\r
1766 }\r
a13899c5 1767 /**\r
1768 * This method initializes this\r
1769 * \r
1770 * @return void\r
1771 */\r
1772 private void initialize() {\r
6cba26e8 1773 this.setSize(722, 577);\r
a13899c5 1774 this.setTitle("FPD Build Options");\r
1775 this.setContentPane(getJContentPane());\r
1776 }\r
1777\r
1778 /**\r
1779 * This method initializes jContentPane\r
1780 * \r
1781 * @return javax.swing.JPanel\r
1782 */\r
1783 private JPanel getJContentPane() {\r
1784 if (jContentPane == null) {\r
1785 jContentPane = new JPanel();\r
1786 jContentPane.setLayout(new BorderLayout());\r
4da2e625 1787 jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
1788 jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
1789 jContentPane.add(getJPanelContentWest(), java.awt.BorderLayout.WEST);\r
1790 jContentPane.add(getJPanelContentEast(), java.awt.BorderLayout.EAST);\r
a13899c5 1791 jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
1792 }\r
1793 return jContentPane;\r
1794 }\r
1795\r
1796} // @jve:decl-index=0:visual-constraint="10,10"\r