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