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
.BorderLayout
;
16 import java
.awt
.Dimension
;
17 import java
.awt
.Toolkit
;
18 import java
.awt
.event
.ActionEvent
;
19 import java
.awt
.event
.ActionListener
;
20 import java
.awt
.event
.ComponentEvent
;
21 import java
.awt
.event
.FocusAdapter
;
22 import java
.awt
.event
.FocusEvent
;
23 import java
.awt
.event
.FocusListener
;
25 import java
.util
.Vector
;
27 import javax
.swing
.AbstractAction
;
28 import javax
.swing
.DefaultListModel
;
29 import javax
.swing
.JFileChooser
;
30 import javax
.swing
.JOptionPane
;
31 import javax
.swing
.JPanel
;
32 import javax
.swing
.JRadioButton
;
33 import javax
.swing
.JTable
;
34 import javax
.swing
.JTextField
;
35 import javax
.swing
.JComboBox
;
36 import javax
.swing
.JLabel
;
37 import javax
.swing
.JList
;
38 import javax
.swing
.JScrollPane
;
39 import javax
.swing
.JButton
;
40 import javax
.swing
.JFrame
;
41 import javax
.swing
.ListSelectionModel
;
42 import javax
.swing
.event
.InternalFrameAdapter
;
43 import javax
.swing
.event
.InternalFrameEvent
;
44 import javax
.swing
.event
.ListSelectionEvent
;
45 import javax
.swing
.event
.ListSelectionListener
;
46 import javax
.swing
.event
.TableModelEvent
;
47 import javax
.swing
.event
.TableModelListener
;
48 import javax
.swing
.table
.DefaultTableModel
;
49 import javax
.swing
.table
.TableModel
;
51 import org
.tianocore
.PackageSurfaceAreaDocument
;
52 import org
.tianocore
.frameworkwizard
.common
.DataType
;
53 import org
.tianocore
.frameworkwizard
.common
.Tools
;
54 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
55 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
56 import org
.tianocore
.frameworkwizard
.common
.ui
.iCheckBoxList
.ICheckBoxList
;
58 import javax
.swing
.JCheckBox
;
61 GUI for create library definition elements of spd file.
63 @since PackageEditor 1.0
65 public class SpdLibClassDecls
extends IInternalFrame
implements TableModelListener
{
68 private JTable jTable
= null;
70 private DefaultTableModel model
= null;
72 private JPanel jContentPane
= null;
74 private JRadioButton jRadioButtonAdd
= null;
76 private JRadioButton jRadioButtonSelect
= null;
78 private JTextField jTextFieldAdd
= null;
80 private JComboBox jComboBoxSelect
= null;
82 private JScrollPane jScrollPane
= null;
84 private JButton jButtonAdd
= null;
86 private JButton jButtonRemove
= null;
88 private JButton jButtonClearAll
= null;
90 private JButton jButtonCancel
= null;
92 private JButton jButtonOk
= null;
94 private JLabel jLabel
= null;
96 private JTextField jTextField
= null;
98 private JButton jButtonBrowse
= null;
100 private StarLabel jStarLabel1
= null;
102 private StarLabel jStarLabel2
= null;
104 private SpdFileContents sfc
= null;
106 private JLabel jLabel1
= null;
108 private JScrollPane topScrollPane
= null; // @jve:decl-index=0:visual-constraint="10,53"
110 private int selectedRow
= -1;
112 private StarLabel starLabel
= null;
114 private JLabel jLabel2
= null;
116 private JTextField jTextFieldHelp
= null;
118 private JLabel jLabel3
= null;
120 private JTextField jTextField1
= null;
122 private JLabel jLabel4
= null;
124 private JTextField jTextField2
= null;
126 private JLabel jLabel5
= null;
128 private JCheckBox jCheckBox
= null;
130 private JCheckBox jCheckBox1
= null;
132 private JCheckBox jCheckBox2
= null;
134 private JCheckBox jCheckBox3
= null;
136 private JLabel jLabel6
= null;
138 private JScrollPane jScrollPaneArch
= null;
140 private ICheckBoxList iCheckBoxListArch
= 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,343,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,302,351,164));
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 jTable
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
252 jTable
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
253 public void valueChanged(ListSelectionEvent e
) {
254 if (e
.getValueIsAdjusting()){
257 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
258 if (lsm
.isSelectionEmpty()) {
262 selectedRow
= lsm
.getMinSelectionIndex();
267 jTable
.getModel().addTableModelListener(this);
274 public void tableChanged(TableModelEvent arg0
) {
275 // TODO Auto-generated method stub
276 int row
= arg0
.getFirstRow();
277 TableModel m
= (TableModel
)arg0
.getSource();
278 if (arg0
.getType() == TableModelEvent
.UPDATE
){
279 String lib
= m
.getValueAt(row
, 0) + "";
280 String hdr
= m
.getValueAt(row
, 1) + "";
281 String hlp
= m
.getValueAt(row
, 2) + "";
282 String guid
= m
.getValueAt(row
, 3) + "";
283 String ver
= m
.getValueAt(row
, 4) + "";
285 if (m
.getValueAt(row
, 5) != null) {
286 arch
= m
.getValueAt(row
, 5).toString();
288 String module
= null;
289 if (m
.getValueAt(row
, 6) != null) {
290 module
= m
.getValueAt(row
, 6).toString();
292 sfc
.updateSpdLibClass(row
, lib
, hdr
, hlp
, guid
, ver
, arch
, module
);
297 This method initializes jButtonAdd
299 @return javax.swing.JButton
301 private JButton
getJButtonAdd() {
302 if (jButtonAdd
== null) {
303 jButtonAdd
= new JButton();
304 jButtonAdd
.setBounds(new java
.awt
.Rectangle(374,303,90,20));
305 jButtonAdd
.setText("Add");
306 jButtonAdd
.addActionListener(this);
312 This method initializes jButtonRemove
314 @return javax.swing.JButton
316 private JButton
getJButtonRemove() {
317 if (jButtonRemove
== null) {
318 jButtonRemove
= new JButton();
319 jButtonRemove
.setBounds(new java
.awt
.Rectangle(374,381,90,20));
320 jButtonRemove
.setText("Remove");
321 jButtonRemove
.addActionListener(this);
323 return jButtonRemove
;
327 This method initializes jButtonRemoveAll
329 @return javax.swing.JButton
331 private JButton
getJButtonClearAll() {
332 if (jButtonClearAll
== null) {
333 jButtonClearAll
= new JButton();
334 jButtonClearAll
.setBounds(new java
.awt
.Rectangle(374,411,90,20));
335 jButtonClearAll
.setText("Clear All");
336 jButtonClearAll
.addActionListener(this);
338 return jButtonClearAll
;
342 This method initializes jButtonCancel
344 @return javax.swing.JButton
346 private JButton
getJButtonCancel() {
347 if (jButtonCancel
== null) {
348 jButtonCancel
= new JButton();
349 jButtonCancel
.setPreferredSize(new java
.awt
.Dimension(90, 20));
350 jButtonCancel
.setLocation(new java
.awt
.Point(390, 305));
351 jButtonCancel
.setText("Cancel");
352 jButtonCancel
.setSize(new java
.awt
.Dimension(90, 20));
353 jButtonCancel
.setVisible(false);
354 jButtonCancel
.addActionListener(this);
356 return jButtonCancel
;
360 This method initializes jButton
362 @return javax.swing.JButton
364 private JButton
getJButtonOk() {
365 if (jButtonOk
== null) {
366 jButtonOk
= new JButton();
367 jButtonOk
.setSize(new java
.awt
.Dimension(90, 20));
368 jButtonOk
.setText("OK");
369 jButtonOk
.setLocation(new java
.awt
.Point(290, 305));
370 jButtonOk
.setVisible(false);
371 jButtonOk
.addActionListener(this);
377 This is the default constructor
379 public SpdLibClassDecls() {
386 public SpdLibClassDecls(PackageSurfaceAreaDocument
.PackageSurfaceArea inPsa
){
388 sfc
= new SpdFileContents(inPsa
);
392 This method initializes this
396 private void init() {
398 this.setContentPane(getJContentPane());
399 this.setTitle("Library Class Declarations");
400 this.setBounds(new java
.awt
.Rectangle(0, 0, 500, 370));
401 this.setVisible(true);
402 this.addInternalFrameListener(new InternalFrameAdapter(){
403 public void internalFrameDeactivated(InternalFrameEvent e
){
404 if (jTable
.isEditing()) {
405 jTable
.getCellEditor().stopCellEditing();
412 private void init(SpdFileContents sfc
) {
413 if (sfc
.getSpdLibClassDeclarationCount() == 0) {
417 // initialize table using SpdFileContents object
419 String
[][] saa
= new String
[sfc
.getSpdLibClassDeclarationCount()][7];
420 sfc
.getSpdLibClassDeclarations(saa
);
422 while (i
< saa
.length
) {
423 model
.addRow(saa
[i
]);
427 private JScrollPane
getJContentPane(){
428 if (topScrollPane
== null){
429 topScrollPane
= new JScrollPane();
430 topScrollPane
.setSize(new java
.awt
.Dimension(483,500));
431 topScrollPane
.setViewportView(getJContentPane1());
433 return topScrollPane
;
436 This method initializes jContentPane
438 @return javax.swing.JPanel
440 private JPanel
getJContentPane1() {
441 if (jContentPane
== null) {
442 jLabel6
= new JLabel();
443 jLabel6
.setBounds(new java
.awt
.Rectangle(16,252,108,16));
444 jLabel6
.setText("Supported Module");
445 jLabel6
.setEnabled(true);
446 jLabel5
= new JLabel();
447 jLabel5
.setBounds(new java
.awt
.Rectangle(16,215,93,16));
448 jLabel5
.setText("Supported Arch");
449 jLabel5
.setEnabled(true);
450 jLabel4
= new JLabel();
451 jLabel4
.setBounds(new java
.awt
.Rectangle(16,160,196,16));
452 jLabel4
.setEnabled(true);
453 jLabel4
.setText("Recommended Instance Version");
454 jLabel3
= new JLabel();
455 jLabel3
.setBounds(new java
.awt
.Rectangle(17,112,175,16));
456 jLabel3
.setEnabled(true);
457 jLabel3
.setText("Recommended Instance GUID");
458 jLabel2
= new JLabel();
459 jLabel2
.setBounds(new java
.awt
.Rectangle(16,33,82,20));
460 jLabel2
.setText("Help Text");
461 starLabel
= new StarLabel();
462 starLabel
.setBounds(new java
.awt
.Rectangle(1,33,10,20));
463 jLabel1
= new JLabel();
464 jLabel1
.setBounds(new java
.awt
.Rectangle(16,6,82,20));
465 jLabel1
.setText("Library Class");
466 jStarLabel1
= new StarLabel();
467 jStarLabel1
.setLocation(new java
.awt
.Point(1,7));
468 jStarLabel2
= new StarLabel();
469 jStarLabel2
.setLocation(new java
.awt
.Point(1,56));
470 jLabel
= new JLabel();
471 jLabel
.setBounds(new java
.awt
.Rectangle(16,56,199,22));
472 jLabel
.setText("Include Header for Specified Class");
474 jContentPane
= new JPanel();
475 jContentPane
.setPreferredSize(new Dimension(480, 400));
476 jContentPane
.setLayout(null);
477 jContentPane
.add(jLabel
, null);
478 jContentPane
.add(jStarLabel1
, null);
479 jContentPane
.add(jStarLabel2
, null);
480 jContentPane
.add(getJRadioButtonAdd(), null);
481 jContentPane
.add(getJRadioButtonSelect(), null);
482 jContentPane
.add(getJTextFieldAdd(), null);
483 jContentPane
.add(getJComboBoxSelect(), null);
484 jContentPane
.add(getJScrollPane(), null);
485 jContentPane
.add(getJButtonAdd(), null);
486 jContentPane
.add(getJButtonRemove(), null);
487 jContentPane
.add(getJButtonClearAll(), null);
488 jContentPane
.add(getJButtonCancel(), null);
489 jContentPane
.add(getJButtonOk(), null);
491 jContentPane
.add(getJTextField(), null);
492 jContentPane
.add(getJButtonBrowse(), null);
493 jContentPane
.add(jLabel1
, null);
494 jContentPane
.add(starLabel
, null);
495 jContentPane
.add(jLabel2
, null);
496 jContentPane
.add(getJTextFieldHelp(), null);
497 jContentPane
.add(jLabel3
, null);
498 jContentPane
.add(getJTextField1(), null);
499 jContentPane
.add(jLabel4
, null);
500 jContentPane
.add(getJTextField2(), null);
501 jContentPane
.add(jLabel5
, null);
502 jContentPane
.add(getJCheckBox(), null);
503 jContentPane
.add(getJCheckBox1(), null);
504 jContentPane
.add(getJCheckBox2(), null);
505 jContentPane
.add(getJCheckBox3(), null);
506 jContentPane
.add(jLabel6
, null);
508 jContentPane
.add(getJScrollPaneArch(), null);
515 fill ComboBoxes with pre-defined contents
517 private void initFrame() {
518 jComboBoxSelect
.addItem("BaseCpuICacheFlush");
519 jComboBoxSelect
.addItem("BaseDebugLibNull");
520 jComboBoxSelect
.addItem("BaseDebugLibReportStatusCode");
521 jComboBoxSelect
.addItem("BaseIoLibIntrinsic");
522 jComboBoxSelect
.addItem("BaseLib");
523 jComboBoxSelect
.addItem("BaseMemoryLib");
524 jComboBoxSelect
.addItem("BaseMemoryLibMmx");
525 jComboBoxSelect
.addItem("BaseMemoryLibSse2");
526 jComboBoxSelect
.addItem("BasePeCoffGetEntryPointLib");
527 jComboBoxSelect
.addItem("BasePeCoffLib");
528 jComboBoxSelect
.addItem("BasePrintLib");
529 jComboBoxSelect
.addItem("BaseReportStatusCodeLibNull");
530 jComboBoxSelect
.addItem("CommonPciCf8Lib");
531 jComboBoxSelect
.addItem("CommonPciExpressLib");
532 jComboBoxSelect
.addItem("CommonPciLibCf8");
533 jComboBoxSelect
.addItem("CommonPciLibPciExpress");
534 jComboBoxSelect
.addItem("DxeCoreEntryPoint");
535 jComboBoxSelect
.addItem("DxeHobLib");
536 jComboBoxSelect
.addItem("DxeIoLibCpuIo");
537 jComboBoxSelect
.addItem("DxeLib");
538 jComboBoxSelect
.addItem("DxePcdLib");
539 jComboBoxSelect
.addItem("DxeReportStatusCodeLib");
540 jComboBoxSelect
.addItem("DxeServicesTableLib");
541 jComboBoxSelect
.addItem("PeiCoreEntryPoint");
542 jComboBoxSelect
.addItem("PeiMemoryLib");
543 jComboBoxSelect
.addItem("PeimEntryPoint");
544 jComboBoxSelect
.addItem("PeiReportStatusCodeLib");
545 jComboBoxSelect
.addItem("PeiServicesTablePointerLib");
546 jComboBoxSelect
.addItem("PeiServicesTablePointerLibMm7");
547 jComboBoxSelect
.addItem("UefiDebugLibConOut");
548 jComboBoxSelect
.addItem("UefiDebugLibStdErr");
549 jComboBoxSelect
.addItem("UefiDriverEntryPointMultiple");
550 jComboBoxSelect
.addItem("UefiDriverEntryPointSingle");
551 jComboBoxSelect
.addItem("UefiDriverEntryPointSingleUnload");
552 jComboBoxSelect
.addItem("UefiDriverModelLib");
553 jComboBoxSelect
.addItem("UefiDriverModelLibNoConfigNoDiag");
554 jComboBoxSelect
.addItem("UefiLib");
555 jComboBoxSelect
.addItem("UefiMemoryLib");
560 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
562 public void actionPerformed(ActionEvent arg0
) {
563 if (arg0
.getSource() == jButtonOk
) {
568 if (arg0
.getSource() == jButtonCancel
) {
572 if (arg0
.getSource() == jButtonAdd
) {
574 //ToDo: check before add
575 String
[] row
= {null, null, null, jTextField1
.getText(), jTextField2
.getText(), null, null};
576 row
[0] = jTextFieldAdd
.getText();
577 row
[1] = jTextField
.getText().replace('\\', '/');
578 row
[2] = jTextFieldHelp
.getText();
579 row
[5] = booleanToString(jCheckBox
.isSelected(), jCheckBox1
.isSelected(), jCheckBox2
.isSelected(), jCheckBox3
.isSelected());
580 if (row
[5].length() == 0){
583 row
[6] = vectorToString(iCheckBoxListArch
.getAllCheckedItemsString());
584 if (row
[6].length() == 0){
588 sfc
.genSpdLibClassDeclarations(row
[0], row
[3], row
[1], row
[2], row
[5], null, null, row
[4], null, row
[6]);
592 // remove selected line
594 if (arg0
.getSource() == jButtonRemove
) {
595 if (jTable
.isEditing()){
596 jTable
.getCellEditor().stopCellEditing();
598 int rowSelected
= selectedRow
;
599 if (rowSelected
>= 0) {
600 model
.removeRow(rowSelected
);
601 sfc
.removeSpdLibClass(rowSelected
);
605 if (arg0
.getSource() == jButtonClearAll
) {
606 if (model
.getRowCount() == 0) {
610 model
.setRowCount(0);
611 sfc
.removeSpdLibClass();
614 if (arg0
.getSource() == jRadioButtonAdd
) {
615 if (jRadioButtonAdd
.isSelected()) {
616 jRadioButtonSelect
.setSelected(false);
617 jTextFieldAdd
.setEnabled(true);
618 jComboBoxSelect
.setEnabled(false);
620 if (!jRadioButtonSelect
.isSelected() && !jRadioButtonAdd
.isSelected()) {
621 jRadioButtonAdd
.setSelected(true);
622 jTextFieldAdd
.setEnabled(true);
623 jComboBoxSelect
.setEnabled(false);
627 if (arg0
.getSource() == jRadioButtonSelect
) {
628 if (jRadioButtonSelect
.isSelected()) {
629 jRadioButtonAdd
.setSelected(false);
630 jTextFieldAdd
.setEnabled(false);
631 jComboBoxSelect
.setEnabled(true);
633 if (!jRadioButtonSelect
.isSelected() && !jRadioButtonAdd
.isSelected()) {
634 jRadioButtonSelect
.setSelected(true);
635 jTextFieldAdd
.setEnabled(false);
636 jComboBoxSelect
.setEnabled(true);
643 Add contents in list to sfc
645 protected void save() {
650 This method initializes jTextField
652 @return javax.swing.JTextField
654 private JTextField
getJTextField() {
655 if (jTextField
== null) {
656 jTextField
= new JTextField();
657 jTextField
.setBounds(new java
.awt
.Rectangle(16,83,346,21));
658 jTextField
.setPreferredSize(new java
.awt
.Dimension(260,20));
664 This method initializes jButtonBrowse
666 @return javax.swing.JButton
668 private JButton
getJButtonBrowse() {
669 if (jButtonBrowse
== null) {
670 jButtonBrowse
= new JButton();
671 jButtonBrowse
.setBounds(new java
.awt
.Rectangle(376,82,90,20));
672 jButtonBrowse
.setText("Browse");
673 jButtonBrowse
.setPreferredSize(new java
.awt
.Dimension(80,20));
674 jButtonBrowse
.addActionListener(new AbstractAction() {
676 public void actionPerformed(ActionEvent arg0
) {
678 // Select files from current pkg
680 String dirPrefix
= Tools
.dirForNewSpd
.substring(0, Tools
.dirForNewSpd
.lastIndexOf(File
.separator
));
681 JFileChooser chooser
= new JFileChooser(dirPrefix
);
683 String headerDest
= null;
685 chooser
.setMultiSelectionEnabled(false);
686 chooser
.setFileSelectionMode(JFileChooser
.FILES_AND_DIRECTORIES
);
687 int retval
= chooser
.showOpenDialog(frame
);
688 if (retval
== JFileChooser
.APPROVE_OPTION
) {
690 theFile
= chooser
.getSelectedFile();
691 String file
= theFile
.getPath();
692 if (!file
.startsWith(dirPrefix
)) {
693 JOptionPane
.showMessageDialog(frame
, "You can only select files in current package!");
703 headerDest
= theFile
.getPath();
704 int fileIndex
= headerDest
.indexOf(System
.getProperty("file.separator"), dirPrefix
.length());
706 jTextField
.setText(headerDest
.substring(fileIndex
+ 1).replace('\\', '/'));
712 return jButtonBrowse
;
715 public void componentResized(ComponentEvent arg0
) {
716 int intPreferredWidth
= 500;
718 resizeComponentWidth(this.jTextFieldAdd
, this.getWidth(), intPreferredWidth
);
719 resizeComponentWidth(this.jTextFieldHelp
, this.getWidth(), intPreferredWidth
);
720 resizeComponentWidth(this.jScrollPane
, this.getWidth(), intPreferredWidth
);
721 relocateComponentX(this.jButtonBrowse
, this.getWidth(), this.getPreferredSize().width
,25);
722 relocateComponentX(this.jButtonClearAll
, this.getWidth(), this.getPreferredSize().width
,25);
723 relocateComponentX(this.jButtonRemove
, this.getWidth(), this.getPreferredSize().width
,25);
724 relocateComponentX(this.jButtonAdd
, this.getWidth(), this.getPreferredSize().width
,50);
728 * This method initializes jTextFieldHelp
730 * @return javax.swing.JTextField
732 private JTextField
getJTextFieldHelp() {
733 if (jTextFieldHelp
== null) {
734 jTextFieldHelp
= new JTextField();
735 jTextFieldHelp
.setBounds(new java
.awt
.Rectangle(122,33,343,20));
736 jTextFieldHelp
.setPreferredSize(new java
.awt
.Dimension(260,20));
738 return jTextFieldHelp
;
742 * This method initializes jTextField1
744 * @return javax.swing.JTextField
746 private JTextField
getJTextField1() {
747 if (jTextField1
== null) {
748 jTextField1
= new JTextField();
749 jTextField1
.setBounds(new java
.awt
.Rectangle(16,135,344,20));
750 jTextField1
.setEnabled(true);
756 * This method initializes jTextField2
758 * @return javax.swing.JTextField
760 private JTextField
getJTextField2() {
761 if (jTextField2
== null) {
762 jTextField2
= new JTextField();
763 jTextField2
.setBounds(new java
.awt
.Rectangle(16,184,344,20));
764 jTextField2
.setEnabled(true);
770 * This method initializes jCheckBox
772 * @return javax.swing.JCheckBox
774 private JCheckBox
getJCheckBox() {
775 if (jCheckBox
== null) {
776 jCheckBox
= new JCheckBox();
777 jCheckBox
.setBounds(new java
.awt
.Rectangle(123,213,57,21));
778 jCheckBox
.setText("IA32");
779 jCheckBox
.setPreferredSize(new java
.awt
.Dimension(21,20));
785 * This method initializes jCheckBox1
787 * @return javax.swing.JCheckBox
789 private JCheckBox
getJCheckBox1() {
790 if (jCheckBox1
== null) {
791 jCheckBox1
= new JCheckBox();
792 jCheckBox1
.setBounds(new java
.awt
.Rectangle(197,213,49,20));
793 jCheckBox1
.setText("X64");
794 jCheckBox1
.setPreferredSize(new java
.awt
.Dimension(21,20));
800 * This method initializes jCheckBox2
802 * @return javax.swing.JCheckBox
804 private JCheckBox
getJCheckBox2() {
805 if (jCheckBox2
== null) {
806 jCheckBox2
= new JCheckBox();
807 jCheckBox2
.setText("IPF");
808 jCheckBox2
.setSize(new java
.awt
.Dimension(50,20));
809 jCheckBox2
.setLocation(new java
.awt
.Point(258,213));
810 jCheckBox2
.setPreferredSize(new java
.awt
.Dimension(21,20));
816 * This method initializes jCheckBox3
818 * @return javax.swing.JCheckBox
820 private JCheckBox
getJCheckBox3() {
821 if (jCheckBox3
== null) {
822 jCheckBox3
= new JCheckBox();
823 jCheckBox3
.setBounds(new java
.awt
.Rectangle(319,213,59,20));
824 jCheckBox3
.setText("EBC");
825 jCheckBox3
.setPreferredSize(new java
.awt
.Dimension(21,20));
830 private JScrollPane
getJScrollPaneArch() {
831 if (jScrollPaneArch
== null) {
832 jScrollPaneArch
= new JScrollPane();
833 jScrollPaneArch
.setBounds(new java
.awt
.Rectangle(130,252,230,45));
834 jScrollPaneArch
.setPreferredSize(new java
.awt
.Dimension(320, 80));
835 jScrollPaneArch
.setViewportView(getICheckBoxListSupportedArchitectures());
837 return jScrollPaneArch
;
840 private ICheckBoxList
getICheckBoxListSupportedArchitectures() {
841 if (iCheckBoxListArch
== null) {
842 iCheckBoxListArch
= new ICheckBoxList();
843 Vector
<String
> v
= new Vector
<String
>();
850 v
.add("DXE_RUNTIME_DRIVER");
851 v
.add("DXE_SAL_DRIVER");
852 v
.add("DXE_SMM_DRIVER");
853 v
.add("UEFI_DRIVER");
854 v
.add("UEFI_APPLICATION");
855 v
.add("USER_DEFINED");
856 iCheckBoxListArch
.setAllItems(v
);
858 return iCheckBoxListArch
;
861 private String
booleanToString(boolean b1
, boolean b2
, boolean b3
, boolean b4
){
878 private String
vectorToString(Vector
<String
> v
) {
880 for (int i
= 0; i
< v
.size(); ++i
) {
886 public static void main(String
[] args
){
887 new SpdLibClassDecls().setVisible(true);