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.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  }