]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/PackageEditor/src/org/tianocore/packaging/UpdatePkgHeader.java
Change Workspace to X:
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / UpdatePkgHeader.java
CommitLineData
878ddf1f 1/** @file\r
2 Java class UpdatePkgHeader is GUI for update Package Header in 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 javax.swing.DefaultCellEditor;\r
16import javax.swing.JComboBox;\r
17import javax.swing.JPanel;\r
18import javax.swing.JFrame;\r
19import javax.swing.JLabel;\r
20import javax.swing.JTextField;\r
21import javax.swing.JButton;\r
22\r
23import javax.swing.JScrollPane;\r
24import javax.swing.JTable;\r
25import javax.swing.table.*;\r
26\r
27import org.tianocore.common.Tools;\r
28\r
29import java.awt.event.ActionEvent;\r
30import java.awt.event.ActionListener;\r
31import java.io.*;\r
32\r
33/**\r
34 GUI for update Package Header in spd file\r
35 \r
36 @since PackageEditor 1.0\r
37**/\r
38public class UpdatePkgHeader extends JFrame implements ActionListener {\r
39\r
40 private JPanel jContentPane = null;\r
41\r
42 private JScrollPane jScrollPane = null;\r
43\r
44 private JTable jTable = null;\r
45\r
46 private SpdFileContents sfc = null;\r
47\r
48 private JButton jButtonOk = null;\r
49\r
50 private JButton jButtonCancel = null;\r
51\r
52 private DefaultTableModel model = null;\r
53\r
54 private JButton jButton = null;\r
55\r
56 /**\r
57 This is the default constructor\r
58 **/\r
59 public UpdatePkgHeader(SpdFileContents sfc) {\r
60 super();\r
61 this.sfc = sfc;\r
62 initialize();\r
63\r
64 }\r
65\r
66 public void actionPerformed(ActionEvent arg0) {\r
67 if (arg0.getSource() == jButtonOk) {\r
68 this.save();\r
69 this.dispose();\r
70\r
71 }\r
72 if (arg0.getSource() == jButtonCancel) {\r
73 this.dispose();\r
74\r
75 }\r
76\r
77 if (arg0.getSource() == jButton) {\r
78 String[] o = { "BASE", "" };\r
79 model.addRow(o);\r
80 }\r
81 }\r
82\r
83 /**\r
84 This method initializes this\r
85 \r
86 @return void\r
87 **/\r
88 private void initialize() {\r
89 this.setSize(604, 553);\r
90 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
91 this.setTitle("Update Package Headers");\r
92 this.setContentPane(getJContentPane());\r
93 }\r
94\r
95 /**\r
96 This method initializes jContentPane\r
97 \r
98 @return javax.swing.JPanel\r
99 **/\r
100 private JPanel getJContentPane() {\r
101 if (jContentPane == null) {\r
102 jContentPane = new JPanel();\r
103 jContentPane.setLayout(null);\r
104 jContentPane.add(getJScrollPane(), null);\r
105 jContentPane.add(getJButtonOk(), null);\r
106 jContentPane.add(getJButtonCancel(), null);\r
107 jContentPane.add(getJButton(), null);\r
108 }\r
109 return jContentPane;\r
110 }\r
111\r
112 /**\r
113 This method initializes jScrollPane \r
114 \r
115 @return javax.swing.JScrollPane \r
116 **/\r
117 private JScrollPane getJScrollPane() {\r
118 if (jScrollPane == null) {\r
119 jScrollPane = new JScrollPane();\r
120 jScrollPane.setBounds(new java.awt.Rectangle(38, 45, 453, 419));\r
121 jScrollPane.setViewportView(getJTable());\r
122 }\r
123 return jScrollPane;\r
124 }\r
125\r
126 /**\r
127 This method initializes jTable \r
128 \r
129 @return javax.swing.JTable \r
130 **/\r
131 private JTable getJTable() {\r
132 if (jTable == null) {\r
133 model = new DefaultTableModel();\r
134 jTable = new JTable(model);\r
135 jTable.setRowHeight(20);\r
136 model.addColumn("ModuleType");\r
137 model.addColumn("IncludeHeader");\r
138 //\r
139 // Using combobox to display ModuleType in table\r
140 //\r
141 TableColumn typeColumn = jTable.getColumnModel().getColumn(0);\r
142 JComboBox jComboBoxSelect = new JComboBox();\r
143 jComboBoxSelect.addItem("BASE");\r
144 jComboBoxSelect.addItem("SEC");\r
145 jComboBoxSelect.addItem("PEI_CORE");\r
146 jComboBoxSelect.addItem("PEIM");\r
147 jComboBoxSelect.addItem("DXE_CORE");\r
148 jComboBoxSelect.addItem("DXE_DRIVER");\r
149 jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
150 jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
151 jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
152 jComboBoxSelect.addItem("TOOLS");\r
153 jComboBoxSelect.addItem("UEFI_DRIVER");\r
154 jComboBoxSelect.addItem("UEFI_APPLICATION");\r
155 jComboBoxSelect.addItem("USER_DEFINED");\r
156 typeColumn.setCellEditor(new DefaultCellEditor(jComboBoxSelect));\r
157\r
158 if (sfc.getSpdPackageHeaderCount() == 0) {\r
159 return jTable;\r
160 }\r
161 String[][] saa = new String[sfc.getSpdPackageHeaderCount()][2];\r
162 sfc.getSpdPackageHeaders(saa);\r
163 int i = 0;\r
164 while (i < saa.length) {\r
165 model.addRow(saa[i]);\r
166 i++;\r
167 }\r
168\r
169 }\r
170 return jTable;\r
171 }\r
172\r
173 /**\r
174 Remove original package headers before saving updated ones\r
175 **/\r
176 protected void save() {\r
ee19dec6 177 if (jTable.isEditing()) {\r
178 jTable.getCellEditor().stopCellEditing();\r
179 }\r
878ddf1f 180 sfc.removeSpdPkgHeader();\r
181 int rowCount = model.getRowCount();\r
182 int i = 0;\r
183 while (i < rowCount) {\r
184 String headFile = null;\r
185 if (model.getValueAt(i, 1) != null) {\r
186 headFile = model.getValueAt(i, 1).toString();\r
187 }\r
188 sfc.genSpdModuleHeaders(model.getValueAt(i, 0).toString(), headFile, null, null, null, null, null, null);\r
189 i++;\r
190 }\r
191 }\r
192\r
193 /**\r
194 This method initializes jButtonOk \r
195 \r
196 @return javax.swing.JButton \r
197 **/\r
198 private JButton getJButtonOk() {\r
199 if (jButtonOk == null) {\r
200 jButtonOk = new JButton();\r
201 jButtonOk.setText("Ok");\r
202 jButtonOk.setSize(new java.awt.Dimension(84, 20));\r
203 jButtonOk.setLocation(new java.awt.Point(316, 486));\r
204 jButtonOk.addActionListener(this);\r
205 }\r
206 return jButtonOk;\r
207 }\r
208\r
209 /**\r
210 This method initializes jButtonCancel \r
211 \r
212 @return javax.swing.JButton \r
213 **/\r
214 private JButton getJButtonCancel() {\r
215 if (jButtonCancel == null) {\r
216 jButtonCancel = new JButton();\r
217 jButtonCancel.setText("Cancel");\r
218 jButtonCancel.setSize(new java.awt.Dimension(82, 20));\r
219 jButtonCancel.setLocation(new java.awt.Point(411, 486));\r
220 jButtonCancel.addActionListener(this);\r
221 }\r
222 return jButtonCancel;\r
223 }\r
224\r
225 /**\r
226 This method initializes jButton \r
227 \r
228 @return javax.swing.JButton \r
229 **/\r
230 private JButton getJButton() {\r
231 if (jButton == null) {\r
232 jButton = new JButton();\r
233 jButton.setBounds(new java.awt.Rectangle(220, 486, 85, 20));\r
234 jButton.setText("Insert");\r
235 jButton.addActionListener(this);\r
236 }\r
237 return jButton;\r
238 }\r
239} // @jve:decl-index=0:visual-constraint="11,7"\r