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