1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.actions;
14
15 import java.io.File;
16
17 import com.eviware.soapui.SoapUI;
18 import com.eviware.soapui.impl.WorkspaceImpl;
19 import com.eviware.soapui.support.SoapUIException;
20 import com.eviware.soapui.support.UISupport;
21 import com.eviware.soapui.support.action.support.AbstractSoapUIAction;
22
23 /***
24 * Action for creating a new Workspace
25 *
26 * @author ole.matzura
27 */
28
29 public class NewWorkspaceAction extends AbstractSoapUIAction<WorkspaceImpl>
30 {
31 public static final String SOAPUI_ACTION_ID = "NewWorkspaceAction";
32
33 public NewWorkspaceAction()
34 {
35 super( "New Workspace", "Creates a new workspace" );
36 }
37
38 public void perform( WorkspaceImpl workspace, Object param )
39 {
40 if( SoapUI.getTestMonitor().hasRunningTests() )
41 {
42 UISupport.showErrorMessage( "Cannot create and switch workspace white tests are running" );
43 return;
44 }
45
46 String name = UISupport.prompt( "Enter name of new workspace", "New Workspace", "" );
47 if( name == null )
48 return;
49
50 File newPath = UISupport.getFileDialogs().saveAs(
51 this, "New Workspace", ".xml", "soapUI Workspace (*.xml)",
52 new File(name + "-workspace.xml") );
53 if( newPath == null )
54 return;
55
56 if( SoapUI.getDesktop().closeAll())
57 {
58 if( newPath.exists() )
59 {
60 if( !UISupport.confirm( "Workspace exists, overwrite?", "New Workspace" ))
61 {
62 return;
63 }
64
65 if( !newPath.delete())
66 {
67 UISupport.showErrorMessage( "Failed to delete existing workspace" );
68 return;
69 }
70 }
71
72 Boolean val = Boolean.TRUE;
73
74 if( workspace.getOpenProjectList().size() > 0 )
75 {
76 val = UISupport.confirmOrCancel( "Save All Projects before Switching Workspace?", "Switch Workspace" );
77 if( val == null )
78 return;
79 }
80
81 workspace.save( val.booleanValue() );
82
83 try
84 {
85 workspace.switchWorkspace( newPath );
86 SoapUI.getSettings().setString( SoapUI.CURRENT_SOAPUI_WORKSPACE, newPath.getAbsolutePath() );
87 workspace.setName( name );
88 }
89 catch( SoapUIException e )
90 {
91 UISupport.showErrorMessage( e );
92 }
93
94 }
95 }
96 }