2 Java class SpdLibClassDecls is GUI for create library definition elements of spd file.
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 package org
.tianocore
.frameworkwizard
.packaging
.ui
;
15 import java
.awt
.Dimension
;
16 import java
.awt
.event
.ActionEvent
;
17 import java
.awt
.event
.ComponentEvent
;
19 import java
.util
.Vector
;
21 import javax
.swing
.AbstractAction
;
22 import javax
.swing
.JFileChooser
;
23 import javax
.swing
.JOptionPane
;
24 import javax
.swing
.JPanel
;
25 import javax
.swing
.JRadioButton
;
26 import javax
.swing
.JTable
;
27 import javax
.swing
.JTextField
;
28 import javax
.swing
.JComboBox
;
29 import javax
.swing
.JLabel
;
30 import javax
.swing
.JScrollPane
;
31 import javax
.swing
.JButton
;
32 import javax
.swing
.JFrame
;
33 import javax
.swing
.ListSelectionModel
;
34 import javax
.swing
.event
.InternalFrameAdapter
;
35 import javax
.swing
.event
.InternalFrameEvent
;
36 import javax
.swing
.event
.ListSelectionEvent
;
37 import javax
.swing
.event
.ListSelectionListener
;
38 import javax
.swing
.event
.TableModelEvent
;
39 import javax
.swing
.event
.TableModelListener
;
40 import javax
.swing
.table
.DefaultTableModel
;
41 import javax
.swing
.table
.TableModel
;
43 import org
.tianocore
.PackageSurfaceAreaDocument
;
44 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
45 import org
.tianocore
.frameworkwizard
.common
.Tools
;
46 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
47 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
48 import org
.tianocore
.frameworkwizard
.common
.ui
.iCheckBoxList
.ICheckBoxList
;
49 import org
.tianocore
.frameworkwizard
.platform
.ui
.ListEditor
;
51 import javax
.swing
.JCheckBox
;
54 GUI for create library definition elements of spd file.
56 @since PackageEditor 1.0
58 public class SpdLibClassDecls
extends IInternalFrame
implements TableModelListener
{
62 private static final long serialVersionUID
= 1L;
66 private JTable jTable
= null;
68 private DefaultTableModel model
= null;
70 private JPanel jContentPane
= null;
72 private JRadioButton jRadioButtonAdd
= null;
74 private JRadioButton jRadioButtonSelect
= null;
76 private JTextField jTextFieldAdd
= null;
78 private JComboBox jComboBoxSelect
= null;
80 private JScrollPane jScrollPane
= null;
82 private JButton jButtonAdd
= null;
84 private JButton jButtonRemove
= null;
86 private JButton jButtonClearAll
= null;
88 private JButton jButtonOk
= null;
90 private JLabel jLabel
= null;
92 private JTextField jTextField
= null;
94 private JButton jButtonBrowse
= null;
96 private StarLabel jStarLabel1
= null;
98 private StarLabel jStarLabel2
= null;
100 private SpdFileContents sfc
= null;
102 private JLabel jLabel1
= null;
104 private JScrollPane topScrollPane
= null; // @jve:decl-index=0:visual-constraint="10,53"
106 private int selectedRow
= -1;
108 private StarLabel starLabel
= null;
110 private JLabel jLabel2
= null;
112 private JTextField jTextFieldHelp
= null;
114 private JLabel jLabel3
= null;
116 private JTextField jTextField1
= null;
118 private JLabel jLabel4
= null;
120 private JTextField jTextField2
= null;
122 private JLabel jLabel5
= null;
124 private JCheckBox jCheckBox
= null;
126 private JCheckBox jCheckBox1
= null;
128 private JCheckBox jCheckBox2
= null;
130 private JCheckBox jCheckBox3
= null;
132 private JLabel jLabel6
= null;
134 private JScrollPane jScrollPaneArch
= null;
136 private ICheckBoxList iCheckBoxListArch
= null;
138 private JCheckBox jCheckBox4
= null;
140 private JCheckBox jCheckBox5
= null;
143 This method initializes this
146 private void initialize() {
148 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
153 This method initializes jRadioButtonAdd
155 @return javax.swing.JRadioButton
157 private JRadioButton
getJRadioButtonAdd() {
158 if (jRadioButtonAdd
== null) {
159 jRadioButtonAdd
= new JRadioButton();
160 jRadioButtonAdd
.setBounds(new java
.awt
.Rectangle(9,63,197,20));
161 jRadioButtonAdd
.setText("Library Class Name");
162 jRadioButtonAdd
.addActionListener(this);
163 jRadioButtonAdd
.setSelected(true);
164 jRadioButtonAdd
.setVisible(false);
166 return jRadioButtonAdd
;
170 This method initializes jRadioButtonSelect
172 @return javax.swing.JRadioButton
174 private JRadioButton
getJRadioButtonSelect() {
175 if (jRadioButtonSelect
== null) {
176 jRadioButtonSelect
= new JRadioButton();
177 jRadioButtonSelect
.setBounds(new java
.awt
.Rectangle(9,10,198,20));
178 jRadioButtonSelect
.setText("Select Existing Library Class");
179 jRadioButtonSelect
.addActionListener(this);
180 jRadioButtonSelect
.setSelected(true);
181 jRadioButtonSelect
.setVisible(false);
183 return jRadioButtonSelect
;
187 This method initializes jTextFieldAdd
189 @return javax.swing.JTextField
191 private JTextField
getJTextFieldAdd() {
192 if (jTextFieldAdd
== null) {
193 jTextFieldAdd
= new JTextField();
194 jTextFieldAdd
.setBounds(new java
.awt
.Rectangle(122,6,390,20));
195 jTextFieldAdd
.setPreferredSize(new java
.awt
.Dimension(260,20));
196 jTextFieldAdd
.setEnabled(true);
198 return jTextFieldAdd
;
202 This method initializes jComboBoxSelect
204 @return javax.swing.JComboBox
206 private JComboBox
getJComboBoxSelect() {
207 if (jComboBoxSelect
== null) {
208 jComboBoxSelect
= new JComboBox();
209 jComboBoxSelect
.setBounds(new java
.awt
.Rectangle(220, 10, 260, 20));
210 jComboBoxSelect
.setPreferredSize(new java
.awt
.Dimension(260,22));
211 jComboBoxSelect
.setEnabled(true);
212 jComboBoxSelect
.setVisible(false);
214 return jComboBoxSelect
;
218 This method initializes jScrollPane
220 @return javax.swing.JScrollPane
222 private JScrollPane
getJScrollPane() {
223 if (jScrollPane
== null) {
224 jScrollPane
= new JScrollPane();
225 jScrollPane
.setBounds(new java
.awt
.Rectangle(12,351,608,139));
226 jScrollPane
.setPreferredSize(new java
.awt
.Dimension(330,150));
227 jScrollPane
.setViewportView(getJTable());
233 This method initializes jTable
235 @return javax.swing.JTable
237 private JTable
getJTable() {
238 if (jTable
== null) {
239 model
= new DefaultTableModel();
240 jTable
= new JTable(model
);
241 jTable
.setRowHeight(20);
242 jTable
.setAutoResizeMode(javax
.swing
.JTable
.AUTO_RESIZE_OFF
);
243 model
.addColumn("LibraryClass");
244 model
.addColumn("IncludeHeader");
245 model
.addColumn("HelpText");
246 model
.addColumn("RecommendedInstance");
247 model
.addColumn("InstanceVersion");
248 model
.addColumn("SupportedArch");
249 model
.addColumn("SupportedModule");
251 Vector
<String
> vArch
= new Vector
<String
>();
258 jTable
.getColumnModel().getColumn(5).setCellEditor(new ListEditor(vArch
));
260 Vector
<String
> vModule
= new Vector
<String
>();
263 vModule
.add("PEI_CORE");
265 vModule
.add("DXE_CORE");
266 vModule
.add("DXE_DRIVER");
267 vModule
.add("DXE_RUNTIME_DRIVER");
268 vModule
.add("DXE_SAL_DRIVER");
269 vModule
.add("DXE_SMM_DRIVER");
270 vModule
.add("UEFI_DRIVER");
271 vModule
.add("UEFI_APPLICATION");
272 vModule
.add("USER_DEFINED");
273 jTable
.getColumnModel().getColumn(6).setCellEditor(new ListEditor(vModule
));
275 jTable
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
276 jTable
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
277 public void valueChanged(ListSelectionEvent e
) {
278 if (e
.getValueIsAdjusting()){
281 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
282 if (lsm
.isSelectionEmpty()) {
286 selectedRow
= lsm
.getMinSelectionIndex();
291 jTable
.getModel().addTableModelListener(this);
298 public void tableChanged(TableModelEvent arg0
) {
299 // TODO Auto-generated method stub
300 int row
= arg0
.getFirstRow();
301 TableModel m
= (TableModel
)arg0
.getSource();
302 if (arg0
.getType() == TableModelEvent
.UPDATE
){
303 String lib
= m
.getValueAt(row
, 0) + "";
304 String hdr
= m
.getValueAt(row
, 1) + "";
305 String hlp
= m
.getValueAt(row
, 2) + "";
306 String guid
= m
.getValueAt(row
, 3) + "";
307 String ver
= m
.getValueAt(row
, 4) + "";
309 if (m
.getValueAt(row
, 5) != null) {
310 arch
= m
.getValueAt(row
, 5).toString();
312 String module
= null;
313 if (m
.getValueAt(row
, 6) != null) {
314 module
= m
.getValueAt(row
, 6).toString();
316 String
[] rowData
= {lib
, hdr
, hlp
};
317 if (!dataValidation(rowData
)) {
320 sfc
.updateSpdLibClass(row
, lib
, hdr
, hlp
, guid
, ver
, arch
, module
);
325 This method initializes jButtonAdd
327 @return javax.swing.JButton
329 private JButton
getJButtonAdd() {
330 if (jButtonAdd
== null) {
331 jButtonAdd
= new JButton();
332 jButtonAdd
.setText("Add");
333 jButtonAdd
.setSize(new java
.awt
.Dimension(80,20));
334 jButtonAdd
.setLocation(new java
.awt
.Point(365,315));
335 jButtonAdd
.addActionListener(this);
341 This method initializes jButtonRemove
343 @return javax.swing.JButton
345 private JButton
getJButtonRemove() {
346 if (jButtonRemove
== null) {
347 jButtonRemove
= new JButton();
348 jButtonRemove
.setText("Remove");
349 jButtonRemove
.setSize(new java
.awt
.Dimension(80,20));
350 jButtonRemove
.setLocation(new java
.awt
.Point(449,315));
351 jButtonRemove
.addActionListener(this);
353 return jButtonRemove
;
357 This method initializes jButtonRemoveAll
359 @return javax.swing.JButton
361 private JButton
getJButtonClearAll() {
362 if (jButtonClearAll
== null) {
363 jButtonClearAll
= new JButton();
364 jButtonClearAll
.setText("Clear All");
365 jButtonClearAll
.setSize(new java
.awt
.Dimension(86,20));
366 jButtonClearAll
.setLocation(new java
.awt
.Point(536,315));
367 jButtonClearAll
.addActionListener(this);
369 return jButtonClearAll
;
373 This method initializes jButton
375 @return javax.swing.JButton
377 private JButton
getJButtonOk() {
378 if (jButtonOk
== null) {
379 jButtonOk
= new JButton();
380 jButtonOk
.setSize(new java
.awt
.Dimension(90, 20));
381 jButtonOk
.setText("OK");
382 jButtonOk
.setLocation(new java
.awt
.Point(290, 305));
383 jButtonOk
.setVisible(false);
384 jButtonOk
.addActionListener(this);
390 This is the default constructor
392 public SpdLibClassDecls() {
399 public SpdLibClassDecls(PackageSurfaceAreaDocument
.PackageSurfaceArea inPsa
){
401 sfc
= new SpdFileContents(inPsa
);
405 This method initializes this
409 private void init() {
411 this.setContentPane(getJContentPane());
412 this.setTitle("Library Class Declarations");
413 this.setBounds(new java
.awt
.Rectangle(0, 0, 500, 370));
414 this.setVisible(true);
415 this.addInternalFrameListener(new InternalFrameAdapter(){
416 public void internalFrameDeactivated(InternalFrameEvent e
){
417 if (jTable
.isEditing()) {
418 jTable
.getCellEditor().stopCellEditing();
425 private void init(SpdFileContents sfc
) {
426 if (sfc
.getSpdLibClassDeclarationCount() == 0) {
430 // initialize table using SpdFileContents object
432 String
[][] saa
= new String
[sfc
.getSpdLibClassDeclarationCount()][7];
433 sfc
.getSpdLibClassDeclarations(saa
);
435 while (i
< saa
.length
) {
436 model
.addRow(saa
[i
]);
440 private JScrollPane
getJContentPane(){
441 if (topScrollPane
== null){
442 topScrollPane
= new JScrollPane();
443 topScrollPane
.setSize(new java
.awt
.Dimension(634,500));
444 topScrollPane
.setViewportView(getJContentPane1());
446 return topScrollPane
;
449 This method initializes jContentPane
451 @return javax.swing.JPanel
453 private JPanel
getJContentPane1() {
454 if (jContentPane
== null) {
455 jLabel6
= new JLabel();
456 jLabel6
.setBounds(new java
.awt
.Rectangle(16,252,108,16));
457 jLabel6
.setText("Supported Module");
458 jLabel6
.setEnabled(true);
459 jLabel5
= new JLabel();
460 jLabel5
.setBounds(new java
.awt
.Rectangle(16,215,93,16));
461 jLabel5
.setText("Supported Arch");
462 jLabel5
.setEnabled(true);
463 jLabel4
= new JLabel();
464 jLabel4
.setBounds(new java
.awt
.Rectangle(16,138,196,16));
465 jLabel4
.setEnabled(true);
466 jLabel4
.setText("Recommended Instance Version");
467 jLabel3
= new JLabel();
468 jLabel3
.setBounds(new java
.awt
.Rectangle(17,112,195,16));
469 jLabel3
.setEnabled(true);
470 jLabel3
.setText("Recommended Instance GUID");
471 jLabel2
= new JLabel();
472 jLabel2
.setBounds(new java
.awt
.Rectangle(16,33,82,20));
473 jLabel2
.setText("Help Text");
474 starLabel
= new StarLabel();
475 starLabel
.setBounds(new java
.awt
.Rectangle(1,33,10,20));
476 jLabel1
= new JLabel();
477 jLabel1
.setBounds(new java
.awt
.Rectangle(16,6,82,20));
478 jLabel1
.setText("Library Class");
479 jStarLabel1
= new StarLabel();
480 jStarLabel1
.setLocation(new java
.awt
.Point(1,7));
481 jStarLabel2
= new StarLabel();
482 jStarLabel2
.setLocation(new java
.awt
.Point(-1,74));
483 jLabel
= new JLabel();
484 jLabel
.setBounds(new java
.awt
.Rectangle(14,74,199,22));
485 jLabel
.setText("Include Header for Specified Class");
487 jContentPane
= new JPanel();
488 jContentPane
.setPreferredSize(new Dimension(480, 400));
489 jContentPane
.setLayout(null);
490 jContentPane
.add(jLabel
, null);
491 jContentPane
.add(jStarLabel1
, null);
492 jContentPane
.add(jStarLabel2
, null);
493 jContentPane
.add(getJRadioButtonAdd(), null);
494 jContentPane
.add(getJRadioButtonSelect(), null);
495 jContentPane
.add(getJTextFieldAdd(), null);
496 jContentPane
.add(getJComboBoxSelect(), null);
497 jContentPane
.add(getJScrollPane(), null);
498 jContentPane
.add(getJButtonAdd(), null);
499 jContentPane
.add(getJButtonRemove(), null);
500 jContentPane
.add(getJButtonClearAll(), null);
501 jContentPane
.add(getJButtonOk(), null);
503 jContentPane
.add(getJTextField(), null);
504 jContentPane
.add(getJButtonBrowse(), null);
505 jContentPane
.add(jLabel1
, null);
506 jContentPane
.add(starLabel
, null);
507 jContentPane
.add(jLabel2
, null);
508 jContentPane
.add(getJTextFieldHelp(), null);
509 jContentPane
.add(jLabel3
, null);
510 jContentPane
.add(getJTextField1(), null);
511 jContentPane
.add(jLabel4
, null);
512 jContentPane
.add(getJTextField2(), null);
513 jContentPane
.add(jLabel5
, null);
514 jContentPane
.add(getJCheckBox(), null);
515 jContentPane
.add(getJCheckBox1(), null);
516 jContentPane
.add(getJCheckBox2(), null);
517 jContentPane
.add(getJCheckBox3(), null);
518 jContentPane
.add(jLabel6
, null);
520 jContentPane
.add(getJScrollPaneArch(), null);
521 jContentPane
.add(getJCheckBox4(), null);
522 jContentPane
.add(getJCheckBox5(), null);
529 fill ComboBoxes with pre-defined contents
531 private void initFrame() {
532 jComboBoxSelect
.addItem("BaseCpuICacheFlush");
533 jComboBoxSelect
.addItem("BaseDebugLibNull");
534 jComboBoxSelect
.addItem("BaseDebugLibReportStatusCode");
535 jComboBoxSelect
.addItem("BaseIoLibIntrinsic");
536 jComboBoxSelect
.addItem("BaseLib");
537 jComboBoxSelect
.addItem("BaseMemoryLib");
538 jComboBoxSelect
.addItem("BaseMemoryLibMmx");
539 jComboBoxSelect
.addItem("BaseMemoryLibSse2");
540 jComboBoxSelect
.addItem("BasePeCoffGetEntryPointLib");
541 jComboBoxSelect
.addItem("BasePeCoffLib");
542 jComboBoxSelect
.addItem("BasePrintLib");
543 jComboBoxSelect
.addItem("BaseReportStatusCodeLibNull");
544 jComboBoxSelect
.addItem("CommonPciCf8Lib");
545 jComboBoxSelect
.addItem("CommonPciExpressLib");
546 jComboBoxSelect
.addItem("CommonPciLibCf8");
547 jComboBoxSelect
.addItem("CommonPciLibPciExpress");
548 jComboBoxSelect
.addItem("DxeCoreEntryPoint");
549 jComboBoxSelect
.addItem("DxeHobLib");
550 jComboBoxSelect
.addItem("DxeIoLibCpuIo");
551 jComboBoxSelect
.addItem("DxeLib");
552 jComboBoxSelect
.addItem("DxePcdLib");
553 jComboBoxSelect
.addItem("DxeReportStatusCodeLib");
554 jComboBoxSelect
.addItem("DxeServicesTableLib");
555 jComboBoxSelect
.addItem("PeiCoreEntryPoint");
556 jComboBoxSelect
.addItem("PeiMemoryLib");
557 jComboBoxSelect
.addItem("PeimEntryPoint");
558 jComboBoxSelect
.addItem("PeiReportStatusCodeLib");
559 jComboBoxSelect
.addItem("PeiServicesTablePointerLib");
560 jComboBoxSelect
.addItem("PeiServicesTablePointerLibMm7");
561 jComboBoxSelect
.addItem("UefiDebugLibConOut");
562 jComboBoxSelect
.addItem("UefiDebugLibStdErr");
563 jComboBoxSelect
.addItem("UefiDriverEntryPointMultiple");
564 jComboBoxSelect
.addItem("UefiDriverEntryPointSingle");
565 jComboBoxSelect
.addItem("UefiDriverEntryPointSingleUnload");
566 jComboBoxSelect
.addItem("UefiDriverModelLib");
567 jComboBoxSelect
.addItem("UefiDriverModelLibNoConfigNoDiag");
568 jComboBoxSelect
.addItem("UefiLib");
569 jComboBoxSelect
.addItem("UefiMemoryLib");
574 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
576 public void actionPerformed(ActionEvent arg0
) {
577 if (arg0
.getSource() == jButtonOk
) {
583 if (arg0
.getSource() == jButtonAdd
) {
585 //ToDo: check before add
586 String
[] row
= {null, null, null, jTextField1
.getText(), jTextField2
.getText(), null, null};
587 row
[0] = jTextFieldAdd
.getText();
588 row
[1] = jTextField
.getText().replace('\\', '/');
589 row
[2] = jTextFieldHelp
.getText();
590 row
[5] = booleanToString(jCheckBox
.isSelected(), jCheckBox1
.isSelected(), jCheckBox2
.isSelected(), jCheckBox3
.isSelected(), jCheckBox4
.isSelected(), jCheckBox5
.isSelected());
591 if (row
[5].length() == 0){
594 row
[6] = vectorToString(iCheckBoxListArch
.getAllCheckedItemsString());
595 if (row
[6].length() == 0){
598 if (!dataValidation(row
)) {
602 sfc
.genSpdLibClassDeclarations(row
[0], row
[3], row
[1], row
[2], row
[5], null, null, row
[4], null, row
[6]);
606 // remove selected line
608 if (arg0
.getSource() == jButtonRemove
) {
609 if (jTable
.isEditing()){
610 jTable
.getCellEditor().stopCellEditing();
612 int rowSelected
= selectedRow
;
613 if (rowSelected
>= 0) {
614 model
.removeRow(rowSelected
);
615 sfc
.removeSpdLibClass(rowSelected
);
619 if (arg0
.getSource() == jButtonClearAll
) {
620 if (model
.getRowCount() == 0) {
624 model
.setRowCount(0);
625 sfc
.removeSpdLibClass();
628 if (arg0
.getSource() == jRadioButtonAdd
) {
629 if (jRadioButtonAdd
.isSelected()) {
630 jRadioButtonSelect
.setSelected(false);
631 jTextFieldAdd
.setEnabled(true);
632 jComboBoxSelect
.setEnabled(false);
634 if (!jRadioButtonSelect
.isSelected() && !jRadioButtonAdd
.isSelected()) {
635 jRadioButtonAdd
.setSelected(true);
636 jTextFieldAdd
.setEnabled(true);
637 jComboBoxSelect
.setEnabled(false);
641 if (arg0
.getSource() == jRadioButtonSelect
) {
642 if (jRadioButtonSelect
.isSelected()) {
643 jRadioButtonAdd
.setSelected(false);
644 jTextFieldAdd
.setEnabled(false);
645 jComboBoxSelect
.setEnabled(true);
647 if (!jRadioButtonSelect
.isSelected() && !jRadioButtonAdd
.isSelected()) {
648 jRadioButtonSelect
.setSelected(true);
649 jTextFieldAdd
.setEnabled(false);
650 jComboBoxSelect
.setEnabled(true);
655 private boolean dataValidation(String
[] row
) {
656 if (!DataValidation
.isKeywordType(row
[0])) {
657 JOptionPane
.showMessageDialog(frame
, "Library Class is NOT KeyWord Type.");
660 if (!DataValidation
.isPathAndFilename(row
[1])) {
661 JOptionPane
.showMessageDialog(frame
, "Include Header is NOT PathAndFilename Type.");
663 if (row
[2].length() == 0) {
664 JOptionPane
.showMessageDialog(frame
, "HelpText could NOT be empty.");
669 Add contents in list to sfc
671 protected void save() {
676 This method initializes jTextField
678 @return javax.swing.JTextField
680 private JTextField
getJTextField() {
681 if (jTextField
== null) {
682 jTextField
= new JTextField();
683 jTextField
.setBounds(new java
.awt
.Rectangle(221,75,290,21));
684 jTextField
.setPreferredSize(new java
.awt
.Dimension(260,20));
690 This method initializes jButtonBrowse
692 @return javax.swing.JButton
694 private JButton
getJButtonBrowse() {
695 if (jButtonBrowse
== null) {
696 jButtonBrowse
= new JButton();
697 jButtonBrowse
.setBounds(new java
.awt
.Rectangle(528,75,90,20));
698 jButtonBrowse
.setText("Browse");
699 jButtonBrowse
.setPreferredSize(new java
.awt
.Dimension(80,20));
700 jButtonBrowse
.addActionListener(new AbstractAction() {
705 private static final long serialVersionUID
= 1L;
707 public void actionPerformed(ActionEvent arg0
) {
709 // Select files from current pkg
711 String dirPrefix
= Tools
.dirForNewSpd
.substring(0, Tools
.dirForNewSpd
.lastIndexOf(File
.separator
));
712 JFileChooser chooser
= new JFileChooser(dirPrefix
);
714 String headerDest
= null;
716 chooser
.setMultiSelectionEnabled(false);
717 chooser
.setFileSelectionMode(JFileChooser
.FILES_AND_DIRECTORIES
);
718 int retval
= chooser
.showOpenDialog(frame
);
719 if (retval
== JFileChooser
.APPROVE_OPTION
) {
721 theFile
= chooser
.getSelectedFile();
722 String file
= theFile
.getPath();
723 if (!file
.startsWith(dirPrefix
)) {
724 JOptionPane
.showMessageDialog(frame
, "You can only select files in current package!");
734 headerDest
= theFile
.getPath();
735 int fileIndex
= headerDest
.indexOf(System
.getProperty("file.separator"), dirPrefix
.length());
737 jTextField
.setText(headerDest
.substring(fileIndex
+ 1).replace('\\', '/'));
743 return jButtonBrowse
;
746 public void componentResized(ComponentEvent arg0
) {
747 int intPreferredWidth
= 500;
749 resizeComponentWidth(this.jTextFieldAdd
, this.getWidth(), intPreferredWidth
);
750 resizeComponentWidth(this.jTextFieldHelp
, this.getWidth(), intPreferredWidth
);
751 resizeComponentWidth(this.jScrollPane
, this.getWidth(), intPreferredWidth
);
755 * This method initializes jTextFieldHelp
757 * @return javax.swing.JTextField
759 private JTextField
getJTextFieldHelp() {
760 if (jTextFieldHelp
== null) {
761 jTextFieldHelp
= new JTextField();
762 jTextFieldHelp
.setBounds(new java
.awt
.Rectangle(122,33,390,20));
763 jTextFieldHelp
.setPreferredSize(new java
.awt
.Dimension(260,20));
765 return jTextFieldHelp
;
769 * This method initializes jTextField1
771 * @return javax.swing.JTextField
773 private JTextField
getJTextField1() {
774 if (jTextField1
== null) {
775 jTextField1
= new JTextField();
776 jTextField1
.setBounds(new java
.awt
.Rectangle(220,110,291,20));
777 jTextField1
.setEnabled(true);
783 * This method initializes jTextField2
785 * @return javax.swing.JTextField
787 private JTextField
getJTextField2() {
788 if (jTextField2
== null) {
789 jTextField2
= new JTextField();
790 jTextField2
.setBounds(new java
.awt
.Rectangle(218,135,292,20));
791 jTextField2
.setEnabled(true);
797 * This method initializes jCheckBox
799 * @return javax.swing.JCheckBox
801 private JCheckBox
getJCheckBox() {
802 if (jCheckBox
== null) {
803 jCheckBox
= new JCheckBox();
804 jCheckBox
.setBounds(new java
.awt
.Rectangle(123,213,57,21));
805 jCheckBox
.setText("IA32");
806 jCheckBox
.setPreferredSize(new java
.awt
.Dimension(21,20));
812 * This method initializes jCheckBox1
814 * @return javax.swing.JCheckBox
816 private JCheckBox
getJCheckBox1() {
817 if (jCheckBox1
== null) {
818 jCheckBox1
= new JCheckBox();
819 jCheckBox1
.setBounds(new java
.awt
.Rectangle(182,213,49,20));
820 jCheckBox1
.setText("X64");
821 jCheckBox1
.setPreferredSize(new java
.awt
.Dimension(21,20));
827 * This method initializes jCheckBox2
829 * @return javax.swing.JCheckBox
831 private JCheckBox
getJCheckBox2() {
832 if (jCheckBox2
== null) {
833 jCheckBox2
= new JCheckBox();
834 jCheckBox2
.setText("IPF");
835 jCheckBox2
.setSize(new java
.awt
.Dimension(50,20));
836 jCheckBox2
.setLocation(new java
.awt
.Point(237,213));
837 jCheckBox2
.setPreferredSize(new java
.awt
.Dimension(21,20));
843 * This method initializes jCheckBox3
845 * @return javax.swing.JCheckBox
847 private JCheckBox
getJCheckBox3() {
848 if (jCheckBox3
== null) {
849 jCheckBox3
= new JCheckBox();
850 jCheckBox3
.setBounds(new java
.awt
.Rectangle(286,213,50,20));
851 jCheckBox3
.setText("EBC");
852 jCheckBox3
.setPreferredSize(new java
.awt
.Dimension(21,20));
857 private JScrollPane
getJScrollPaneArch() {
858 if (jScrollPaneArch
== null) {
859 jScrollPaneArch
= new JScrollPane();
860 jScrollPaneArch
.setBounds(new java
.awt
.Rectangle(130,252,230,88));
861 jScrollPaneArch
.setPreferredSize(new java
.awt
.Dimension(320, 80));
862 jScrollPaneArch
.setViewportView(getICheckBoxListSupportedArchitectures());
864 return jScrollPaneArch
;
867 private ICheckBoxList
getICheckBoxListSupportedArchitectures() {
868 if (iCheckBoxListArch
== null) {
869 iCheckBoxListArch
= new ICheckBoxList();
870 Vector
<String
> v
= new Vector
<String
>();
877 v
.add("DXE_RUNTIME_DRIVER");
878 v
.add("DXE_SAL_DRIVER");
879 v
.add("DXE_SMM_DRIVER");
880 v
.add("UEFI_DRIVER");
881 v
.add("UEFI_APPLICATION");
882 v
.add("USER_DEFINED");
883 iCheckBoxListArch
.setAllItems(v
);
885 return iCheckBoxListArch
;
888 private String
booleanToString(boolean b1
, boolean b2
, boolean b3
, boolean b4
, boolean b5
, boolean b6
){
911 private String
vectorToString(Vector
<String
> v
) {
913 for (int i
= 0; i
< v
.size(); ++i
) {
920 * This method initializes jCheckBox4
922 * @return javax.swing.JCheckBox
924 private JCheckBox
getJCheckBox4() {
925 if (jCheckBox4
== null) {
926 jCheckBox4
= new JCheckBox();
927 jCheckBox4
.setBounds(new java
.awt
.Rectangle(343,213,60,20));
928 jCheckBox4
.setText("ARM");
929 jCheckBox4
.setPreferredSize(new Dimension(60, 20));
935 * This method initializes jCheckBox5
937 * @return javax.swing.JCheckBox
939 private JCheckBox
getJCheckBox5() {
940 if (jCheckBox5
== null) {
941 jCheckBox5
= new JCheckBox();
942 jCheckBox5
.setBounds(new java
.awt
.Rectangle(400,213,60,20));
943 jCheckBox5
.setText("PPC");
944 jCheckBox5
.setPreferredSize(new Dimension(60, 20));
949 public static void main(String
[] args
){
950 new SpdLibClassDecls().setVisible(true);