]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/ui/SwitchWorkspace.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / 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.JButton;
6 import javax.swing.JFileChooser;
7 import javax.swing.JLabel;
8 import javax.swing.JPanel;
9 import javax.swing.JTextField;
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() == null ? "Not Defined"
55 : Workspace.getCurrentWorkspace());
56 }
57 return jTextFieldOld;
58 }
59
60 /**
61 * This method initializes jTextFieldNew
62 *
63 * @return javax.swing.JTextField
64 */
65 private JTextField getJTextFieldNew() {
66 if (jTextFieldNew == null) {
67 jTextFieldNew = new JTextField();
68 jTextFieldNew.setBounds(new java.awt.Rectangle(140, 35, 220, 20));
69 }
70 return jTextFieldNew;
71 }
72
73 /**
74 * This method initializes jButtonOk
75 *
76 * @return javax.swing.JButton
77 */
78 private JButton getJButtonOk() {
79 if (jButtonOk == null) {
80 jButtonOk = new JButton();
81 jButtonOk.setBounds(new java.awt.Rectangle(290, 70, 80, 20));
82 jButtonOk.setText("Ok");
83 jButtonOk.addActionListener(this);
84 }
85 return jButtonOk;
86 }
87
88 /**
89 * This method initializes jButtonCancel
90 *
91 * @return javax.swing.JButton
92 */
93 private JButton getJButtonCancel() {
94 if (jButtonCancel == null) {
95 jButtonCancel = new JButton();
96 jButtonCancel.setBounds(new java.awt.Rectangle(380, 70, 80, 20));
97 jButtonCancel.setText("Cancel");
98 jButtonCancel.addActionListener(this);
99 }
100 return jButtonCancel;
101 }
102
103 /**
104 * This method initializes jButtonBrowse
105 *
106 * @return javax.swing.JButton
107 */
108 private JButton getJButtonBrowse() {
109 if (jButtonBrowse == null) {
110 jButtonBrowse = new JButton();
111 jButtonBrowse.setBounds(new java.awt.Rectangle(370, 35, 90, 20));
112 jButtonBrowse.setText("Browse");
113 jButtonBrowse.addActionListener(this);
114 }
115 return jButtonBrowse;
116 }
117
118 /**
119 * This is the default constructor
120 *
121 */
122 public SwitchWorkspace() {
123 super();
124 initialize();
125 }
126
127 /**
128 * This is the override constructor
129 *
130 */
131 public SwitchWorkspace(IFrame parentFrame, boolean modal) {
132 super(parentFrame, modal);
133 initialize();
134 }
135
136 /**
137 * This method initializes this
138 *
139 * @return void
140 */
141 private void initialize() {
142 this.setSize(472, 132);
143 this.setContentPane(getJContentPane());
144 this.setTitle("Select workspace");
145 this.centerWindow();
146 }
147
148 /**
149 * This method initializes jContentPane
150 *
151 * @return javax.swing.JPanel
152 */
153 private JPanel getJContentPane() {
154 if (jContentPane == null) {
155 jLabel1 = new JLabel();
156 jLabel1.setBounds(new java.awt.Rectangle(15, 10, 120, 20));
157 jLabel1.setText("Current Workspace");
158 jLabel = new JLabel();
159 jLabel.setBounds(new java.awt.Rectangle(15, 35, 120, 20));
160 jLabel.setText("Change to ");
161 jContentPane = new JPanel();
162 jContentPane.setLayout(null);
163 jContentPane.add(jLabel, null);
164 jContentPane.add(jLabel1, null);
165 jContentPane.add(getJTextFieldOld(), null);
166 jContentPane.add(getJTextFieldNew(), null);
167 jContentPane.add(getJButtonOk(), null);
168 jContentPane.add(getJButtonCancel(), null);
169 jContentPane.add(getJButtonBrowse(), null);
170 }
171 return jContentPane;
172 }
173
174 private boolean check() {
175 if (isEmpty(this.jTextFieldNew.getText())) {
176 Log.wrn("Switch Workspace", "New workspace must be entered!");
177 return false;
178 }
179 if (Workspace.checkWorkspace(this.jTextFieldNew.getText()) != Workspace.WORKSPACE_VALID) {
180 Log.wrn("Switch Workspace", "Please select a valid workspace!");
181 return false;
182 }
183 return true;
184 }
185
186 /* (non-Javadoc)
187 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
188 *
189 * Override actionPerformed to listen all actions
190 */
191 public void actionPerformed(ActionEvent arg0) {
192 if (arg0.getSource() == jButtonCancel) {
193 this.setVisible(false);
194 returnType = DataType.RETURN_TYPE_CANCEL;
195 }
196
197 if (arg0.getSource() == jButtonOk) {
198 if (!check()) {
199 return;
200 } else {
201 Workspace.setCurrentWorkspace(this.jTextFieldNew.getText());
202 returnType = DataType.RETURN_TYPE_OK;
203 this.setVisible(false);
204 }
205 }
206
207 if (arg0.getSource() == jButtonBrowse) {
208 JFileChooser fc = new JFileChooser();
209 fc.setAcceptAllFileFilterUsed(false);
210 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
211 int result = fc.showOpenDialog(new JPanel());
212 if (result == JFileChooser.APPROVE_OPTION) {
213 this.jTextFieldNew.setText(Tools.convertPathToCurrentOsType(fc.getSelectedFile().getPath()));
214 }
215 }
216 }
217 }