]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/PackageEditor/src/org/tianocore/packaging/UpdateLibraryClass.java
Remove the assumption of package location under workspace and prompt user to specify...
[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
ee19dec6 158 if (jTable.isEditing()) {\r
159 jTable.getCellEditor().stopCellEditing();\r
160 }\r
878ddf1f 161 sfc.removeSpdLibClass();\r
162 int rowCount = model.getRowCount();\r
163 int i = 0;\r
164 while (i < rowCount) {\r
165 String libClass = null;\r
166 if (model.getValueAt(i, 0) != null) {\r
167 libClass = model.getValueAt(i, 0).toString();\r
168 }\r
169 String headerFile = null;\r
170 if (model.getValueAt(i, 1) != null) {\r
171 headerFile = model.getValueAt(i, 1).toString();\r
172 }\r
173 sfc.genSpdLibClassDeclarations(libClass, null, headerFile, null, null, null, null, null, null, null);\r
174 i++;\r
175 }\r
176 }\r
177\r
178 /**\r
179 This method initializes jButtonOk \r
180 \r
181 @return javax.swing.JButton \r
182 **/\r
183 private JButton getJButtonOk() {\r
184 if (jButtonOk == null) {\r
185 jButtonOk = new JButton();\r
186 jButtonOk.setText("Ok");\r
187 jButtonOk.setSize(new java.awt.Dimension(84, 20));\r
188 jButtonOk.setLocation(new java.awt.Point(316, 486));\r
189 jButtonOk.addActionListener(this);\r
190 }\r
191 return jButtonOk;\r
192 }\r
193\r
194 /**\r
195 This method initializes jButtonCancel \r
196 \r
197 @return javax.swing.JButton \r
198 **/\r
199 private JButton getJButtonCancel() {\r
200 if (jButtonCancel == null) {\r
201 jButtonCancel = new JButton();\r
202 jButtonCancel.setText("Cancel");\r
203 jButtonCancel.setSize(new java.awt.Dimension(82, 20));\r
204 jButtonCancel.setLocation(new java.awt.Point(411, 486));\r
205 jButtonCancel.addActionListener(this);\r
206 }\r
207 return jButtonCancel;\r
208 }\r
209\r
210 /**\r
211 This method initializes jButton \r
212 \r
213 @return javax.swing.JButton \r
214 **/\r
215 private JButton getJButton() {\r
216 if (jButton == null) {\r
217 jButton = new JButton();\r
218 jButton.setBounds(new java.awt.Rectangle(221, 486, 79, 19));\r
219 jButton.setText("Insert");\r
220 jButton.addActionListener(this);\r
221 }\r
222 return jButton;\r
223 }\r
224} // @jve:decl-index=0:visual-constraint="11,7"\r