]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java
Fixed the unchecked warning issues when building GenBuild
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPackageHeaders.java
CommitLineData
a13899c5 1/** @file\r
2 Java class SpdPackageHeaders is GUI for create library definition elements of spd file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.frameworkwizard.packaging.ui;\r
14\r
15import java.awt.BorderLayout;\r
16import java.awt.Dimension;\r
17import java.awt.Toolkit;\r
18import java.awt.event.ActionEvent;\r
19import java.awt.event.ActionListener;\r
20import java.awt.event.ComponentEvent;\r
21import java.io.File;\r
22import java.util.Vector;\r
23\r
24import javax.swing.DefaultCellEditor;\r
25import javax.swing.DefaultListModel;\r
26import javax.swing.JFileChooser;\r
27import javax.swing.JOptionPane;\r
28import javax.swing.JPanel;\r
29import javax.swing.JRadioButton;\r
30import javax.swing.JTable;\r
31import javax.swing.JTextField;\r
32import javax.swing.JComboBox;\r
33import javax.swing.JLabel;\r
34import javax.swing.JList;\r
35import javax.swing.JScrollPane;\r
36import javax.swing.JButton;\r
37import javax.swing.JFrame;\r
38import javax.swing.ListSelectionModel;\r
39import javax.swing.event.InternalFrameAdapter;\r
40import javax.swing.event.InternalFrameEvent;\r
41import javax.swing.event.ListSelectionEvent;\r
42import javax.swing.event.ListSelectionListener;\r
43import javax.swing.event.TableModelEvent;\r
44import javax.swing.event.TableModelListener;\r
45import javax.swing.table.DefaultTableModel;\r
46import javax.swing.table.TableColumn;\r
47import javax.swing.table.TableModel;\r
48\r
49import org.tianocore.PackageSurfaceAreaDocument;\r
50import org.tianocore.frameworkwizard.common.DataType;\r
51import org.tianocore.frameworkwizard.common.Tools;\r
52import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
53import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
54\r
55/**\r
56 GUI for create library definition elements of spd file.\r
57 \r
58 @since PackageEditor 1.0\r
59**/\r
60public class SpdPackageHeaders extends IInternalFrame implements TableModelListener{\r
61 static JFrame frame;\r
62 \r
63 private SpdFileContents sfc = null;\r
64\r
65 private DefaultTableModel model = null;\r
66\r
67 private JPanel jContentPane = null;\r
68\r
69 private JRadioButton jRadioButtonAdd = null;\r
70\r
71 private JRadioButton jRadioButtonSelect = null;\r
72\r
73 private JTextField jTextFieldAdd = null;\r
74\r
75 private JComboBox jComboBoxSelect = null;\r
76\r
77 private JButton jButtonAdd = null;\r
78\r
79 private JButton jButtonRemove = null;\r
80\r
81 private JButton jButtonClearAll = null;\r
82\r
83 private JButton jButtonCancel = null;\r
84\r
85 private JButton jButtonOk = null;\r
86\r
87 private JLabel jLabel = null;\r
88\r
89 private JTextField jTextField = null;\r
90\r
91 private JButton jButtonBrowse = null;\r
92 \r
93 private StarLabel jStarLabel1 = null;\r
94 \r
95 private StarLabel jStarLabel2 = null;\r
96\r
97 private JScrollPane jScrollPane = null;\r
98\r
99 private JScrollPane jScrollPane1 = null;\r
100\r
101 private int selectedRow = -1;\r
102\r
103 private JTable jTable = null;\r
104\r
105\r
106\r
107 /**\r
108 This method initializes this\r
109 \r
110 **/\r
111 private void initialize() {\r
112 \r
113 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
114\r
115 }\r
116\r
117 /**\r
118 This method initializes jRadioButtonAdd \r
119 \r
120 @return javax.swing.JRadioButton \r
121 **/\r
122 private JRadioButton getJRadioButtonAdd() {\r
123 if (jRadioButtonAdd == null) {\r
124 jRadioButtonAdd = new JRadioButton();\r
125 jRadioButtonAdd.setBounds(new java.awt.Rectangle(9,35,197,20));\r
126 jRadioButtonAdd.setText("Add a new ModuleType");\r
127 jRadioButtonAdd.setEnabled(false);\r
128 jRadioButtonAdd.addActionListener(this);\r
129 jRadioButtonAdd.setSelected(false);\r
130 }\r
131 return jRadioButtonAdd;\r
132 }\r
133\r
134 /**\r
135 This method initializes jRadioButtonSelect \r
136 \r
137 @return javax.swing.JRadioButton \r
138 **/\r
139 private JRadioButton getJRadioButtonSelect() {\r
140 if (jRadioButtonSelect == null) {\r
141 jRadioButtonSelect = new JRadioButton();\r
142 jRadioButtonSelect.setBounds(new java.awt.Rectangle(9,10,198,20));\r
143 jRadioButtonSelect.setText("Select Existing ModuleType");\r
144 jRadioButtonSelect.addActionListener(this);\r
145 jRadioButtonSelect.setSelected(true);\r
146 }\r
147 return jRadioButtonSelect;\r
148 }\r
149\r
150 /**\r
151 This method initializes jTextFieldAdd \r
152 \r
153 @return javax.swing.JTextField \r
154 **/\r
155 private JTextField getJTextFieldAdd() {\r
156 if (jTextFieldAdd == null) {\r
157 jTextFieldAdd = new JTextField();\r
158 jTextFieldAdd.setBounds(new java.awt.Rectangle(220, 35, 260, 20));\r
159 jTextFieldAdd.setPreferredSize(new java.awt.Dimension(260,20));\r
160 jTextFieldAdd.setEnabled(false);\r
161 }\r
162 return jTextFieldAdd;\r
163 }\r
164\r
165 /**\r
166 This method initializes jComboBoxSelect \r
167 \r
168 @return javax.swing.JComboBox \r
169 **/\r
170 private JComboBox getJComboBoxSelect() {\r
171 if (jComboBoxSelect == null) {\r
172 jComboBoxSelect = new JComboBox();\r
173 jComboBoxSelect.setBounds(new java.awt.Rectangle(220, 10, 260, 20));\r
174 jComboBoxSelect.setPreferredSize(new java.awt.Dimension(260,20));\r
175 \r
176 jComboBoxSelect.setEnabled(true);\r
177 }\r
178 return jComboBoxSelect;\r
179 }\r
180\r
181 /**\r
182 This method initializes jTable \r
183 \r
184 @return javax.swing.JTable \r
185 *\r
186 private JTable getJTable() {\r
187 if (jTable == null) {\r
188 model = new PackageHeaderTableModel();\r
189 model.addColumn("ModuleType");\r
190 model.addColumn("IncludeHeader");\r
191 \r
192\r
193 }\r
194 return jTable;\r
195 }*/\r
196 /**\r
197 This method initializes jButtonAdd \r
198 \r
199 @return javax.swing.JButton \r
200 **/\r
201 private JButton getJButtonAdd() {\r
202 if (jButtonAdd == null) {\r
203 jButtonAdd = new JButton();\r
204 jButtonAdd.setBounds(new java.awt.Rectangle(189,119,73,20));\r
205 jButtonAdd.setText("Add");\r
206 jButtonAdd.addActionListener(this);\r
207 }\r
208 return jButtonAdd;\r
209 }\r
210\r
211 /**\r
212 This method initializes jButtonRemove \r
213 \r
214 @return javax.swing.JButton \r
215 **/\r
216 private JButton getJButtonRemove() {\r
217 if (jButtonRemove == null) {\r
218 jButtonRemove = new JButton();\r
219 jButtonRemove.setBounds(new java.awt.Rectangle(271,119,87,20));\r
220 jButtonRemove.setText("Remove");\r
221 jButtonRemove.addActionListener(this);\r
222 }\r
223 return jButtonRemove;\r
224 }\r
225\r
226 /**\r
227 This method initializes jButtonRemoveAll \r
228 \r
229 @return javax.swing.JButton \r
230 **/\r
231 private JButton getJButtonClearAll() {\r
232 if (jButtonClearAll == null) {\r
233 jButtonClearAll = new JButton();\r
234 jButtonClearAll.setBounds(new java.awt.Rectangle(374,119,90,20));\r
235 jButtonClearAll.setText("Clear All");\r
236 jButtonClearAll.addActionListener(this);\r
237 }\r
238 return jButtonClearAll;\r
239 }\r
240\r
241 /**\r
242 This method initializes jButtonCancel \r
243 \r
244 @return javax.swing.JButton \r
245 **/\r
246 private JButton getJButtonCancel() {\r
247 if (jButtonCancel == null) {\r
248 jButtonCancel = new JButton();\r
249 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
250 jButtonCancel.setLocation(new java.awt.Point(390, 305));\r
251 jButtonCancel.setText("Cancel");\r
252 jButtonCancel.setSize(new java.awt.Dimension(90, 20));\r
253 jButtonCancel.setVisible(false);\r
254 jButtonCancel.addActionListener(this);\r
255 }\r
256 return jButtonCancel;\r
257 }\r
258\r
259 /**\r
260 This method initializes jButton \r
261 \r
262 @return javax.swing.JButton \r
263 **/\r
264 private JButton getJButtonOk() {\r
265 if (jButtonOk == null) {\r
266 jButtonOk = new JButton();\r
267 jButtonOk.setSize(new java.awt.Dimension(90, 20));\r
268 jButtonOk.setText("OK");\r
269 jButtonOk.setLocation(new java.awt.Point(290, 305));\r
270 jButtonOk.setVisible(false);\r
271 jButtonOk.addActionListener(this);\r
272 }\r
273 return jButtonOk;\r
274 }\r
275\r
276 /**\r
277 This is the default constructor\r
278 **/\r
279 public SpdPackageHeaders() {\r
280 super();\r
281 initialize();\r
282 init();\r
283 \r
284 }\r
285\r
286 public SpdPackageHeaders(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa){\r
287 this();\r
288 sfc = new SpdFileContents(inPsa);\r
289 init(sfc);\r
290 }\r
291 /**\r
292 This method initializes this\r
293 \r
294 @return void\r
295 **/\r
296 private void init() {\r
297 \r
298 this.setContentPane(getJScrollPane());\r
299 this.setTitle("Library Class Declarations");\r
300 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
301 this.setVisible(true);\r
302 this.addInternalFrameListener(new InternalFrameAdapter(){\r
303 public void internalFrameDeactivated(InternalFrameEvent e){\r
304 if (jTable.isEditing()) {\r
305 jTable.getCellEditor().stopCellEditing();\r
306 }\r
307 }\r
308 });\r
309 initFrame();\r
310 }\r
311\r
312 private void init(SpdFileContents sfc){\r
313 if (sfc.getSpdPackageHeaderCount() == 0) {\r
314 return ;\r
315 }\r
316 String[][] saa = new String[sfc.getSpdPackageHeaderCount()][2];\r
317 sfc.getSpdPackageHeaders(saa);\r
318 int i = 0;\r
319 while (i < saa.length) {\r
320 model.addRow(saa[i]);\r
321 i++;\r
322 }\r
323 }\r
324 \r
325 private JScrollPane getJScrollPane(){\r
326 if (jScrollPane == null){\r
327 jScrollPane = new JScrollPane();\r
328 jScrollPane.setViewportView(getJContentPane());\r
329 }\r
330 return jScrollPane;\r
331 }\r
332 /**\r
333 This method initializes jContentPane\r
334 \r
335 @return javax.swing.JPanel\r
336 **/\r
337 private JPanel getJContentPane() {\r
338 if (jContentPane == null) {\r
339 jStarLabel1 = new StarLabel();\r
340 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
341 jStarLabel2 = new StarLabel();\r
342 jStarLabel2.setLocation(new java.awt.Point(0,62));\r
343 jLabel = new JLabel();\r
344 jLabel.setBounds(new java.awt.Rectangle(14,62,199,22));\r
345 jLabel.setText("Include Header for Module Type");\r
346 \r
347 jContentPane = new JPanel();\r
348 jContentPane.setPreferredSize(new Dimension(480, 325));\r
349 jContentPane.setLayout(null);\r
350 jContentPane.add(jLabel, null);\r
351 jContentPane.add(jStarLabel1, null);\r
352 jContentPane.add(jStarLabel2, null);\r
353 jContentPane.add(getJRadioButtonAdd(), null);\r
354 jContentPane.add(getJRadioButtonSelect(), null);\r
355 jContentPane.add(getJTextFieldAdd(), null);\r
356 jContentPane.add(getJComboBoxSelect(), null);\r
357 jContentPane.add(getJButtonAdd(), null);\r
358 jContentPane.add(getJButtonRemove(), null);\r
359 jContentPane.add(getJButtonClearAll(), null);\r
360 jContentPane.add(getJButtonCancel(), null);\r
361 jContentPane.add(getJButtonOk(), null);\r
362 \r
363 jContentPane.add(getJTextField(), null);\r
364 jContentPane.add(getJButtonBrowse(), null);\r
365 jContentPane.add(getJScrollPane1(), null);\r
366 }\r
367 return jContentPane;\r
368 }\r
369\r
370 /**\r
371 fill ComboBoxes with pre-defined contents\r
372 **/\r
373 private void initFrame() {\r
374 jComboBoxSelect.addItem("BASE");\r
375 jComboBoxSelect.addItem("SEC");\r
376 jComboBoxSelect.addItem("PEI_CORE");\r
377 jComboBoxSelect.addItem("PEIM");\r
378 jComboBoxSelect.addItem("DXE_CORE");\r
379 jComboBoxSelect.addItem("DXE_DRIVER");\r
380 jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
381 jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
382 jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
383 jComboBoxSelect.addItem("TOOLS");\r
384 jComboBoxSelect.addItem("UEFI_DRIVER");\r
385 jComboBoxSelect.addItem("UEFI_APPLICATION");\r
386 jComboBoxSelect.addItem("USER_DEFINED");\r
387 jComboBoxSelect.setSelectedIndex(0);\r
388 }\r
389\r
390 /* (non-Javadoc)\r
391 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
392 */\r
393 public void actionPerformed(ActionEvent arg0) {\r
394 if (arg0.getSource() == jButtonOk) {\r
395 this.save();\r
396 this.dispose();\r
397\r
398 }\r
399 if (arg0.getSource() == jButtonCancel) {\r
400 this.dispose();\r
401 }\r
402\r
403 if (arg0.getSource() == jButtonAdd) {\r
404 String strLibClass = "";\r
405 if (jRadioButtonAdd.isSelected()) {\r
406 strLibClass = jTextFieldAdd.getText();\r
407 }\r
408 if (jRadioButtonSelect.isSelected()) {\r
409 strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
410 }\r
411 //ToDo: check before add\r
412 String[] row = {"", ""};\r
413 row[0] = strLibClass;\r
414 row[1] = jTextField.getText().replace('\\', '/');\r
415 model.addRow(row);\r
416 sfc.genSpdModuleHeaders(row[0], row[1], null, null, null, null, null, null);\r
417 }\r
418 //\r
419 // remove selected line\r
420 //\r
421 if (arg0.getSource() == jButtonRemove) {\r
422 if (jTable.isEditing()){\r
423 jTable.getCellEditor().stopCellEditing();\r
424 }\r
425 int rowSelected = selectedRow;\r
426 if (rowSelected >= 0) {\r
427 model.removeRow(rowSelected);\r
428 sfc.removeSpdPkgHeader(rowSelected);\r
429 }\r
430 }\r
431\r
432 if (arg0.getSource() == jButtonClearAll) {\r
433 if (model.getRowCount() == 0) {\r
434 return;\r
435 }\r
436 model.setRowCount(0);\r
437 sfc.removeSpdPkgHeader();\r
438 }\r
439\r
440 if (arg0.getSource() == jRadioButtonAdd) {\r
441 if (jRadioButtonAdd.isSelected()) {\r
442 jRadioButtonSelect.setSelected(false);\r
443 jTextFieldAdd.setEnabled(true);\r
444 jComboBoxSelect.setEnabled(false);\r
445 }\r
446 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
447 jRadioButtonAdd.setSelected(true);\r
448 jTextFieldAdd.setEnabled(true);\r
449 jComboBoxSelect.setEnabled(false);\r
450 }\r
451 }\r
452\r
453 if (arg0.getSource() == jRadioButtonSelect) {\r
454 if (jRadioButtonSelect.isSelected()) {\r
455 jRadioButtonAdd.setSelected(false);\r
456 jTextFieldAdd.setEnabled(false);\r
457 jComboBoxSelect.setEnabled(true);\r
458 }\r
459 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
460 jRadioButtonSelect.setSelected(true);\r
461 jTextFieldAdd.setEnabled(false);\r
462 jComboBoxSelect.setEnabled(true);\r
463 }\r
464 }\r
465 }\r
466\r
467 /**\r
468 Add contents in list to sfc\r
469 **/\r
470 protected void save() {\r
471 \r
472 }\r
473\r
474 /**\r
475 This method initializes jTextField \r
476 \r
477 @return javax.swing.JTextField \r
478 **/\r
479 private JTextField getJTextField() {\r
480 if (jTextField == null) {\r
481 jTextField = new JTextField();\r
482 jTextField.setBounds(new java.awt.Rectangle(13,90,346,21));\r
483 jTextField.setPreferredSize(new java.awt.Dimension(345,20));\r
484 }\r
485 return jTextField;\r
486 }\r
487\r
488 /**\r
489 This method initializes jButtonBrowse \r
490 \r
491 @return javax.swing.JButton \r
492 **/\r
493 private JButton getJButtonBrowse() {\r
494 if (jButtonBrowse == null) {\r
495 jButtonBrowse = new JButton();\r
496 jButtonBrowse.setBounds(new java.awt.Rectangle(374,89,92,21));\r
497 jButtonBrowse.setText("Browse");\r
498 jButtonBrowse.setPreferredSize(new java.awt.Dimension(92,20));\r
499 jButtonBrowse.addActionListener(new javax.swing.AbstractAction() {\r
500 public void actionPerformed(ActionEvent e) {\r
501 //\r
502 // Select files from current workspace\r
503 //\r
504 String dirPrefix = Tools.dirForNewSpd.substring(0, Tools.dirForNewSpd.lastIndexOf(File.separator));\r
505 JFileChooser chooser = new JFileChooser(dirPrefix);\r
506 File theFile = null;\r
507 String headerDest = null;\r
508 \r
509 chooser.setMultiSelectionEnabled(false);\r
510 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
511 int retval = chooser.showOpenDialog(frame);\r
512 if (retval == JFileChooser.APPROVE_OPTION) {\r
513\r
514 theFile = chooser.getSelectedFile();\r
515 String file = theFile.getPath();\r
516 if (!file.startsWith(dirPrefix)) {\r
517 JOptionPane.showMessageDialog(frame, "You can only select files in current package!");\r
518 return;\r
519 }\r
520 \r
521 \r
522 }\r
523 else {\r
524 return;\r
525 }\r
526 \r
527 headerDest = theFile.getPath();\r
528 int fileIndex = headerDest.indexOf(System.getProperty("file.separator"), dirPrefix.length());\r
529 \r
530 jTextField.setText(headerDest.substring(fileIndex + 1).replace('\\', '/'));\r
531 \r
532 }\r
533 });\r
534 }\r
535 return jButtonBrowse;\r
536 }\r
537 \r
538 /**\r
539 * This method initializes jScrollPane \r
540 * \r
541 * @return javax.swing.JScrollPane \r
542 */\r
543 private JScrollPane getJScrollPane1() {\r
544 if (jScrollPane1 == null) {\r
545 jScrollPane1 = new JScrollPane();\r
546 jScrollPane1.setBounds(new java.awt.Rectangle(13,149,453,165));\r
547 jScrollPane1.setViewportView(getJTable());\r
548 }\r
549 return jScrollPane1;\r
550 }\r
551\r
552 /**\r
553 * This method initializes jTable \r
554 * \r
555 * @return javax.swing.JTable \r
556 */\r
557 private JTable getJTable() {\r
558 if (jTable == null) {\r
559 model = new DefaultTableModel();\r
560 jTable = new JTable(model);\r
561 model.addColumn("ModuleType");\r
562 model.addColumn("IncludeHeader");\r
563 TableColumn typeColumn = jTable.getColumnModel().getColumn(0);\r
564 JComboBox jComboBoxSelect = new JComboBox();\r
565 jComboBoxSelect.addItem("BASE");\r
566 jComboBoxSelect.addItem("SEC");\r
567 jComboBoxSelect.addItem("PEI_CORE");\r
568 jComboBoxSelect.addItem("PEIM");\r
569 jComboBoxSelect.addItem("DXE_CORE");\r
570 jComboBoxSelect.addItem("DXE_DRIVER");\r
571 jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
572 jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
573 jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
574 jComboBoxSelect.addItem("TOOLS");\r
575 jComboBoxSelect.addItem("UEFI_DRIVER");\r
576 jComboBoxSelect.addItem("UEFI_APPLICATION");\r
577 jComboBoxSelect.addItem("USER_DEFINED");\r
578 typeColumn.setCellEditor(new DefaultCellEditor(jComboBoxSelect));\r
579 \r
580 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
581 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
582 public void valueChanged(ListSelectionEvent e) {\r
583 if (e.getValueIsAdjusting()){\r
584 return;\r
585 }\r
586 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
587 if (lsm.isSelectionEmpty()) {\r
588 return;\r
589 }\r
590 else{\r
591 selectedRow = lsm.getMinSelectionIndex();\r
592 }\r
593 }\r
594 });\r
595 \r
596 jTable.getModel().addTableModelListener(this);\r
597 }\r
598 return jTable;\r
599 }\r
600 \r
601 public void tableChanged(TableModelEvent arg0) {\r
602 // TODO Auto-generated method stub\r
603 int row = arg0.getFirstRow();\r
604 TableModel m = (TableModel)arg0.getSource();\r
605 if (arg0.getType() == TableModelEvent.UPDATE){\r
606 String pkg = m.getValueAt(row, 0) + "";\r
607 String hdr = m.getValueAt(row, 1) + "";\r
608 sfc.updateSpdPkgHdr(row, pkg, hdr);\r
609 }\r
610 }\r
611\r
612 public void componentResized(ComponentEvent arg0) {\r
613 int intPreferredWidth = 500;\r
614 \r
615 resizeComponentWidth(this.jComboBoxSelect, this.getWidth(), intPreferredWidth);\r
616 resizeComponentWidth(this.jTextFieldAdd, this.getWidth(), intPreferredWidth);\r
617 resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
618 resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
619 relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 30);\r
620 }\r
621 \r
622 public static void main(String[] args){\r
623 new SpdPackageHeaders().setVisible(true);\r
624 }\r
625}\r
626\r
627\r