\r
**/\r
private void init() {\r
- //\r
- // Show splash screen\r
- //\r
- SplashScreen ss = new SplashScreen();\r
- ss.setVisible(true);\r
-\r
//\r
// Set current workspace and check\r
// Check if exists WORKSPACE\r
- // \r
//\r
Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));\r
- if (!Workspace.checkCurrentWorkspace()) {\r
- JOptionPane.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",\r
- JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);\r
- this.dispose();\r
- System.exit(0);\r
- }\r
+ this.checkWorkspace();\r
\r
+ //\r
+ // Show splash screen\r
+ //\r
+ SplashScreen ss = new SplashScreen();\r
+ ss.setVisible(true);\r
+ \r
//\r
// Init Global Data\r
//\r
JOptionPane.INFORMATION_MESSAGE);\r
}\r
}\r
+\r
+ /**\r
+ Check if WORKSPACE Environment is valid\r
+ \r
+ **/\r
+ private void checkWorkspace() {\r
+ switch (Workspace.checkCurrentWorkspace()) {\r
+ case Workspace.WORKSPACE_VALID:\r
+ break;\r
+ case Workspace.WORKSPACE_NOT_DEFINED:\r
+ JOptionPane\r
+ .showConfirmDialog(\r
+ null,\r
+ "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. " +\r
+ DataType.LINE_SEPARATOR + DataType.LINE_SEPARATOR + "NOTICE:" +\r
+ DataType.LINE_SEPARATOR + "This does not change the System Environment Variable." +\r
+ DataType.LINE_SEPARATOR + "It only applies to where the Wizard will manage modification and file creations.",\r
+ "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
+ SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
+ int result = sw.showDialog();\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ this.dispose();\r
+ System.exit(0);\r
+ } else if (result == DataType.RETURN_TYPE_OK) {\r
+ sw.dispose();\r
+ break;\r
+ }\r
+ case Workspace.WORKSPACE_NOT_EXIST:\r
+ JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not Existed", "Error",\r
+ JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
+ this.dispose();\r
+ System.exit(0);\r
+ case Workspace.WORKSPACE_NOT_DIRECTORY:\r
+ JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not A Directory", "Error",\r
+ JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
+ this.dispose();\r
+ System.exit(0);\r
+ case Workspace.WORKSPACE_NOT_VALID:\r
+ JOptionPane.showConfirmDialog(null, "WORKSPACE Environment Variable Is Not Valid", "Error",\r
+ JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
+ this.dispose();\r
+ System.exit(0);\r
+ }\r
+ }\r
}\r
import org.tianocore.frameworkwizard.common.DataType;\r
\r
public class Workspace {\r
+ //\r
+ // Define static return value\r
+ //\r
+ public final static int WORKSPACE_VALID = 0;\r
+ \r
+ public final static int WORKSPACE_NOT_DEFINED = 1;\r
+ \r
+ public final static int WORKSPACE_NOT_EXIST = 2;\r
+ \r
+ public final static int WORKSPACE_NOT_DIRECTORY = 3;\r
+ \r
+ public final static int WORKSPACE_NOT_VALID = 4;\r
+ \r
//\r
// Define class members\r
//\r
@retval false - The current WORKSPACE doesn't exist\r
\r
*/\r
- public static boolean checkCurrentWorkspace() {\r
+ public static int checkCurrentWorkspace() {\r
return checkWorkspace(getCurrentWorkspace());\r
}\r
\r
@retval false - The current WORKSPACE doesn't exist\r
\r
*/\r
- public static boolean checkWorkspace(String strWorkspace) {\r
+ public static int checkWorkspace(String strWorkspace) {\r
+ //\r
+ // Check if WORKSPACE Environment is defined\r
+ //\r
if (strWorkspace == null || strWorkspace == "") {\r
- return false;\r
+ return Workspace.WORKSPACE_NOT_DEFINED;\r
}\r
+ \r
//\r
- // Check workspace directory\r
+ // Check if WORKSPACE Environment exists\r
//\r
File f = new File(strWorkspace);\r
- if (!f.isDirectory()) {\r
- return false;\r
- }\r
if (!f.exists()) {\r
- return false;\r
+ return Workspace.WORKSPACE_NOT_EXIST;\r
+ }\r
+ \r
+ //\r
+ // Check if WORKSPACE Environment is a directory\r
+ //\r
+ if (!f.isDirectory()) {\r
+ return Workspace.WORKSPACE_NOT_DIRECTORY;\r
}\r
\r
//\r
- // Check FrameworkDatabase.db\r
+ // Check if FrameworkDatabase.db exists\r
//\r
f = new File(strWorkspace + Workspace.getStrWorkspaceDatabaseFile());\r
if (!f.exists()) {\r
- return false;\r
+ return Workspace.WORKSPACE_NOT_VALID;\r
}\r
\r
- return true;\r
+ return Workspace.WORKSPACE_VALID;\r
}\r
\r
public static String getStrWorkspaceDatabaseFile() {\r
\r
import java.awt.event.ActionEvent;\r
\r
+import javax.swing.JButton;\r
import javax.swing.JFileChooser;\r
-import javax.swing.JPanel;\r
import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
import javax.swing.JTextField;\r
-import javax.swing.JButton;\r
\r
import org.tianocore.frameworkwizard.common.DataType;\r
import org.tianocore.frameworkwizard.common.Log;\r
jTextFieldOld = new JTextField();\r
jTextFieldOld.setBounds(new java.awt.Rectangle(140, 10, 320, 20));\r
jTextFieldOld.setEditable(false);\r
- jTextFieldOld.setText(Workspace.getCurrentWorkspace());\r
+ jTextFieldOld.setText(Workspace.getCurrentWorkspace() == null ? "Not Defined"\r
+ : Workspace.getCurrentWorkspace());\r
}\r
return jTextFieldOld;\r
}\r
return jButtonBrowse;\r
}\r
\r
- /**\r
- \r
- @param args\r
- \r
- **/\r
- public static void main(String[] args) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
/**\r
* This is the default constructor\r
* \r
private void initialize() {\r
this.setSize(472, 132);\r
this.setContentPane(getJContentPane());\r
- this.setTitle("Change workspace");\r
+ this.setTitle("Select workspace");\r
this.centerWindow();\r
}\r
\r
Log.wrn("Switch Workspace", "New workspace must be entered!");\r
return false;\r
}\r
- if (!Workspace.checkWorkspace(this.jTextFieldNew.getText())) {\r
+ if (Workspace.checkWorkspace(this.jTextFieldNew.getText()) != Workspace.WORKSPACE_VALID) {\r
Log.wrn("Switch Workspace", "Please select a valid workspace!");\r
return false;\r
}\r
if (!check()) {\r
return;\r
} else {\r
- this.setVisible(false);\r
Workspace.setCurrentWorkspace(this.jTextFieldNew.getText());\r
returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
}\r
}\r
\r