]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java
Fixed the unchecked warning issues when building GenBuild
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdLibClassDecls.java
1 /** @file
2 Java class SpdLibClassDecls is GUI for create library definition elements of spd file.
3
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
9
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.
12 **/
13 package org.tianocore.frameworkwizard.packaging.ui;
14
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;
24 import java.io.File;
25 import java.util.Vector;
26
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;
50
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;
57
58 import javax.swing.JCheckBox;
59
60 /**
61 GUI for create library definition elements of spd file.
62
63 @since PackageEditor 1.0
64 **/
65 public class SpdLibClassDecls extends IInternalFrame implements TableModelListener{
66 static JFrame frame;
67
68 private JTable jTable = null;
69
70 private DefaultTableModel model = null;
71
72 private JPanel jContentPane = null;
73
74 private JRadioButton jRadioButtonAdd = null;
75
76 private JRadioButton jRadioButtonSelect = null;
77
78 private JTextField jTextFieldAdd = null;
79
80 private JComboBox jComboBoxSelect = null;
81
82 private JScrollPane jScrollPane = null;
83
84 private JButton jButtonAdd = null;
85
86 private JButton jButtonRemove = null;
87
88 private JButton jButtonClearAll = null;
89
90 private JButton jButtonCancel = null;
91
92 private JButton jButtonOk = null;
93
94 private JLabel jLabel = null;
95
96 private JTextField jTextField = null;
97
98 private JButton jButtonBrowse = null;
99
100 private StarLabel jStarLabel1 = null;
101
102 private StarLabel jStarLabel2 = null;
103
104 private SpdFileContents sfc = null;
105
106 private JLabel jLabel1 = null;
107
108 private JScrollPane topScrollPane = null; // @jve:decl-index=0:visual-constraint="10,53"
109
110 private int selectedRow = -1;
111
112 private StarLabel starLabel = null;
113
114 private JLabel jLabel2 = null;
115
116 private JTextField jTextFieldHelp = null;
117
118 private JLabel jLabel3 = null;
119
120 private JTextField jTextField1 = null;
121
122 private JLabel jLabel4 = null;
123
124 private JTextField jTextField2 = null;
125
126 private JLabel jLabel5 = null;
127
128 private JCheckBox jCheckBox = null;
129
130 private JCheckBox jCheckBox1 = null;
131
132 private JCheckBox jCheckBox2 = null;
133
134 private JCheckBox jCheckBox3 = null;
135
136 private JLabel jLabel6 = null;
137
138 private JScrollPane jScrollPaneArch = null;
139
140 private ICheckBoxList iCheckBoxListArch = null;
141
142 /**
143 This method initializes this
144
145 **/
146 private void initialize() {
147
148 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
149
150 }
151
152 /**
153 This method initializes jRadioButtonAdd
154
155 @return javax.swing.JRadioButton
156 **/
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);
165 }
166 return jRadioButtonAdd;
167 }
168
169 /**
170 This method initializes jRadioButtonSelect
171
172 @return javax.swing.JRadioButton
173 **/
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);
182 }
183 return jRadioButtonSelect;
184 }
185
186 /**
187 This method initializes jTextFieldAdd
188
189 @return javax.swing.JTextField
190 **/
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);
197 }
198 return jTextFieldAdd;
199 }
200
201 /**
202 This method initializes jComboBoxSelect
203
204 @return javax.swing.JComboBox
205 **/
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);
213 }
214 return jComboBoxSelect;
215 }
216
217 /**
218 This method initializes jScrollPane
219
220 @return javax.swing.JScrollPane
221 **/
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());
228 }
229 return jScrollPane;
230 }
231
232 /**
233 This method initializes jTable
234
235 @return javax.swing.JTable
236 **/
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");
250
251 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
252 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
253 public void valueChanged(ListSelectionEvent e) {
254 if (e.getValueIsAdjusting()){
255 return;
256 }
257 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
258 if (lsm.isSelectionEmpty()) {
259 return;
260 }
261 else{
262 selectedRow = lsm.getMinSelectionIndex();
263 }
264 }
265 });
266
267 jTable.getModel().addTableModelListener(this);
268
269 }
270 return jTable;
271 }
272
273
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) + "";
284 String arch = null;
285 if (m.getValueAt(row, 5) != null) {
286 arch = m.getValueAt(row, 5).toString();
287 }
288 String module = null;
289 if (m.getValueAt(row, 6) != null) {
290 module = m.getValueAt(row, 6).toString();
291 }
292 sfc.updateSpdLibClass(row, lib, hdr, hlp, guid, ver, arch, module);
293 }
294 }
295
296 /**
297 This method initializes jButtonAdd
298
299 @return javax.swing.JButton
300 **/
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);
307 }
308 return jButtonAdd;
309 }
310
311 /**
312 This method initializes jButtonRemove
313
314 @return javax.swing.JButton
315 **/
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);
322 }
323 return jButtonRemove;
324 }
325
326 /**
327 This method initializes jButtonRemoveAll
328
329 @return javax.swing.JButton
330 **/
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);
337 }
338 return jButtonClearAll;
339 }
340
341 /**
342 This method initializes jButtonCancel
343
344 @return javax.swing.JButton
345 **/
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);
355 }
356 return jButtonCancel;
357 }
358
359 /**
360 This method initializes jButton
361
362 @return javax.swing.JButton
363 **/
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);
372 }
373 return jButtonOk;
374 }
375
376 /**
377 This is the default constructor
378 **/
379 public SpdLibClassDecls() {
380 super();
381 initialize();
382 init();
383
384 }
385
386 public SpdLibClassDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa){
387 this();
388 sfc = new SpdFileContents(inPsa);
389 init(sfc);
390 }
391 /**
392 This method initializes this
393
394 @return void
395 **/
396 private void init() {
397
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();
406 }
407 }
408 });
409 initFrame();
410 }
411
412 private void init(SpdFileContents sfc) {
413 if (sfc.getSpdLibClassDeclarationCount() == 0) {
414 return ;
415 }
416 //
417 // initialize table using SpdFileContents object
418 //
419 String[][] saa = new String[sfc.getSpdLibClassDeclarationCount()][7];
420 sfc.getSpdLibClassDeclarations(saa);
421 int i = 0;
422 while (i < saa.length) {
423 model.addRow(saa[i]);
424 i++;
425 }
426 }
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());
432 }
433 return topScrollPane;
434 }
435 /**
436 This method initializes jContentPane
437
438 @return javax.swing.JPanel
439 **/
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");
473
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);
490
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);
507
508 jContentPane.add(getJScrollPaneArch(), null);
509 }
510
511 return jContentPane;
512 }
513
514 /**
515 fill ComboBoxes with pre-defined contents
516 **/
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");
556
557 }
558
559 /* (non-Javadoc)
560 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
561 */
562 public void actionPerformed(ActionEvent arg0) {
563 if (arg0.getSource() == jButtonOk) {
564 this.save();
565 this.dispose();
566
567 }
568 if (arg0.getSource() == jButtonCancel) {
569 this.dispose();
570 }
571
572 if (arg0.getSource() == jButtonAdd) {
573
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){
581 row[5] = null;
582 }
583 row[6] = vectorToString(iCheckBoxListArch.getAllCheckedItemsString());
584 if (row[6].length() == 0){
585 row[6] = null;
586 }
587 model.addRow(row);
588 sfc.genSpdLibClassDeclarations(row[0], row[3], row[1], row[2], row[5], null, null, row[4], null, row[6]);
589
590 }
591 //
592 // remove selected line
593 //
594 if (arg0.getSource() == jButtonRemove) {
595 if (jTable.isEditing()){
596 jTable.getCellEditor().stopCellEditing();
597 }
598 int rowSelected = selectedRow;
599 if (rowSelected >= 0) {
600 model.removeRow(rowSelected);
601 sfc.removeSpdLibClass(rowSelected);
602 }
603 }
604
605 if (arg0.getSource() == jButtonClearAll) {
606 if (model.getRowCount() == 0) {
607 return;
608 }
609
610 model.setRowCount(0);
611 sfc.removeSpdLibClass();
612 }
613
614 if (arg0.getSource() == jRadioButtonAdd) {
615 if (jRadioButtonAdd.isSelected()) {
616 jRadioButtonSelect.setSelected(false);
617 jTextFieldAdd.setEnabled(true);
618 jComboBoxSelect.setEnabled(false);
619 }
620 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {
621 jRadioButtonAdd.setSelected(true);
622 jTextFieldAdd.setEnabled(true);
623 jComboBoxSelect.setEnabled(false);
624 }
625 }
626
627 if (arg0.getSource() == jRadioButtonSelect) {
628 if (jRadioButtonSelect.isSelected()) {
629 jRadioButtonAdd.setSelected(false);
630 jTextFieldAdd.setEnabled(false);
631 jComboBoxSelect.setEnabled(true);
632 }
633 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {
634 jRadioButtonSelect.setSelected(true);
635 jTextFieldAdd.setEnabled(false);
636 jComboBoxSelect.setEnabled(true);
637 }
638 }
639 }
640
641
642 /**
643 Add contents in list to sfc
644 **/
645 protected void save() {
646
647 }
648
649 /**
650 This method initializes jTextField
651
652 @return javax.swing.JTextField
653 **/
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));
659 }
660 return jTextField;
661 }
662
663 /**
664 This method initializes jButtonBrowse
665
666 @return javax.swing.JButton
667 **/
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() {
675
676 public void actionPerformed(ActionEvent arg0) {
677 //
678 // Select files from current pkg
679 //
680 String dirPrefix = Tools.dirForNewSpd.substring(0, Tools.dirForNewSpd.lastIndexOf(File.separator));
681 JFileChooser chooser = new JFileChooser(dirPrefix);
682 File theFile = null;
683 String headerDest = null;
684
685 chooser.setMultiSelectionEnabled(false);
686 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
687 int retval = chooser.showOpenDialog(frame);
688 if (retval == JFileChooser.APPROVE_OPTION) {
689
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!");
694 return;
695 }
696
697
698 }
699 else {
700 return;
701 }
702
703 headerDest = theFile.getPath();
704 int fileIndex = headerDest.indexOf(System.getProperty("file.separator"), dirPrefix.length());
705
706 jTextField.setText(headerDest.substring(fileIndex + 1).replace('\\', '/'));
707
708 }
709
710 });
711 }
712 return jButtonBrowse;
713 }
714
715 public void componentResized(ComponentEvent arg0) {
716 int intPreferredWidth = 500;
717
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);
725
726 }
727 /**
728 * This method initializes jTextFieldHelp
729 *
730 * @return javax.swing.JTextField
731 */
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));
737 }
738 return jTextFieldHelp;
739 }
740
741 /**
742 * This method initializes jTextField1
743 *
744 * @return javax.swing.JTextField
745 */
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);
751 }
752 return jTextField1;
753 }
754
755 /**
756 * This method initializes jTextField2
757 *
758 * @return javax.swing.JTextField
759 */
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);
765 }
766 return jTextField2;
767 }
768
769 /**
770 * This method initializes jCheckBox
771 *
772 * @return javax.swing.JCheckBox
773 */
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));
780 }
781 return jCheckBox;
782 }
783
784 /**
785 * This method initializes jCheckBox1
786 *
787 * @return javax.swing.JCheckBox
788 */
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));
795 }
796 return jCheckBox1;
797 }
798
799 /**
800 * This method initializes jCheckBox2
801 *
802 * @return javax.swing.JCheckBox
803 */
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));
811 }
812 return jCheckBox2;
813 }
814
815 /**
816 * This method initializes jCheckBox3
817 *
818 * @return javax.swing.JCheckBox
819 */
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));
826 }
827 return jCheckBox3;
828 }
829
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());
836 }
837 return jScrollPaneArch;
838 }
839
840 private ICheckBoxList getICheckBoxListSupportedArchitectures() {
841 if (iCheckBoxListArch == null) {
842 iCheckBoxListArch = new ICheckBoxList();
843 Vector<String> v = new Vector<String>();
844 v.add("BASE");
845 v.add("SEC");
846 v.add("PEI_CORE");
847 v.add("PEIM");
848 v.add("DXE_CORE");
849 v.add("DXE_DRIVER");
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);
857 }
858 return iCheckBoxListArch;
859 }
860
861 private String booleanToString(boolean b1, boolean b2, boolean b3, boolean b4){
862 String s = " ";
863 if (b1){
864 s += "IA32 ";
865 }
866 if (b2){
867 s += "X64 ";
868 }
869 if (b3){
870 s += "IPF ";
871 }
872 if (b4){
873 s += "EBC ";
874 }
875 return s.trim();
876 }
877
878 private String vectorToString(Vector<String> v) {
879 String s = " ";
880 for (int i = 0; i < v.size(); ++i) {
881 s += v.get(i);
882 s += " ";
883 }
884 return s.trim();
885 }
886 public static void main(String[] args){
887 new SpdLibClassDecls().setVisible(true);
888 }
889 }
890
891