]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/PackageEditor/src/org/tianocore/packaging/PackagePkgHeader.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / PackagePkgHeader.java
CommitLineData
878ddf1f 1/** @file\r
2 Java class PackagePkgHeader is GUI for create Package header 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.packaging;\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.util.Vector;\r
21\r
22import javax.swing.DefaultListModel;\r
23import javax.swing.JPanel;\r
24import javax.swing.JRadioButton;\r
25import javax.swing.JTextField;\r
26import javax.swing.JComboBox;\r
27import javax.swing.JLabel;\r
28import javax.swing.JList;\r
29import javax.swing.JScrollPane;\r
30import javax.swing.JButton;\r
31import javax.swing.JFrame;\r
32\r
33import org.tianocore.packaging.common.ui.StarLabel;\r
34\r
35/**\r
36 GUI for create Package header elements of spd file\r
37 \r
38 @since PackageEditor 1.0\r
39**/\r
40public class PackagePkgHeader extends JFrame implements ActionListener {\r
41 private static String Separator = "::";\r
42\r
43 private DefaultListModel listItem = new DefaultListModel();\r
44\r
45 private SpdFileContents sfc = null;\r
46\r
47 private JPanel jContentPane = null;\r
48\r
49 private JRadioButton jRadioButtonAdd = null;\r
50\r
51 private JRadioButton jRadioButtonSelect = null;\r
52\r
53 private JTextField jTextFieldAdd = null;\r
54\r
55 private JComboBox jComboBoxSelect = null;\r
56\r
57 private JScrollPane jScrollPane = null;\r
58\r
59 private JList jListLibraryClassDefinitions = null;\r
60\r
61 private JButton jButtonAdd = null;\r
62\r
63 private JButton jButtonRemove = null;\r
64\r
65 private JButton jButtonClearAll = null;\r
66\r
67 private JButton jButtonCancel = null;\r
68\r
69 private JButton jButtonOk = null;\r
70\r
71 private JLabel jLabel = null;\r
72\r
73 private JTextField jTextField = null;\r
74\r
75 private StarLabel starLabel = null;\r
76\r
77 /**\r
78 This method initializes this\r
79 \r
80 **/\r
81 private void initialize() {\r
82 this.setTitle("Package Headers");\r
83 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
84\r
85 }\r
86\r
87 /**\r
88 This method initializes jRadioButtonAdd \r
89 \r
90 @return javax.swing.JRadioButton \r
91 **/\r
92 private JRadioButton getJRadioButtonAdd() {\r
93 if (jRadioButtonAdd == null) {\r
94 jRadioButtonAdd = new JRadioButton();\r
95 jRadioButtonAdd.setBounds(new java.awt.Rectangle(10, 35, 205, 20));\r
96 jRadioButtonAdd.setText("Add a new Module Type");\r
97 jRadioButtonAdd.setEnabled(false);\r
98 jRadioButtonAdd.addActionListener(this);\r
99 jRadioButtonAdd.setSelected(false);\r
100 }\r
101 return jRadioButtonAdd;\r
102 }\r
103\r
104 /**\r
105 This method initializes jRadioButtonSelect \r
106 \r
107 @return javax.swing.JRadioButton \r
108 **/\r
109 private JRadioButton getJRadioButtonSelect() {\r
110 if (jRadioButtonSelect == null) {\r
111 jRadioButtonSelect = new JRadioButton();\r
112 jRadioButtonSelect.setBounds(new java.awt.Rectangle(10, 10, 205, 20));\r
113 jRadioButtonSelect.setText("Select an existed Module Type");\r
114 jRadioButtonSelect.setActionCommand("Select an existed Module Type");\r
115 jRadioButtonSelect.addActionListener(this);\r
116 jRadioButtonSelect.setSelected(true);\r
117 }\r
118 return jRadioButtonSelect;\r
119 }\r
120\r
121 /**\r
122 This method initializes jTextFieldAdd \r
123 \r
124 @return javax.swing.JTextField \r
125 **/\r
126 private JTextField getJTextFieldAdd() {\r
127 if (jTextFieldAdd == null) {\r
128 jTextFieldAdd = new JTextField();\r
129 jTextFieldAdd.setBounds(new java.awt.Rectangle(220, 35, 260, 20));\r
130 jTextFieldAdd.setEditable(false);\r
131 jTextFieldAdd.setEnabled(false);\r
132 }\r
133 return jTextFieldAdd;\r
134 }\r
135\r
136 /**\r
137 This method initializes jComboBoxSelect \r
138 \r
139 @return javax.swing.JComboBox \r
140 **/\r
141 private JComboBox getJComboBoxSelect() {\r
142 if (jComboBoxSelect == null) {\r
143 jComboBoxSelect = new JComboBox();\r
144 jComboBoxSelect.setBounds(new java.awt.Rectangle(220, 10, 260, 20));\r
145 jComboBoxSelect.setEnabled(true);\r
146 }\r
147 return jComboBoxSelect;\r
148 }\r
149\r
150 /**\r
151 This method initializes jScrollPane \r
152 \r
153 @return javax.swing.JScrollPane \r
154 **/\r
155 private JScrollPane getJScrollPane() {\r
156 if (jScrollPane == null) {\r
157 jScrollPane = new JScrollPane();\r
158 jScrollPane.setBounds(new java.awt.Rectangle(10, 121, 350, 174));\r
159 jScrollPane.setViewportView(getJListLibraryClassDefinitions());\r
160 }\r
161 return jScrollPane;\r
162 }\r
163\r
164 /**\r
165 This method initializes jListLibraryClassDefinitions \r
166 \r
167 @return javax.swing.JList \r
168 **/\r
169 private JList getJListLibraryClassDefinitions() {\r
170 if (jListLibraryClassDefinitions == null) {\r
171 jListLibraryClassDefinitions = new JList(listItem);\r
172 }\r
173 return jListLibraryClassDefinitions;\r
174 }\r
175\r
176 /**\r
177 This method initializes jButtonAdd \r
178 \r
179 @return javax.swing.JButton \r
180 **/\r
181 private JButton getJButtonAdd() {\r
182 if (jButtonAdd == null) {\r
183 jButtonAdd = new JButton();\r
184 jButtonAdd.setBounds(new java.awt.Rectangle(375, 132, 90, 20));\r
185 jButtonAdd.setText("Add");\r
186 jButtonAdd.addActionListener(this);\r
187 }\r
188 return jButtonAdd;\r
189 }\r
190\r
191 /**\r
192 This method initializes jButtonRemove \r
193 \r
194 @return javax.swing.JButton \r
195 **/\r
196 private JButton getJButtonRemove() {\r
197 if (jButtonRemove == null) {\r
198 jButtonRemove = new JButton();\r
199 jButtonRemove.setBounds(new java.awt.Rectangle(375, 230, 90, 20));\r
200 jButtonRemove.setText("Remove");\r
201 jButtonRemove.addActionListener(this);\r
202 }\r
203 return jButtonRemove;\r
204 }\r
205\r
206 /**\r
207 This method initializes jButtonRemoveAll \r
208 \r
209 @return javax.swing.JButton \r
210 **/\r
211 private JButton getJButtonClearAll() {\r
212 if (jButtonClearAll == null) {\r
213 jButtonClearAll = new JButton();\r
214 jButtonClearAll.setBounds(new java.awt.Rectangle(375, 260, 90, 20));\r
215 jButtonClearAll.setText("Clear All");\r
216 jButtonClearAll.addActionListener(this);\r
217 }\r
218 return jButtonClearAll;\r
219 }\r
220\r
221 /**\r
222 This method initializes jButtonCancel \r
223 \r
224 @return javax.swing.JButton \r
225 **/\r
226 private JButton getJButtonCancel() {\r
227 if (jButtonCancel == null) {\r
228 jButtonCancel = new JButton();\r
229 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
230 jButtonCancel.setLocation(new java.awt.Point(390, 305));\r
231 jButtonCancel.setText("Cancel");\r
232 jButtonCancel.setSize(new java.awt.Dimension(90, 20));\r
233 jButtonCancel.addActionListener(this);\r
234 }\r
235 return jButtonCancel;\r
236 }\r
237\r
238 /**\r
239 This method initializes jButton \r
240 \r
241 @return javax.swing.JButton \r
242 **/\r
243 private JButton getJButtonOk() {\r
244 if (jButtonOk == null) {\r
245 jButtonOk = new JButton();\r
246 jButtonOk.setSize(new java.awt.Dimension(90, 20));\r
247 jButtonOk.setText("OK");\r
248 jButtonOk.setLocation(new java.awt.Point(290, 305));\r
249 jButtonOk.addActionListener(this);\r
250 }\r
251 return jButtonOk;\r
252 }\r
253\r
254 /**\r
255 This is the default constructor\r
256 **/\r
257 public PackagePkgHeader(SpdFileContents sfc) {\r
258 super();\r
259 initialize();\r
260 init();\r
261 this.sfc = sfc;\r
262 }\r
263\r
264 /**\r
265 Start the window at the center of screen\r
266 *\r
267 **/\r
268 protected void centerWindow(int intWidth, int intHeight) {\r
269 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
270 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
271 }\r
272\r
273 /**\r
274 Start the window at the center of screen\r
275 *\r
276 **/\r
277 protected void centerWindow() {\r
278 centerWindow(this.getSize().width, this.getSize().height);\r
279 }\r
280\r
281 // private void init(LibraryClassDefinitionsDocument.LibraryClassDefinitions inLibraryClassDefinitions) {\r
282 // init();\r
283 // this.setLibraryClassDefinitions(inLibraryClassDefinitions);\r
284 // int intLibraryCount = this.libraryClassDefinitions.getLibraryClassArray().length;\r
285 // if (intLibraryCount > 0) {\r
286 // for (int index = 0; index < intLibraryCount; index++) {\r
287 // listItem.addElement(this.libraryClassDefinitions.getLibraryClassArray(index).getUsage().toString() + \r
288 // this.Separator + \r
289 // this.libraryClassDefinitions.getLibraryClassArray(index).getStringValue());\r
290 // this.libraryClassDefinitions.getLibraryClassArray();\r
291 // }\r
292 // }\r
293 // }\r
294\r
295 /**\r
296 This method initializes this\r
297 \r
298 @return void\r
299 **/\r
300 private void init() {\r
301 this.setContentPane(getJContentPane());\r
302 this.setTitle("Library Class Declarations");\r
303 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
304 this.centerWindow();\r
305 initFrame();\r
306 }\r
307\r
308 /**\r
309 This method initializes jContentPane\r
310 \r
311 @return javax.swing.JPanel\r
312 **/\r
313 private JPanel getJContentPane() {\r
314 if (jContentPane == null) {\r
315 starLabel = new StarLabel();\r
316 starLabel.setBounds(new java.awt.Rectangle(5, 85, 10, 20));\r
317 jLabel = new JLabel();\r
318 jLabel.setBounds(new java.awt.Rectangle(14, 85, 201, 22));\r
319 jLabel.setText("Include Header for Selected Type");\r
320 jContentPane = new JPanel();\r
321 jContentPane.setLayout(null);\r
322 jContentPane.add(getJRadioButtonAdd(), null);\r
323 jContentPane.add(getJRadioButtonSelect(), null);\r
324 jContentPane.add(getJTextFieldAdd(), null);\r
325 jContentPane.add(getJComboBoxSelect(), null);\r
326 jContentPane.add(getJScrollPane(), null);\r
327 jContentPane.add(getJButtonAdd(), null);\r
328 jContentPane.add(getJButtonRemove(), null);\r
329 jContentPane.add(getJButtonClearAll(), null);\r
330 jContentPane.add(getJButtonCancel(), null);\r
331 jContentPane.add(getJButtonOk(), null);\r
332 jContentPane.add(jLabel, null);\r
333 jContentPane.add(getJTextField(), null);\r
334 jContentPane.add(starLabel, null);\r
335 }\r
336 return jContentPane;\r
337 }\r
338\r
339 private void initFrame() {\r
340 jComboBoxSelect.addItem("BASE");\r
341 jComboBoxSelect.addItem("SEC");\r
342 jComboBoxSelect.addItem("PEI_CORE");\r
343 jComboBoxSelect.addItem("PEIM");\r
344 jComboBoxSelect.addItem("DXE_CORE");\r
345 jComboBoxSelect.addItem("DXE_DRIVER");\r
346 jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
347 jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
348 jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
349 jComboBoxSelect.addItem("TOOLS");\r
350 jComboBoxSelect.addItem("UEFI_DRIVER");\r
351 jComboBoxSelect.addItem("UEFI_APPLICATION");\r
352 jComboBoxSelect.addItem("USER_DEFINED");\r
353\r
354 }\r
355\r
356 public void actionPerformed(ActionEvent arg0) {\r
357 if (arg0.getSource() == jButtonOk) {\r
358 this.save();\r
359 this.dispose();\r
360\r
361 }\r
362 if (arg0.getSource() == jButtonCancel) {\r
363 this.dispose();\r
364 }\r
365\r
366 if (arg0.getSource() == jButtonAdd) {\r
367 String strLibClass = "";\r
368\r
369 if (jRadioButtonAdd.isSelected()) {\r
370 strLibClass = jTextFieldAdd.getText();\r
371 }\r
372 if (jRadioButtonSelect.isSelected()) {\r
373 strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
374 }\r
375\r
33f1b485 376 listItem.addElement(jTextField.getText().replace('\\', '/') + Separator + strLibClass);\r
878ddf1f 377 }\r
378\r
379 if (arg0.getSource() == jButtonRemove) {\r
380 int intSelected[] = jListLibraryClassDefinitions.getSelectedIndices();\r
381 if (intSelected.length > 0) {\r
382 for (int index = intSelected.length - 1; index > -1; index--) {\r
383 listItem.removeElementAt(intSelected[index]);\r
384 }\r
385 }\r
386 jListLibraryClassDefinitions.getSelectionModel().clearSelection();\r
387 }\r
388\r
389 if (arg0.getSource() == jButtonClearAll) {\r
390 listItem.removeAllElements();\r
391 }\r
392\r
393 if (arg0.getSource() == jRadioButtonAdd) {\r
394 if (jRadioButtonAdd.isSelected()) {\r
395 jRadioButtonSelect.setSelected(false);\r
396 jTextFieldAdd.setEnabled(true);\r
397 jComboBoxSelect.setEnabled(false);\r
398 }\r
399 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
400 jRadioButtonAdd.setSelected(true);\r
401 jTextFieldAdd.setEnabled(true);\r
402 jComboBoxSelect.setEnabled(false);\r
403 }\r
404 }\r
405\r
406 if (arg0.getSource() == jRadioButtonSelect) {\r
407 if (jRadioButtonSelect.isSelected()) {\r
408 jRadioButtonAdd.setSelected(false);\r
409 jTextFieldAdd.setEnabled(false);\r
410 jComboBoxSelect.setEnabled(true);\r
411 }\r
412 if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
413 jRadioButtonSelect.setSelected(true);\r
414 jTextFieldAdd.setEnabled(false);\r
415 jComboBoxSelect.setEnabled(true);\r
416 }\r
417 }\r
418 }\r
419\r
420 private void save() {\r
421 try {\r
422 int intLibraryCount = listItem.getSize();\r
423\r
424 if (intLibraryCount > 0) {\r
425\r
426 for (int index = 0; index < intLibraryCount; index++) {\r
427 String strAll = listItem.get(index).toString();\r
428 String strInclude = strAll.substring(0, strAll.indexOf(Separator));\r
429 String strType = strAll.substring(strAll.indexOf(Separator) + Separator.length());\r
430 sfc.genSpdModuleHeaders(strType, strInclude, null, null, null, null, null, null);\r
431 }\r
432 } else {\r
433\r
434 }\r
435\r
436 } catch (Exception e) {\r
437 System.out.println(e.toString());\r
438 }\r
439 }\r
440\r
441 /**\r
442 This method initializes jTextField \r
443 \r
444 @return javax.swing.JTextField \r
445 **/\r
446 private JTextField getJTextField() {\r
447 if (jTextField == null) {\r
448 jTextField = new JTextField();\r
449 jTextField.setBounds(new java.awt.Rectangle(221, 86, 257, 21));\r
450 }\r
451 return jTextField;\r
452 }\r
453\r
454}\r