View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2008 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  
14  package com.eviware.soapui.support.dnd.handlers;
15  
16  import com.eviware.soapui.SoapUI;
17  import com.eviware.soapui.impl.wsdl.WsdlProject;
18  import com.eviware.soapui.impl.wsdl.actions.mockservice.CloneMockServiceAction;
19  import com.eviware.soapui.impl.wsdl.mock.WsdlMockService;
20  import com.eviware.soapui.support.UISupport;
21  import com.eviware.soapui.support.action.SoapUIAction;
22  
23  public class MockServiceToProjectDropHandler extends AbstractAfterModelItemDropHandler<WsdlMockService, WsdlProject>
24  {
25  	public MockServiceToProjectDropHandler()
26  	{
27  		super( WsdlMockService.class, WsdlProject.class );
28  	}
29  	
30  	@Override
31  	boolean canCopyAfter( WsdlMockService source, WsdlProject target )
32  	{
33  		return true;
34  	}
35  
36  	@Override
37  	boolean canMoveAfter( WsdlMockService source, WsdlProject target )
38  	{
39  		return source.getProject() != target;
40  	}
41  
42  	@Override
43  	boolean copyAfter( WsdlMockService source, WsdlProject target )
44  	{
45  		SoapUIAction<WsdlMockService> action = SoapUI.getActionRegistry().getAction( CloneMockServiceAction.SOAPUI_ACTION_ID );
46  		CloneMockServiceAction a = ( CloneMockServiceAction ) action;
47  		
48  		String name = UISupport.prompt( "Specify name for copied MockService", "Copy MockService", "Copy of " + source.getName() );
49  		if( name == null )
50  			return false;
51  
52  		if( source.getProject() == target )
53  		{
54  			a.cloneMockServiceWithinProject( source, name, target );
55  		}
56  		else
57  		{
58  			a.cloneToAnotherProject( source, target.getName(), name );
59  		}
60  		
61  		return true;
62  	}
63  
64  	@Override
65  	boolean moveAfter( WsdlMockService source, WsdlProject target )
66  	{
67  		SoapUIAction<WsdlMockService> action = SoapUI.getActionRegistry().getAction( CloneMockServiceAction.SOAPUI_ACTION_ID );
68  		CloneMockServiceAction a = ( CloneMockServiceAction ) action;
69  		
70  		String name = UISupport.prompt( "Specify name for moved MockService", "Move MockService", source.getName() );
71  		if( name == null )
72  			return false;
73  
74  		if( a.cloneToAnotherProject( source, target.getName(), name ) == null )
75  			return false;
76  
77  		source.getProject().removeMockService( source );
78  		return true;
79  	}
80  
81  	@Override
82  	String getCopyAfterInfo( WsdlMockService source, WsdlProject target )
83  	{
84  		return "Copy MockService [" + source.getName() + "] to Project [" + target.getName() + "]";
85  	}
86  
87  	@Override
88  	String getMoveAfterInfo( WsdlMockService source, WsdlProject target )
89  	{
90  		return "Move MockService [" + source.getName() + "] to Project [" + target.getName() + "]";
91  	}
92  	
93  	
94  }