]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/ui/SwitchWorkspace.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / workspace / ui / SwitchWorkspace.java
1 package org.tianocore.frameworkwizard.workspace.ui;
2
3 import java.awt.event.ActionEvent;
4
5 import javax.swing.JFileChooser;
6 import javax.swing.JPanel;
7 import javax.swing.JLabel;
8 import javax.swing.JTextField;
9 import javax.swing.JButton;
10
11 import org.tianocore.frameworkwizard.common.DataType;
12 import org.tianocore.frameworkwizard.common.Log;
13 import org.tianocore.frameworkwizard.common.Tools;
14 import org.tianocore.frameworkwizard.common.ui.IDialog;
15 import org.tianocore.frameworkwizard.common.ui.IFrame;
16 import org.tianocore.frameworkwizard.workspace.Workspace;
17
18 public class SwitchWorkspace extends IDialog {
19
20 ///
21 /// Define class Serial Version UID
22 ///
23 private static final long serialVersionUID = 2184556370155608202L;
24
25 //
26 // Define class members
27 //
28 private JPanel jContentPane = null;
29
30 private JLabel jLabel = null;
31
32 private JLabel jLabel1 = null;
33
34 private JTextField jTextFieldOld = null;
35
36 private JTextField jTextFieldNew = null;
37
38 private JButton jButtonOk = null;
39
40 private JButton jButtonCancel = null;
41
42 private JButton jButtonBrowse = null;
43
44 /**
45 * This method initializes jTextFieldOld
46 *
47 * @return javax.swing.JTextField
48 */
49 private JTextField getJTextFieldOld() {
50 if (jTextFieldOld == null) {
51 jTextFieldOld = new JTextField();
52 jTextFieldOld.setBounds(new java.awt.Rectangle(140, 10, 320, 20));
53 jTextFieldOld.setEditable(false);
54 jTextFieldOld.setText(Workspace.getCurrentWorkspace());
55 }
56 return jTextFieldOld;
57 }
58
59 /**
60 * This method initializes jTextFieldNew
61 *
62 * @return javax.swing.JTextField
63 */
64 private JTextField getJTextFieldNew() {
65 if (jTextFieldNew == null) {
66 jTextFieldNew = new JTextField();
67 jTextFieldNew.setBounds(new java.awt.Rectangle(140, 35, 220, 20));
68 }
69 return jTextFieldNew;
70 }
71
72 /**
73 * This method initializes jButtonOk
74 *
75 * @return javax.swing.JButton
76 */
77 private JButton getJButtonOk() {
78 if (jButtonOk == null) {
79 jButtonOk = new JButton();
80 jButtonOk.setBounds(new java.awt.Rectangle(290, 70, 80, 20));
81 jButtonOk.setText("Ok");
82 jButtonOk.addActionListener(this);
83 }
84 return jButtonOk;
85 }
86
87 /**
88 * This method initializes jButtonCancel
89 *
90 * @return javax.swing.JButton
91 */
92 private JButton getJButtonCancel() {
93 if (jButtonCancel == null) {
94 jButtonCancel = new JButton();
95 jButtonCancel.setBounds(new java.awt.Rectangle(380, 70, 80, 20));
96 jButtonCancel.setText("Cancel");
97 jButtonCancel.addActionListener(this);
98 }
99 return jButtonCancel;
100 }
101
102 /**
103 * This method initializes jButtonBrowse
104 *
105 * @return javax.swing.JButton
106 */
107 private JButton getJButtonBrowse() {
108 if (jButtonBrowse == null) {
109 jButtonBrowse = new JButton();
110 jButtonBrowse.setBounds(new java.awt.Rectangle(370, 35, 90, 20));
111 jButtonBrowse.setText("Browse");
112 jButtonBrowse.addActionListener(this);
113 }
114 return jButtonBrowse;
115 }
116
117 /**
118
119 @param args
120
121 **/
122 public static void main(String[] args) {
123 // TODO Auto-generated method stub
124
125 }
126
127 /**
128 * This is the default constructor
129 *
130 */
131 public SwitchWorkspace() {
132 super();
133 initialize();
134 }
135
136 /**
137 * This is the override constructor
138 *
139 */
140 public SwitchWorkspace(IFrame parentFrame, boolean modal) {
141 super(parentFrame, modal);
142 initialize();
143 }
144
145 /**
146 * This method initializes this
147 *
148 * @return void
149 */
150 private void initialize() {
151 this.setSize(472, 132);
152 this.setContentPane(getJContentPane());
153 this.setTitle("Change workspace");
154 this.centerWindow();
155 }
156
157 /**
158 * This method initializes jContentPane
159 *
160 * @return javax.swing.JPanel
161 */
162 private JPanel getJContentPane() {
163 if (jContentPane == null) {
164 jLabel1 = new JLabel();
165 jLabel1.setBounds(new java.awt.Rectangle(15, 10, 120, 20));
166 jLabel1.setText("Current Workspace");
167 jLabel = new JLabel();
168 jLabel.setBounds(new java.awt.Rectangle(15, 35, 120, 20));
169 jLabel.setText("Change to ");
170 jContentPane = new JPanel();
171 jContentPane.setLayout(null);
172 jContentPane.add(jLabel, null);
173 jContentPane.add(jLabel1, null);
174 jContentPane.add(getJTextFieldOld(), null);
175 jContentPane.add(getJTextFieldNew(), null);
176 jContentPane.add(getJButtonOk(), null);
177 jContentPane.add(getJButtonCancel(), null);
178 jContentPane.add(getJButtonBrowse(), null);
179 }
180 return jContentPane;
181 }
182
183 private boolean check() {
184 if (isEmpty(this.jTextFieldNew.getText())) {
185 Log.err("New workspace can't be empty!");
186 return false;
187 }
188 if (!Workspace.checkWorkspace(this.jTextFieldNew.getText())) {
189 Log.err("Please select a valid workspace!");
190 return false;
191 }
192 return true;
193 }
194
195 /* (non-Javadoc)
196 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
197 *
198 * Override actionPerformed to listen all actions
199 */
200 public void actionPerformed(ActionEvent arg0) {
201 if (arg0.getSource() == jButtonCancel) {
202 this.setVisible(false);
203 returnType = DataType.RETURN_TYPE_CANCEL;
204 }
205
206 if (arg0.getSource() == jButtonOk) {
207 if (!check()) {
208 return;
209 } else {
210 this.setVisible(false);
211 Workspace.setCurrentWorkspace(this.jTextFieldNew.getText());
212 returnType = DataType.RETURN_TYPE_OK;
213 }
214 }
215
216 if (arg0.getSource() == jButtonBrowse) {
217 JFileChooser fc = new JFileChooser();
218 fc.setAcceptAllFileFilterUsed(false);
219 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
220 int result = fc.showOpenDialog(new JPanel());
221 if (result == JFileChooser.APPROVE_OPTION) {
222 this.jTextFieldNew.setText(Tools.convertPathToCurrentOsType(fc.getSelectedFile().getPath()));
223 }
224 }
225 }
226 }