]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepFour.java
Fixed grammar in text messages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / createui / CreateStepFour.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.io.File;\r
19import java.util.ArrayList;\r
20import java.util.Iterator;\r
21import java.util.List;\r
22\r
23import javax.swing.JButton;\r
24import javax.swing.JFileChooser;\r
25import javax.swing.JLabel;\r
26import javax.swing.JPanel;\r
27import javax.swing.JTextArea;\r
28import javax.swing.JTextField;\r
5a24e806 29\r
30import org.tianocore.frameworkwizard.common.DataType;\r
a45e9a40 31import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
5a24e806 32import org.tianocore.frameworkwizard.common.IFileFilter;\r
33import org.tianocore.frameworkwizard.common.Log;\r
34import org.tianocore.frameworkwizard.common.Tools;\r
35import org.tianocore.frameworkwizard.common.ui.IDialog;\r
36import org.tianocore.frameworkwizard.far.AggregationOperation;\r
37import org.tianocore.frameworkwizard.far.Far;\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.workspace.Workspace;\r
43\r
44public class CreateStepFour extends IDialog implements MouseListener {\r
45\r
46 /**\r
47 * \r
48 */\r
49 private static final long serialVersionUID = -7397213364965470902L;\r
50\r
51 private JPanel jContentPane = null;\r
52\r
53 private JTextArea jTextAreaInstruction = null;\r
54\r
55 private JLabel jLabel = null;\r
56\r
57 private JLabel jLabel2 = null;\r
58\r
59 private JTextField jTextFieldSaveToFile = null;\r
60\r
61 private JButton jButtonBrowser = null;\r
62\r
63 // private JScrollPane jScrollPane = null;\r
64 private JButton jButtonCancel = null;\r
65\r
66 private JButton jButtonFinish = null;\r
67\r
68 private JButton jButtonPrevious = null;\r
69\r
a45e9a40 70 private IDefaultTableModel model = null;\r
5a24e806 71\r
72 private CreateStepThree stepThree = null;\r
73\r
74 // private JTable jTable = null;\r
75 public CreateStepFour(IDialog iDialog, boolean modal, CreateStepThree stepThree) {\r
76 this(iDialog, modal);\r
77 this.stepThree = stepThree;\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 (jTextAreaInstruction == null) {\r
87 jTextAreaInstruction = new JTextArea();\r
88 jTextAreaInstruction.setBounds(new java.awt.Rectangle(30, 7, 642, 50));\r
89 jTextAreaInstruction.setText("Step 4: Choose a file \n");\r
90 jTextAreaInstruction.setEditable(false);\r
91 }\r
92 return jTextAreaInstruction;\r
93 }\r
94\r
95 /**\r
96 * This method initializes jTextField1 \r
97 * \r
98 * @return javax.swing.JTextField \r
99 */\r
100 private JTextField getJTextField1() {\r
101 if (jTextFieldSaveToFile == null) {\r
102 jTextFieldSaveToFile = new JTextField();\r
a45e9a40 103 jTextFieldSaveToFile.setBounds(new java.awt.Rectangle(147,70,412,20));\r
5a24e806 104 }\r
105 return jTextFieldSaveToFile;\r
106 }\r
107\r
108 /**\r
109 * This method initializes jButtonBrowser \r
110 * \r
111 * @return javax.swing.JButton \r
112 */\r
113 private JButton getJButtonBrower() {\r
114 if (jButtonBrowser == null) {\r
115 jButtonBrowser = new JButton();\r
a45e9a40 116 jButtonBrowser.setBounds(new java.awt.Rectangle(570, 70, 100, 20));\r
5a24e806 117 jButtonBrowser.setText("Browser...");\r
118 jButtonBrowser.addMouseListener(this);\r
119 }\r
120 return jButtonBrowser;\r
121 }\r
122\r
123 /**\r
124 * This method initializes jScrollPane \r
125 * \r
126 * @return javax.swing.JScrollPane \r
127 */\r
128 // private JScrollPane getJScrollPane() {\r
129 // if (jScrollPane == null) {\r
130 // jScrollPane = new JScrollPane();\r
131 // jScrollPane.setBounds(new java.awt.Rectangle(139,85,500,100));\r
132 // jScrollPane.setViewportView(getJTable());\r
133 // }\r
134 // return jScrollPane;\r
135 // }\r
136 /**\r
137 * This method initializes jButtonCancel \r
138 * \r
139 * @return javax.swing.JButton \r
140 */\r
141 private JButton getJButtonCancel() {\r
142 if (jButtonCancel == null) {\r
143 jButtonCancel = new JButton();\r
144 jButtonCancel.setBounds(new java.awt.Rectangle(570, 330, 90, 20));\r
145 jButtonCancel.setText("Cancel");\r
146 jButtonCancel.addMouseListener(this);\r
147 }\r
148 return jButtonCancel;\r
149 }\r
150\r
151 /**\r
152 * This method initializes jButtonFinish \r
153 * \r
154 * @return javax.swing.JButton \r
155 */\r
156 private JButton getJButtonFinish() {\r
157 if (jButtonFinish == null) {\r
158 jButtonFinish = new JButton();\r
159 jButtonFinish.setBounds(new java.awt.Rectangle(470, 330, 90, 20));\r
160 jButtonFinish.setText("Finish");\r
161 jButtonFinish.addMouseListener(this);\r
162 }\r
163 return jButtonFinish;\r
164 }\r
165\r
166 /**\r
167 * This method initializes jButtonPrevious \r
168 * \r
169 * @return javax.swing.JButton \r
170 */\r
171 private JButton getJButtonPrevious() {\r
172 if (jButtonPrevious == null) {\r
173 jButtonPrevious = new JButton();\r
174 jButtonPrevious.setBounds(new java.awt.Rectangle(370, 330, 90, 20));\r
175 jButtonPrevious.setText("Previous");\r
176 jButtonPrevious.addMouseListener(this);\r
a45e9a40 177 jButtonPrevious.setVisible(false);\r
5a24e806 178 }\r
179 return jButtonPrevious;\r
180 }\r
181\r
182 /**\r
183 * This is the default constructor\r
184 */\r
185 public CreateStepFour(IDialog iDialog, boolean modal) {\r
186 super(iDialog, modal);\r
187 initialize();\r
188 }\r
189\r
190 /**\r
191 * This method initializes this\r
192 * \r
193 * @return void\r
194 */\r
195 private void initialize() {\r
196 this.setSize(700, 400);\r
197 this.setContentPane(getJContentPane());\r
2e39c718 198 this.setTitle(FarStringDefinition.CREATE_STEP_FOUR_TITLE);\r
5a24e806 199 this.centerWindow();\r
200 }\r
201\r
202 /**\r
203 * This method initializes jContentPane\r
204 * \r
205 * @return javax.swing.JPanel\r
206 */\r
207 private JPanel getJContentPane() {\r
208 if (jContentPane == null) {\r
209 jLabel2 = new JLabel();\r
a45e9a40 210 jLabel2.setBounds(new java.awt.Rectangle(30,70,111,18));\r
2e39c718 211 jLabel2.setText("File to Save: ");\r
5a24e806 212 jLabel = new JLabel();\r
a45e9a40 213 jLabel.setBounds(new java.awt.Rectangle(29,108,320,20));\r
156ed4d0 214 jLabel.setText("This FAR will depend on the following packages: ");\r
5a24e806 215 jLabel.setVisible(false);\r
216 jContentPane = new JPanel();\r
217 jContentPane.setLayout(null);\r
218 jContentPane.add(getJTextArea(), null);\r
219 jContentPane.add(jLabel, null);\r
220 // jContentPane.add(getJScrollPane(), null);\r
221 jContentPane.add(getJButtonCancel(), null);\r
222 jContentPane.add(getJButtonFinish(), null);\r
223 jContentPane.add(getJButtonPrevious(), null);\r
224 jContentPane.add(jLabel2, null);\r
225 jContentPane.add(getJTextField1(), null);\r
226 jContentPane.add(getJButtonBrower(), null);\r
227 }\r
228 return jContentPane;\r
229 }\r
230\r
231 public void mouseClicked(MouseEvent e) {\r
232 if (e.getSource() == jButtonCancel) {\r
233 this.setVisible(false);\r
234 } else if (e.getSource() == jButtonFinish) {\r
235 //\r
236 // Add some logic process here\r
237 // Guid Check, File Check etc.\r
238 //\r
239 if (this.jTextFieldSaveToFile.getText() == null) {\r
ed1665f2 240 Log.wrn("Create far", "Please input the Far name!");\r
5a24e806 241 }\r
242 try {\r
243 //\r
244 // Create an output stream for JAR\r
245 //\r
246\r
247 Far far = new Far(new File(this.jTextFieldSaveToFile.getText()));\r
248\r
249 far.creatFar(this.getPreviousStep().getPreviousStep().getSelectedPackages(),\r
250 this.getPreviousStep().getPreviousStep().getSelectedPlatforms(), this.getPreviousStep()\r
251 .getFileFilter(),\r
252 this.getPreviousStep().getPreviousStep().getPreviousStep().getFarHeader());\r
253 } catch (Exception exp) {\r
ed1665f2 254 Log.wrn("Create far", exp.getMessage());\r
255 Log.err("Create far", exp.getMessage());\r
5a24e806 256 return;\r
257 }\r
258 getPreviousStep().getPreviousStep().getPreviousStep().returnType = DataType.RETURN_TYPE_OK;\r
259 getPreviousStep().getPreviousStep().dispose();\r
260 getPreviousStep().dispose();\r
261 this.setVisible(false);\r
262 this.dispose();\r
263 } else if (e.getSource() == jButtonPrevious) {\r
5a24e806 264 stepThree.setVisible(true);\r
a45e9a40 265 this.setVisible(false);\r
5a24e806 266 } else if (e.getSource() == jButtonBrowser) {\r
267 JFileChooser fc = new JFileChooser();\r
268 fc.setAcceptAllFileFilterUsed(false);\r
269 fc.addChoosableFileFilter(new IFileFilter(DataType.FAR_SURFACE_AREA_EXT));\r
270 fc.setCurrentDirectory(new File(Workspace.getCurrentWorkspace()));\r
271\r
272 int result = fc.showSaveDialog(new JPanel());\r
273 if (result == JFileChooser.APPROVE_OPTION) {\r
274 this.jTextFieldSaveToFile.setText(Tools.addPathExt(fc.getSelectedFile().getPath(),\r
275 DataType.RETURN_TYPE_FAR_SURFACE_AREA));\r
276 }\r
277 }\r
278 }\r
279\r
280 public void mousePressed(MouseEvent e) {\r
281 // TODO Auto-generated method stub\r
282\r
283 }\r
284\r
285 public void mouseReleased(MouseEvent e) {\r
286 // TODO Auto-generated method stub\r
287\r
288 }\r
289\r
290 public void mouseEntered(MouseEvent e) {\r
291 // TODO Auto-generated method stub\r
292\r
293 }\r
294\r
295 public void mouseExited(MouseEvent e) {\r
296 // TODO Auto-generated method stub\r
297\r
298 }\r
299\r
300 public CreateStepThree getPreviousStep() {\r
301 return stepThree;\r
302 }\r
303\r
304 /**\r
305 * This method initializes jTable \r
306 * \r
307 * @return javax.swing.JTable \r
308 */\r
309 // private JTable getJTable() {\r
310 // if (jTable == null) {\r
311 // jTable = new JTable();\r
312 // model = new PartialTableModel();\r
313 // jTable = new JTable(model);\r
314 // jTable.setRowHeight(20);\r
315 // jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
316 // model.addColumn("GUID");\r
317 // model.addColumn("Version");\r
318 // model.addColumn("Name");\r
319 // \r
320 // jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
321 // }\r
322 // if (this.stepThree != null) {\r
323 // prepareTable();\r
324 // }\r
325 // return jTable;\r
326 // }\r
327 public void prepareTable() {\r
328 model.setRowCount(0);\r
329\r
330 List<PackageIdentification> packageList = new ArrayList<PackageIdentification>();\r
331 //\r
332 // Change here to get packages and platforms from FAR\r
333 //\r
334 List<PackageIdentification> selectedPackages = getPreviousStep().getPreviousStep().getSelectedPackages();\r
335 PackageQueryInterface pq = new PackageQuery();\r
336\r
337 Iterator<PackageIdentification> iter = selectedPackages.iterator();\r
338 while (iter.hasNext()) {\r
339 PackageIdentification item = iter.next();\r
340 List<PackageIdentification> list = pq.getPackageDependencies(item.getSpdFile());\r
341 packageList = AggregationOperation.union(list, packageList);\r
342 }\r
343\r
344 packageList = AggregationOperation.minus(packageList, selectedPackages);\r
345\r
346 iter = packageList.iterator();\r
347 while (iter.hasNext()) {\r
348 String[] str = new String[3];\r
349 PackageIdentification item = iter.next();\r
350 str[2] = item.getName();\r
351 str[1] = item.getVersion();\r
352 str[0] = item.getGuid();\r
353 model.addRow(str);\r
354 }\r
355 }\r
356}\r
357\r