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