View Javadoc

1   package com.eviware.soapui.model.util;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   
6   import javax.swing.ImageIcon;
7   
8   import com.eviware.soapui.model.ModelItem;
9   import com.eviware.soapui.model.mock.MockOperation;
10  import com.eviware.soapui.model.mock.MockResponse;
11  import com.eviware.soapui.model.mock.MockService;
12  import com.eviware.soapui.model.project.Project;
13  import com.eviware.soapui.model.testsuite.LoadTest;
14  import com.eviware.soapui.model.testsuite.TestAssertion;
15  import com.eviware.soapui.model.testsuite.TestCase;
16  import com.eviware.soapui.model.testsuite.TestStep;
17  import com.eviware.soapui.model.testsuite.TestSuite;
18  import com.eviware.soapui.support.UISupport;
19  
20  public class ModelItemIconFactory
21  {
22  	private static Map<Class<? extends ModelItem>, String > modelItemIcons = new HashMap<Class<? extends ModelItem>, String>(); 
23  	
24  	static
25  	{
26  		modelItemIcons.put( Project.class, "/project.gif" );
27  		modelItemIcons.put( TestSuite.class, "/testSuite.gif" );
28  		modelItemIcons.put( TestCase.class, "/testCase.gif" );
29  		modelItemIcons.put( TestStep.class, "/teststeps.gif" );
30  		modelItemIcons.put( TestAssertion.class, "/assertion.gif" );
31  		modelItemIcons.put( LoadTest.class, "/loadTest.gif" );
32  		modelItemIcons.put( MockService.class, "/mockService.gif" );
33  		modelItemIcons.put( MockResponse.class, "/mockResponse.gif" );
34  		modelItemIcons.put( MockOperation.class, "/mockOperation.gif" );
35  	}
36  	
37  	public static ImageIcon getIcon( Class<? extends ModelItem> clazz )
38  	{
39  		if( modelItemIcons.containsKey( clazz ))
40  			return UISupport.createImageIcon( modelItemIcons.get( clazz ) );
41  		
42  		for( Class iface : clazz.getInterfaces() )
43  		{
44  			if( modelItemIcons.containsKey( iface ))
45  				return UISupport.createImageIcon( modelItemIcons.get( iface ) );
46  		}
47  		
48  		return null;
49  	}
50  	
51  	public static <T extends ModelItem>  ImageIcon getIcon( T modelItem )
52  	{
53  		return getIcon( modelItem.getClass() );
54  	}
55  }