]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepTwo.java
Make opening dialogs re-gain focus when user switch back to main UI from other window...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / createui / CreateStepTwo.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.createui;\r
15\r
16import java.awt.event.MouseEvent;\r
17import java.awt.event.MouseListener;\r
18import java.util.ArrayList;\r
19import java.util.Iterator;\r
20import java.util.List;\r
21import java.util.Vector;\r
22\r
23import javax.swing.JButton;\r
24import javax.swing.JLabel;\r
5f0b744e 25import javax.swing.JOptionPane;\r
5a24e806 26import javax.swing.JPanel;\r
27import javax.swing.JScrollPane;\r
28import javax.swing.JTextArea;\r
29\r
30import org.tianocore.frameworkwizard.common.Log;\r
31import org.tianocore.frameworkwizard.common.ui.IDialog;\r
32import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
2e39c718 33import org.tianocore.frameworkwizard.far.FarStringDefinition;\r
5a24e806 34import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
35import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
36import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
37\r
38public class CreateStepTwo extends IDialog implements MouseListener {\r
39\r
40 /**\r
41 * \r
42 */\r
43 private static final long serialVersionUID = 3003841865197005528L;\r
44\r
45 private JPanel jContentPane = null;\r
46\r
47 private JTextArea jTextArea = null;\r
48\r
49 private JLabel jLabel = null;\r
50\r
51 private JLabel jLabel1 = null;\r
52\r
53 private ICheckBoxList jComboBoxPackage = null;\r
54\r
55 private ICheckBoxList jComboBoxPlatform = null;\r
56\r
57 private JButton jButtonNext = null;\r
58\r
59 private JButton jButtonCancel = null;\r
60\r
61 private JScrollPane jScrollPanePackage = null;\r
62\r
63 private JScrollPane jScrollPanePlatform = null;\r
64\r
65 private CreateStepThree stepThree = null;\r
66\r
67 private Vector<PlatformIdentification> platformVector = null;\r
68\r
69 private Vector<PackageIdentification> packageVector = null;\r
70\r
71 private CreateStepOne stepOne = null;\r
72\r
73 private JButton jButtonPrevious = null;\r
74\r
75 public CreateStepTwo(IDialog iDialog, boolean modal, CreateStepOne stepOne) {\r
76 this(iDialog, modal);\r
77 this.stepOne = stepOne;\r
78 }\r
79\r
80 /**\r
81 * This method initializes jTextArea \r
82 * \r
83 * @return javax.swing.JTextArea \r
84 */\r
85 private JTextArea getJTextArea() {\r
86 if (jTextArea == null) {\r
87 jTextArea = new JTextArea();\r
88 jTextArea.setBounds(new java.awt.Rectangle(30, 7, 642, 50));\r
2e39c718 89 jTextArea.setText("Choose at least one package or platform. ");\r
5a24e806 90 jTextArea.setEditable(false);\r
91 }\r
92 return jTextArea;\r
93 }\r
94\r
95 /**\r
96 * This method initializes jComboBox \r
97 * \r
98 * @return javax.swing.JComboBox \r
99 */\r
100 private ICheckBoxList getJComboBoxPackage() {\r
101 if (jComboBoxPackage == null) {\r
102 jComboBoxPackage = new ICheckBoxList();\r
103 WorkspaceTools wt = new WorkspaceTools();\r
104 Vector<String> v = new Vector<String>();\r
5f0b744e 105 packageVector = wt.getAllPackages();\r
5a24e806 106 Iterator<PackageIdentification> iter = packageVector.iterator();\r
107 while (iter.hasNext()) {\r
108 PackageIdentification item = iter.next();\r
109 String str = item.getName() + " " + item.getVersion() + " [" + item.getPath() + "]";\r
110 v.addElement(str);\r
111 }\r
112 jComboBoxPackage.setAllItems(v);\r
113 }\r
114 return jComboBoxPackage;\r
115 }\r
116\r
117 /**\r
118 * This method initializes jComboBox1 \r
119 * \r
120 * @return javax.swing.JComboBox \r
121 */\r
122 private ICheckBoxList getJComboBoxPlatform() {\r
123 if (jComboBoxPlatform == null) {\r
124 jComboBoxPlatform = new ICheckBoxList();\r
125 WorkspaceTools wt = new WorkspaceTools();\r
126 Vector<String> v = new Vector<String>();\r
127 platformVector = wt.getAllPlatforms();\r
128 Iterator<PlatformIdentification> iter = platformVector.iterator();\r
129 while (iter.hasNext()) {\r
130 PlatformIdentification item = iter.next();\r
131 String str = item.getName() + " " + item.getVersion() + " [" + item.getPath() + "]";\r
132 v.addElement(str);\r
133 }\r
134 jComboBoxPlatform.setAllItems(v);\r
135 }\r
136 return jComboBoxPlatform;\r
137 }\r
138\r
139 /**\r
140 * This method initializes jButtonNext \r
141 * \r
142 * @return javax.swing.JButton \r
143 */\r
144 private JButton getJButtonNext() {\r
145 if (jButtonNext == null) {\r
146 jButtonNext = new JButton();\r
147 jButtonNext.setBounds(new java.awt.Rectangle(470, 330, 90, 20));\r
148 jButtonNext.setText("Next");\r
149 jButtonNext.addMouseListener(this);\r
150 }\r
151 return jButtonNext;\r
152 }\r
153\r
154 /**\r
155 * This method initializes jButtonCancel \r
156 * \r
157 * @return javax.swing.JButton \r
158 */\r
159 private JButton getJButtonCancel() {\r
160 if (jButtonCancel == null) {\r
161 jButtonCancel = new JButton();\r
162 jButtonCancel.setBounds(new java.awt.Rectangle(570, 330, 90, 20));\r
163 jButtonCancel.setText("Cancel");\r
164 jButtonCancel.addMouseListener(this);\r
165 }\r
166 return jButtonCancel;\r
167 }\r
168\r
169 /**\r
170 * This method initializes jScrollPane \r
171 * \r
172 * @return javax.swing.JScrollPane \r
173 */\r
174 private JScrollPane getJScrollPanePackage() {\r
175 if (jScrollPanePackage == null) {\r
176 jScrollPanePackage = new JScrollPane();\r
a45e9a40 177 jScrollPanePackage.setBounds(new java.awt.Rectangle(140,65,535,130));\r
5a24e806 178 jScrollPanePackage.setViewportView(getJComboBoxPackage());\r
179 }\r
180 return jScrollPanePackage;\r
181 }\r
182\r
183 /**\r
184 * This method initializes jScrollPane1 \r
185 * \r
186 * @return javax.swing.JScrollPane \r
187 */\r
188 private JScrollPane getJScrollPanePlatform() {\r
189 if (jScrollPanePlatform == null) {\r
190 jScrollPanePlatform = new JScrollPane();\r
a45e9a40 191 jScrollPanePlatform.setBounds(new java.awt.Rectangle(140,200,535,110));\r
5a24e806 192 jScrollPanePlatform.setViewportView(getJComboBoxPlatform());\r
193 }\r
194 return jScrollPanePlatform;\r
195 }\r
196\r
197 /**\r
198 * This is the default constructor\r
199 */\r
200 public CreateStepTwo(IDialog iDialog, boolean modal) {\r
201 super(iDialog, modal);\r
202 initialize();\r
203 }\r
204\r
205 /**\r
206 * This method initializes this\r
207 * \r
208 * @return void\r
209 */\r
210 private void initialize() {\r
211 this.setSize(700, 400);\r
212 this.setContentPane(getJContentPane());\r
2e39c718 213 this.setTitle(FarStringDefinition.CREATE_STEP_TWO_TITLE);\r
5a24e806 214 this.centerWindow();\r
215 }\r
216\r
217 /**\r
218 * This method initializes jContentPane\r
219 * \r
220 * @return javax.swing.JPanel\r
221 */\r
222 private JPanel getJContentPane() {\r
223 if (jContentPane == null) {\r
224 jLabel1 = new JLabel();\r
225 jLabel1.setBounds(new java.awt.Rectangle(30, 200, 100, 20));\r
226 jLabel1.setText("Platforms: ");\r
227 jLabel = new JLabel();\r
228 jLabel.setBounds(new java.awt.Rectangle(30, 64, 100, 20));\r
229 jLabel.setText("Packages:");\r
230 jContentPane = new JPanel();\r
231 jContentPane.setLayout(null);\r
232 jContentPane.add(getJTextArea(), null);\r
233 jContentPane.add(jLabel, null);\r
234 jContentPane.add(jLabel1, null);\r
235 jContentPane.add(getJButtonNext(), null);\r
236 jContentPane.add(getJButtonCancel(), null);\r
237 jContentPane.add(getJScrollPanePackage(), null);\r
238 jContentPane.add(getJScrollPanePlatform(), null);\r
239 jContentPane.add(getJButtonPrevious(), null);\r
240 }\r
241 return jContentPane;\r
242 }\r
243\r
244 public void mouseClicked(MouseEvent e) {\r
245 if (e.getSource() == jButtonCancel) {\r
246 this.setVisible(false);\r
247 } else if (e.getSource() == jButtonPrevious) {\r
248 this.setVisible(false);\r
249 stepOne.setVisible(true);\r
250 } else if (e.getSource() == jButtonNext) {\r
251 //\r
252 // Add some logic process here\r
253 //\r
254 if (jComboBoxPlatform.getAllCheckedItemsIndex().size() == 0\r
255 && jComboBoxPackage.getAllCheckedItemsIndex().size() == 0) {\r
156ed4d0 256 Log.wrn("Create far", "Choose at least one package and/or platform.");\r
5a24e806 257 return;\r
258 }\r
5f0b744e 259 \r
260 //\r
261 // If some packages a Repackage=false, give a warning message\r
262 //\r
263 List<PackageIdentification> selectedPackages = getSelectedPackages();\r
264 WorkspaceTools wt = new WorkspaceTools();\r
265 List<PackageIdentification> allRepackablePackages = wt.getAllRepackagablePackages();\r
266 \r
267 List<PackageIdentification> unRepackablePackages = new Vector<PackageIdentification>();\r
268 String msg = "Following selected packages: \n";\r
269 Iterator<PackageIdentification> iter = selectedPackages.iterator();\r
270 while (iter.hasNext()) {\r
271 PackageIdentification item = iter.next();\r
272 if (!allRepackablePackages.contains(item)) {\r
273 unRepackablePackages.add(item);\r
274 msg += item.getName() + "\n";\r
275 }\r
276 }\r
277 msg += "is un-Repackagable. Do you want to continue? ";\r
278 \r
279 if (unRepackablePackages.size() > 0) {\r
82484861 280 if(JOptionPane.showConfirmDialog(this, msg, "Warning", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {\r
5f0b744e 281 return ;\r
282 }\r
283 }\r
284 \r
5a24e806 285 if (stepThree == null) {\r
286 stepThree = new CreateStepThree(this, true, this);\r
287 }\r
288 this.setVisible(false);\r
289 stepThree.setVisible(true);\r
290 }\r
291 }\r
292\r
293 public void mousePressed(MouseEvent e) {\r
294 // TODO Auto-generated method stub\r
295\r
296 }\r
297\r
298 public void mouseReleased(MouseEvent e) {\r
299 // TODO Auto-generated method stub\r
300\r
301 }\r
302\r
303 public void mouseEntered(MouseEvent e) {\r
304 // TODO Auto-generated method stub\r
305\r
306 }\r
307\r
308 public void mouseExited(MouseEvent e) {\r
309 // TODO Auto-generated method stub\r
310\r
311 }\r
312\r
313 /**\r
314 * This method initializes jButtonPrevious \r
315 * \r
316 * @return javax.swing.JButton \r
317 */\r
318 private JButton getJButtonPrevious() {\r
319 if (jButtonPrevious == null) {\r
320 jButtonPrevious = new JButton();\r
321 jButtonPrevious.setBounds(new java.awt.Rectangle(370, 330, 90, 20));\r
322 jButtonPrevious.setText("Previous");\r
323 jButtonPrevious.addMouseListener(this);\r
324 }\r
325 return jButtonPrevious;\r
326 }\r
327\r
328 public List<PackageIdentification> getSelectedPackages() {\r
329 Vector<Integer> v = jComboBoxPackage.getAllCheckedItemsIndex();\r
330 List<PackageIdentification> result = new ArrayList<PackageIdentification>();\r
331 for (int i = 0; i < v.size(); i++) {\r
332 result.add(packageVector.get(v.get(i).intValue()));\r
333 }\r
334 return result;\r
335 }\r
336\r
337 public List<PlatformIdentification> getSelectedPlatforms() {\r
338 Vector<Integer> v = jComboBoxPlatform.getAllCheckedItemsIndex();\r
339 List<PlatformIdentification> result = new ArrayList<PlatformIdentification>();\r
340 for (int i = 0; i < v.size(); i++) {\r
341 result.add(platformVector.get(v.get(i).intValue()));\r
342 }\r
343 return result;\r
344 }\r
345\r
346 public CreateStepOne getPreviousStep() {\r
347 return stepOne;\r
348 }\r
349}\r