1
2
3
4
5 package com.eviware.soapui.support.dnd.handlers;
6
7 import com.eviware.soapui.impl.wsdl.WsdlProject;
8 import com.eviware.soapui.impl.wsdl.WsdlTestSuite;
9 import com.eviware.soapui.impl.wsdl.actions.testsuite.CloneTestSuiteAction;
10 import com.eviware.soapui.support.UISupport;
11
12 public class TestSuiteToProjectDropHandler extends AbstractAfterModelItemDropHandler<WsdlTestSuite, WsdlProject>
13 {
14 public TestSuiteToProjectDropHandler()
15 {
16 super( WsdlTestSuite.class, WsdlProject.class );
17 }
18
19 @Override
20 boolean canCopyAfter( WsdlTestSuite source, WsdlProject target )
21 {
22 return true;
23 }
24
25 @Override
26 boolean canMoveAfter( WsdlTestSuite source, WsdlProject target )
27 {
28 return source.getProject() != target;
29 }
30
31 @Override
32 boolean copyAfter( WsdlTestSuite source, WsdlProject target )
33 {
34 String name = UISupport.prompt( "Specify name for copied TestSuite", "Copy TestSuite", "Copy of " + source.getName() );
35 if( name == null )
36 return false;
37
38 if( source.getProject() == target )
39 {
40 return CloneTestSuiteAction.cloneTestSuiteWithinProject( source, name, target );
41 }
42 else
43 {
44 return CloneTestSuiteAction.cloneToAnotherProject( source, target.getName(), name, false ) != null;
45 }
46 }
47
48 @Override
49 boolean moveAfter( WsdlTestSuite source, WsdlProject target )
50 {
51 String name = UISupport.prompt( "Specify name for moved TestSuite", "Move TestSuite", source.getName() );
52 if( name == null )
53 return false;
54
55 WsdlTestSuite testSuite = CloneTestSuiteAction.cloneToAnotherProject( source, target.getName(), name, true );
56 if( testSuite != null )
57 {
58 source.getProject().removeTestSuite( source );
59 return true;
60 }
61
62 return false;
63 }
64
65 @Override
66 String getCopyAfterInfo( WsdlTestSuite source, WsdlProject target )
67 {
68 return source.getProject() == target ?
69 "Copy TestSuite [" + source.getName() + "] within Project [" + target.getName() + "]" :
70 "Copy TestSuite [" + source.getName() + "] to Project [" + target.getName() + "]";
71 }
72
73 @Override
74 String getMoveAfterInfo( WsdlTestSuite source, WsdlProject target )
75 {
76 return "Move TestSuite [" + source.getName() + "] to Project [" + target.getName() + "]";
77 }
78
79
80 }