]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/deleteui/DeleteStepOne.java
Fixed grammar in text messages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / deleteui / DeleteStepOne.java
CommitLineData
5a24e806 1/** @file\r
2\r
3 Copyright (c) 2006, Intel Corporation\r
4 All rights reserved. This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution. The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8 \r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11 \r
12 **/\r
13\r
14package org.tianocore.frameworkwizard.far.deleteui;\r
15\r
a45e9a40 16import java.awt.Color;\r
17import java.awt.Dimension;\r
18import java.awt.Toolkit;\r
19import java.awt.event.ActionEvent;\r
20import java.util.Iterator;\r
21import java.util.List;\r
22import java.util.Vector;\r
23\r
5a24e806 24import javax.swing.ImageIcon;\r
5a24e806 25import javax.swing.JButton;\r
5a24e806 26import javax.swing.JLabel;\r
a45e9a40 27import javax.swing.JList;\r
28import javax.swing.JPanel;\r
5a24e806 29import javax.swing.JScrollPane;\r
a45e9a40 30import javax.swing.JTextArea;\r
31import javax.swing.event.ListSelectionEvent;\r
32import javax.swing.event.ListSelectionListener;\r
5a24e806 33\r
34import org.tianocore.frameworkwizard.common.ui.IDialog;\r
35import org.tianocore.frameworkwizard.common.ui.IFrame;\r
36import org.tianocore.frameworkwizard.far.AggregationOperation;\r
37import org.tianocore.frameworkwizard.far.FarIdentification;\r
2e39c718 38import org.tianocore.frameworkwizard.far.FarStringDefinition;\r
5a24e806 39import org.tianocore.frameworkwizard.far.PackageQuery;\r
40import org.tianocore.frameworkwizard.far.PackageQueryInterface;\r
41import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
42import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
43import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
44\r
a45e9a40 45public class DeleteStepOne extends IDialog implements ListSelectionListener {\r
5a24e806 46\r
47 /**\r
48 * \r
49 */\r
50 private static final long serialVersionUID = 636773964435618476L;\r
51\r
52 private JPanel jContentPane = null;\r
53\r
54 private JButton jButtonCancel = null;\r
55\r
56 private JButton jButtonNext = null;\r
57\r
58 private JTextArea jTextAreaInstruction = null;\r
59\r
60 private JLabel jLabel = null;\r
61\r
62 private JScrollPane jScrollPane = null;\r
63\r
64 private JLabel jLabel2 = null;\r
65\r
66 private JLabel jLabel3 = null;\r
67\r
68 private JScrollPane jScrollPane1 = null;\r
69\r
70 private JScrollPane jScrollPane2 = null;\r
71\r
72 private JList jListPlatform = null;\r
73\r
74 private JList jListPackage = null;\r
75\r
76 private JLabel jLabel4 = null;\r
77\r
78 private JButton jButtonDetail = null;\r
79\r
80 private JList jListFar = null;\r
81\r
82 private JLabel jLabelImage = null;\r
83\r
84 private Vector<FarIdentification> farVector = null;\r
85\r
86 Vector<PackageIdentification> removePackages = null;\r
87\r
88 Vector<PlatformIdentification> removePlatforms = null;\r
89\r
90 private DeleteStepTwo stepTwo = null;\r
91\r
92 /**\r
93 * This method initializes jButtonCancel\r
94 * \r
95 * @return javax.swing.JButton\r
96 */\r
97 private JButton getJButtonCancel() {\r
98 if (jButtonCancel == null) {\r
99 jButtonCancel = new JButton();\r
100 jButtonCancel.setBounds(new java.awt.Rectangle(570, 330, 90, 20));\r
101 jButtonCancel.setText("Cancel");\r
a45e9a40 102 jButtonCancel.addActionListener(this);\r
5a24e806 103 }\r
104 return jButtonCancel;\r
105 }\r
106\r
107 /**\r
108 * This method initializes jButtonFinish\r
109 * \r
110 * @return javax.swing.JButton\r
111 */\r
112 private JButton getJButtonNext() {\r
113 if (jButtonNext == null) {\r
114 jButtonNext = new JButton();\r
115 jButtonNext.setBounds(new java.awt.Rectangle(470, 330, 90, 20));\r
116 jButtonNext.setText("Next");\r
117 jButtonNext.setEnabled(false);\r
a45e9a40 118 jButtonNext.addActionListener(this);\r
5a24e806 119 }\r
120 return jButtonNext;\r
121 }\r
122\r
123 /**\r
124 * This method initializes jTextArea1\r
125 * \r
126 * @return javax.swing.JTextArea\r
127 */\r
128 private JTextArea getJTextArea1() {\r
129 if (jTextAreaInstruction == null) {\r
130 jTextAreaInstruction = new JTextArea();\r
156ed4d0 131 jTextAreaInstruction.setBounds(new java.awt.Rectangle(30, 7, 662, 50));\r
132 jTextAreaInstruction.setText("Step 1: Select FAR to remove.\n");\r
5a24e806 133 jTextAreaInstruction.setCaretColor(Color.RED);\r
134 jTextAreaInstruction\r
156ed4d0 135 .append("After choosing the FAR, the packages and/or platforms that belong to the FAR will displayed.\n");\r
136 jTextAreaInstruction.append("Icon \"OK\" or \"NO\" indicates whether the FAR can be safely removed.");\r
5a24e806 137 jTextAreaInstruction.setEditable(false);\r
138 }\r
139 return jTextAreaInstruction;\r
140 }\r
141\r
142 /**\r
143 * This method initializes jScrollPane\r
144 * \r
145 * @return javax.swing.JScrollPane\r
146 */\r
147 private JScrollPane getJScrollPane() {\r
148 if (jScrollPane == null) {\r
149 jScrollPane = new JScrollPane();\r
a45e9a40 150 jScrollPane.setBounds(new java.awt.Rectangle(140, 65, 530, 100));\r
5a24e806 151 jScrollPane.setViewportView(getJListFar());\r
152 }\r
153 return jScrollPane;\r
154 }\r
155\r
156 /**\r
157 * This method initializes jScrollPane1\r
158 * \r
159 * @return javax.swing.JScrollPane\r
160 */\r
161 private JScrollPane getJScrollPane1() {\r
162 if (jScrollPane1 == null) {\r
163 jScrollPane1 = new JScrollPane();\r
a45e9a40 164 jScrollPane1.setBounds(new java.awt.Rectangle(30, 195, 300, 115));\r
5a24e806 165 jScrollPane1.setViewportView(getJListPackage());\r
166 }\r
167 return jScrollPane1;\r
168 }\r
169\r
170 /**\r
171 * This method initializes jScrollPane2\r
172 * \r
173 * @return javax.swing.JScrollPane\r
174 */\r
175 private JScrollPane getJScrollPane2() {\r
176 if (jScrollPane2 == null) {\r
177 jScrollPane2 = new JScrollPane();\r
a45e9a40 178 jScrollPane2.setBounds(new java.awt.Rectangle(360, 195, 310, 115));\r
5a24e806 179 jScrollPane2.setViewportView(getJListPlatform());\r
180 }\r
181 return jScrollPane2;\r
182 }\r
183\r
184 /**\r
185 * This method initializes jList\r
186 * \r
187 * @return javax.swing.JList\r
188 */\r
189 private JList getJListPlatform() {\r
190 if (jListPlatform == null) {\r
191 jListPlatform = new JList();\r
192 jListPlatform.setEnabled(false);\r
193 }\r
194 return jListPlatform;\r
195 }\r
196\r
197 /**\r
198 * This method initializes jList1\r
199 * \r
200 * @return javax.swing.JList\r
201 */\r
202 private JList getJListPackage() {\r
203 if (jListPackage == null) {\r
204 jListPackage = new JList();\r
205 jListPackage.setEnabled(false);\r
206 }\r
207 return jListPackage;\r
208 }\r
209\r
210 /**\r
211 * This method initializes jButtonDetail\r
212 * \r
213 * @return javax.swing.JButton\r
214 */\r
215 private JButton getJButtonDetail() {\r
216 if (jButtonDetail == null) {\r
217 jButtonDetail = new JButton();\r
218 jButtonDetail.setBounds(new java.awt.Rectangle(367, 325, 69, 20));\r
219 jButtonDetail.setText("Detail");\r
220 jButtonDetail.setVisible(false);\r
5a24e806 221 }\r
222 return jButtonDetail;\r
223 }\r
224\r
225 /**\r
226 * This method initializes jListFar\r
227 * \r
228 * @return javax.swing.JList\r
229 */\r
230 private JList getJListFar() {\r
231 if (jListFar == null) {\r
232 jListFar = new JList();\r
233 WorkspaceTools wt = new WorkspaceTools();\r
234 farVector = wt.getAllFars();\r
235 jListFar.setListData(farVector);\r
236 jListFar.addListSelectionListener(this);\r
237 }\r
238 return jListFar;\r
239 }\r
240\r
241 /**\r
242 * This is the default constructor\r
243 */\r
244 public DeleteStepOne(IFrame iFrame, boolean modal) {\r
245 super(iFrame, modal);\r
246 initialize();\r
247 }\r
248\r
249 /**\r
250 * This method initializes this\r
251 * \r
252 * @return void\r
253 */\r
254 private void initialize() {\r
255 this.setSize(700, 400);\r
256 this.setContentPane(getJContentPane());\r
2e39c718 257 this.setTitle(FarStringDefinition.DELETE_STEP_ONE_TITLE);\r
5a24e806 258 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
259 this.setLocation((d.width - this.getSize().width) / 2, (d.height - this.getSize().height) / 2);\r
260 }\r
261\r
262 /**\r
263 * This method initializes jContentPane\r
264 * \r
265 * @return javax.swing.JPanel\r
266 */\r
267 private JPanel getJContentPane() {\r
268 if (jContentPane == null) {\r
269 jLabelImage = new JLabel();\r
270 jLabelImage.setBounds(new java.awt.Rectangle(30, 319, 36, 36));\r
271 jLabel4 = new JLabel();\r
156ed4d0 272 jLabel4.setBounds(new java.awt.Rectangle(71, 325, 320, 20));\r
5a24e806 273 jLabel3 = new JLabel();\r
274 jLabel3.setBounds(new java.awt.Rectangle(360, 170, 113, 20));\r
275 jLabel3.setText("FAR's Platforms");\r
276 jLabel2 = new JLabel();\r
a45e9a40 277 jLabel2.setBounds(new java.awt.Rectangle(30, 170, 113, 20));\r
5a24e806 278 jLabel2.setText("FAR's Packages");\r
279 jLabel = new JLabel();\r
a45e9a40 280 jLabel.setBounds(new java.awt.Rectangle(30, 65, 100, 20));\r
5a24e806 281 jLabel.setText("Select one FAR: ");\r
282 jContentPane = new JPanel();\r
283 jContentPane.setLayout(null);\r
284 jContentPane.add(getJButtonCancel(), null);\r
285 jContentPane.add(getJButtonNext(), null);\r
286 jContentPane.add(getJTextArea1(), null);\r
287 jContentPane.add(jLabel, null);\r
288 jContentPane.add(getJScrollPane(), null);\r
289 jContentPane.add(jLabel2, null);\r
290 jContentPane.add(jLabel3, null);\r
291 jContentPane.add(getJScrollPane1(), null);\r
292 jContentPane.add(getJScrollPane2(), null);\r
293 jContentPane.add(jLabel4, null);\r
294 jContentPane.add(getJButtonDetail(), null);\r
295 jContentPane.add(jLabelImage, null);\r
296 }\r
297 return jContentPane;\r
298 }\r
299\r
300 public void valueChanged(ListSelectionEvent e) {\r
301 //\r
302 // Add logic for FAR list value changed\r
303 //\r
304 if (e.getSource() == jListFar) {\r
305 boolean flag = true;\r
306 FarIdentification far = (FarIdentification) jListFar.getSelectedValue();\r
307 WorkspaceTools wt = new WorkspaceTools();\r
308\r
309 removePackages = wt.getPackagesByFar(far);\r
310 jListPackage.setListData(removePackages);\r
311 removePlatforms = wt.getPlatformsByFar(far);\r
312 jListPlatform.setListData(removePlatforms);\r
313\r
314 //\r
315 // Get Dependencies Info for current FAR\r
316 //\r
317 List<PackageIdentification> allPackages = wt.getAllPackages();\r
318\r
319 //\r
320 // Remain packages\r
321 //\r
322 allPackages.removeAll(removePackages);\r
323\r
324 Iterator<PackageIdentification> iter = allPackages.iterator();\r
325\r
326 PackageQueryInterface pq = new PackageQuery();\r
327 while (iter.hasNext()) {\r
328 PackageIdentification item = iter.next();\r
329 List<PackageIdentification> list = pq.getPackageDependencies(item.getSpdFile());\r
330 List<PackageIdentification> result = AggregationOperation.minus(list, allPackages);\r
331 if (result.size() > 0) {\r
332 if (AggregationOperation.intersection(result, removePackages).size() > 0) {\r
333 flag = false;\r
334 break;\r
335 }\r
336 }\r
337 }\r
338\r
339 if (flag) {\r
340 jLabelImage.setIcon(new ImageIcon(getClass().getResource("/resources/images/Yes.JPG")));\r
156ed4d0 341 jLabel4.setText("None of the remaining packages depend on this FAR. ");\r
5a24e806 342 jButtonDetail.setVisible(false);\r
343 jButtonNext.setEnabled(true);\r
5a24e806 344 } else {\r
345 jLabelImage.setIcon(new ImageIcon(getClass().getResource("/resources/images/No.JPG")));\r
156ed4d0 346 jLabel4.setText("Some of the remaining packages still depend on this FAR. ");\r
5a24e806 347 // jButtonDetail.setVisible(true);\r
348 jButtonNext.setEnabled(false);\r
5a24e806 349 }\r
350 }\r
351 }\r
a45e9a40 352 \r
353 public void actionPerformed(ActionEvent e) {\r
5a24e806 354 if (e.getSource() == jButtonCancel) {\r
355 this.setVisible(false);\r
356 } else if (e.getSource() == jButtonNext) {\r
357 //\r
358 // Add some logic process here\r
359 //\r
360\r
361 if (stepTwo == null) {\r
362 stepTwo = new DeleteStepTwo(this, true, this);\r
363 }\r
364 this.setVisible(false);\r
365 stepTwo.setVisible(true);\r
366 }\r
5a24e806 367\r
368 }\r
369\r
370 public FarIdentification getSelecedFar() {\r
371 return (FarIdentification) jListFar.getSelectedValue();\r
372 }\r
373\r
374}\r