View Javadoc

1   /*
2    *  soapUI Pro, copyright (C) 2007 eviware software ab 
3    */
4   
5   package com.eviware.soapui.support.dnd.handlers;
6   
7   import com.eviware.soapui.SoapUI;
8   import com.eviware.soapui.impl.wsdl.WsdlProject;
9   import com.eviware.soapui.impl.wsdl.actions.mockservice.CloneMockServiceAction;
10  import com.eviware.soapui.impl.wsdl.mock.WsdlMockService;
11  import com.eviware.soapui.support.UISupport;
12  import com.eviware.soapui.support.action.SoapUIAction;
13  
14  public class MockServiceToProjectDropHandler extends AbstractAfterModelItemDropHandler<WsdlMockService, WsdlProject>
15  {
16  	public MockServiceToProjectDropHandler()
17  	{
18  		super( WsdlMockService.class, WsdlProject.class );
19  	}
20  	
21  	@Override
22  	boolean canCopyAfter( WsdlMockService source, WsdlProject target )
23  	{
24  		return true;
25  	}
26  
27  	@Override
28  	boolean canMoveAfter( WsdlMockService source, WsdlProject target )
29  	{
30  		return source.getProject() != target;
31  	}
32  
33  	@Override
34  	boolean copyAfter( WsdlMockService source, WsdlProject target )
35  	{
36  		SoapUIAction<WsdlMockService> action = SoapUI.getActionRegistry().getAction( CloneMockServiceAction.SOAPUI_ACTION_ID );
37  		CloneMockServiceAction a = ( CloneMockServiceAction ) action;
38  		
39  		String name = UISupport.prompt( "Specify name for copied MockService", "Copy MockService", "Copy of " + source.getName() );
40  		if( name == null )
41  			return false;
42  
43  		if( source.getProject() == target )
44  		{
45  			a.cloneMockServiceWithinProject( source, name, target );
46  		}
47  		else
48  		{
49  			a.cloneToAnotherProject( source, target.getName(), name );
50  		}
51  		
52  		return true;
53  	}
54  
55  	@Override
56  	boolean moveAfter( WsdlMockService source, WsdlProject target )
57  	{
58  		SoapUIAction<WsdlMockService> action = SoapUI.getActionRegistry().getAction( CloneMockServiceAction.SOAPUI_ACTION_ID );
59  		CloneMockServiceAction a = ( CloneMockServiceAction ) action;
60  		
61  		String name = UISupport.prompt( "Specify name for moved MockService", "Move MockService", source.getName() );
62  		if( name == null )
63  			return false;
64  
65  		if( a.cloneToAnotherProject( source, target.getName(), name ) == null )
66  			return false;
67  
68  		source.getProject().removeMockService( source );
69  		return true;
70  	}
71  
72  	@Override
73  	String getCopyAfterInfo( WsdlMockService source, WsdlProject target )
74  	{
75  		return "Copy MockService [" + source.getName() + "] to Project [" + target.getName() + "]";
76  	}
77  
78  	@Override
79  	String getMoveAfterInfo( WsdlMockService source, WsdlProject target )
80  	{
81  		return "Move MockService [" + source.getName() + "] to Project [" + target.getName() + "]";
82  	}
83  	
84  	
85  }