]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/ToolChainConfig.java
1. Restructure some folders and files
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / ToolChainConfig.java
CommitLineData
79cb6fdb 1/** @file\r
2 \r
3 The file is used to setup tool chain configuration\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard;\r
16\r
17import java.awt.event.ActionEvent;\r
18import java.io.File;\r
19import java.io.IOException;\r
20\r
21import javax.swing.JButton;\r
22import javax.swing.JFileChooser;\r
23import javax.swing.JPanel;\r
24import javax.swing.JScrollPane;\r
25import javax.swing.JTable;\r
26import javax.swing.table.DefaultTableModel;\r
27\r
28import org.tianocore.frameworkwizard.common.DataType;\r
29import org.tianocore.frameworkwizard.common.Log;\r
30import org.tianocore.frameworkwizard.common.Tools;\r
31import org.tianocore.frameworkwizard.common.Identifications.ToolChainConfigVector;\r
32import org.tianocore.frameworkwizard.common.ui.IDialog;\r
33import org.tianocore.frameworkwizard.common.ui.IFrame;\r
34import org.tianocore.frameworkwizard.workspace.Workspace;\r
35\r
36public class ToolChainConfig extends IDialog {\r
37\r
38 ///\r
39 /// Define Class Members\r
40 ///\r
41 private static final long serialVersionUID = 1486930966278269085L;\r
42\r
43 private JPanel jContentPane = null;\r
44\r
45 private JScrollPane jScrollPane = null;\r
46\r
47 private DefaultTableModel model = null;\r
48\r
49 private JTable jTable = null;\r
50\r
51 private JButton jButtonOpen = null;\r
52\r
53 private JButton jButtonSave = null;\r
54\r
55 private JButton jButtonClose = null;\r
56\r
57 private String toolsDir = Tools.addFileSeparator(Workspace.getCurrentWorkspace()) + "Tools"\r
58 + DataType.FILE_SEPARATOR + "Conf";\r
59\r
60 private String currentFile = Tools.addFileSeparator(toolsDir) + "tools_def.template";\r
61\r
62 private ToolChainConfigVector vtcc = new ToolChainConfigVector();\r
63\r
64 /**\r
65 * This method initializes jScrollPane \r
66 * \r
67 * @return javax.swing.JScrollPane \r
68 */\r
69 private JScrollPane getJScrollPane() {\r
70 if (jScrollPane == null) {\r
71 jScrollPane = new JScrollPane();\r
72 jScrollPane.setBounds(new java.awt.Rectangle(15, 15, 555, 345));\r
73 jScrollPane.setViewportView(getJTable());\r
74 }\r
75 return jScrollPane;\r
76 }\r
77\r
78 /**\r
79 * This method initializes jTable \r
80 * \r
81 * @return javax.swing.JTable \r
82 */\r
83 private JTable getJTable() {\r
84 if (jTable == null) {\r
85 jTable = new JTable();\r
86 // model = new DefaultTableModel();\r
87 // jTable = new JTable(model);\r
88 // jTable.setRowHeight(20);\r
89 }\r
90 return jTable;\r
91 }\r
92\r
93 /**\r
94 * This method initializes jButtonOpen \r
95 * \r
96 * @return javax.swing.JButton \r
97 */\r
98 private JButton getJButtonOpen() {\r
99 if (jButtonOpen == null) {\r
100 jButtonOpen = new JButton();\r
101 jButtonOpen.setBounds(new java.awt.Rectangle(140, 390, 120, 25));\r
102 jButtonOpen.setText("Open a file");\r
103 jButtonOpen.addActionListener(this);\r
104 }\r
105 return jButtonOpen;\r
106 }\r
107\r
108 /**\r
109 * This method initializes jButtonSave \r
110 * \r
111 * @return javax.swing.JButton \r
112 */\r
113 private JButton getJButtonSave() {\r
114 if (jButtonSave == null) {\r
115 jButtonSave = new JButton();\r
116 jButtonSave.setBounds(new java.awt.Rectangle(280, 390, 120, 25));\r
117 jButtonSave.setText("Save to a file");\r
118 jButtonSave.addActionListener(this);\r
119 }\r
120 return jButtonSave;\r
121 }\r
122\r
123 /**\r
124 * This method initializes jButtonClose \r
125 * \r
126 * @return javax.swing.JButton \r
127 */\r
128 private JButton getJButtonClose() {\r
129 if (jButtonClose == null) {\r
130 jButtonClose = new JButton();\r
131 jButtonClose.setBounds(new java.awt.Rectangle(465, 390, 100, 25));\r
132 jButtonClose.setText("Close");\r
133 jButtonClose.addActionListener(this);\r
134 }\r
135 return jButtonClose;\r
136 }\r
137\r
138 /**\r
139 \r
140 @param args\r
141 \r
142 **/\r
143 public static void main(String[] args) {\r
144 // TODO Auto-generated method stub\r
145\r
146 }\r
147\r
148 /**\r
149 * This is the default constructor\r
150 */\r
151 public ToolChainConfig(IFrame parentFrame, boolean modal) {\r
152 super(parentFrame, modal);\r
153 init();\r
154 }\r
155\r
156 /**\r
157 * This method initializes this\r
158 * \r
159 * @return void\r
160 */\r
161 private void init() {\r
162 this.setSize(600, 480);\r
163 this.setContentPane(getJContentPane());\r
164 this.setTitle("Tool Chain Configuration");\r
165 this.centerWindow();\r
166\r
167 //\r
168 // Read default file\r
169 //\r
170 File f = new File(currentFile);\r
171 if (f.exists()) {\r
172 try {\r
173 vtcc.removeAll();\r
174 vtcc.parseFile(this.currentFile);\r
175 this.setTitle("Tool Chain Configuration" + " [" + currentFile + "]");\r
176 } catch (IOException e) {\r
177 Log.log(this.currentFile + "Read Error", e.getMessage());\r
178 e.printStackTrace();\r
179 }\r
180 } else {\r
181 Log.log("Open file", this.currentFile + " Not Found");\r
182 }\r
183\r
184 showTable();\r
185 }\r
186\r
187 /**\r
188 * This method initializes jContentPane\r
189 * \r
190 * @return javax.swing.JPanel\r
191 */\r
192 private JPanel getJContentPane() {\r
193 if (jContentPane == null) {\r
194 jContentPane = new JPanel();\r
195 jContentPane.setLayout(null);\r
196 jContentPane.add(getJScrollPane(), null);\r
197 jContentPane.add(getJButtonOpen(), null);\r
198 jContentPane.add(getJButtonSave(), null);\r
199 jContentPane.add(getJButtonClose(), null);\r
200 }\r
201 return jContentPane;\r
202 }\r
203\r
204 /* (non-Javadoc)\r
205 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
206 * \r
207 * Override actionPerformed to listen all actions\r
208 */\r
209 public void actionPerformed(ActionEvent arg0) {\r
210 if (arg0.getSource() == jButtonClose) {\r
211 this.setVisible(false);\r
212 this.returnType = DataType.RETURN_TYPE_CANCEL;\r
213 }\r
214\r
215 if (arg0.getSource() == jButtonOpen) {\r
216 JFileChooser fc = new JFileChooser();\r
217 fc.setAcceptAllFileFilterUsed(false);\r
218 fc.setCurrentDirectory(new File(toolsDir));\r
219\r
220 int result = fc.showSaveDialog(new JPanel());\r
221 if (result == JFileChooser.APPROVE_OPTION) {\r
222 try {\r
223 vtcc.removeAll();\r
224 vtcc.parseFile(fc.getSelectedFile().getPath());\r
225 currentFile = fc.getSelectedFile().getPath(); \r
226 this.setTitle("Tool Chain Configuration" + " [" + currentFile + "]");\r
227 } catch (IOException e) {\r
228 Log.err(this.currentFile + "Read Error", e.getMessage());\r
229 e.printStackTrace();\r
230 return;\r
231 }\r
232 this.showTable();\r
233 }\r
234 }\r
235\r
236 if (arg0.getSource() == jButtonSave) {\r
237 JFileChooser fc = new JFileChooser();\r
238 fc.setAcceptAllFileFilterUsed(false);\r
239 fc.setCurrentDirectory(new File(toolsDir));\r
240\r
241 int result = fc.showOpenDialog(new JPanel());\r
242 if (result == JFileChooser.APPROVE_OPTION) {\r
243 }\r
244 }\r
245 }\r
246\r
247 /**\r
248 Read content of vector and put then into table\r
249 \r
250 **/\r
251 private void showTable() {\r
252 model = new DefaultTableModel();\r
253 jTable = new JTable(model);\r
254 jTable.setRowHeight(20);\r
255\r
256 model.addColumn("Name");\r
257 model.addColumn("Value");\r
258 if (vtcc.size() > 0) {\r
259 for (int index = 0; index < vtcc.size(); index++) {\r
260 model.addRow(vtcc.toStringVector(index));\r
261 }\r
262 }\r
263 this.jScrollPane.setViewportView(this.jTable);\r
264 }\r
265}\r