1
2
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 }