1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.model.util;
14
15 import java.util.HashMap;
16 import java.util.Map;
17
18 import javax.swing.ImageIcon;
19
20 import com.eviware.soapui.model.ModelItem;
21 import com.eviware.soapui.model.iface.Interface;
22 import com.eviware.soapui.model.iface.Operation;
23 import com.eviware.soapui.model.iface.Request;
24 import com.eviware.soapui.model.mock.MockOperation;
25 import com.eviware.soapui.model.mock.MockResponse;
26 import com.eviware.soapui.model.mock.MockService;
27 import com.eviware.soapui.model.project.Project;
28 import com.eviware.soapui.model.testsuite.LoadTest;
29 import com.eviware.soapui.model.testsuite.TestAssertion;
30 import com.eviware.soapui.model.testsuite.TestCase;
31 import com.eviware.soapui.model.testsuite.TestStep;
32 import com.eviware.soapui.model.testsuite.TestSuite;
33 import com.eviware.soapui.support.UISupport;
34
35 public class ModelItemIconFactory
36 {
37 private static Map<Class<? extends ModelItem>, String> modelItemIcons = new HashMap<Class<? extends ModelItem>, String>();
38
39 static
40 {
41 modelItemIcons.put( Project.class, "/project.gif" );
42 modelItemIcons.put( TestSuite.class, "/testSuite.gif" );
43 modelItemIcons.put( TestCase.class, "/testCase.gif" );
44 modelItemIcons.put( TestStep.class, "/teststeps.gif" );
45 modelItemIcons.put( TestAssertion.class, "/assertion.gif" );
46 modelItemIcons.put( LoadTest.class, "/loadTest.gif" );
47 modelItemIcons.put( MockService.class, "/mockService.gif" );
48 modelItemIcons.put( MockResponse.class, "/mockResponse.gif" );
49 modelItemIcons.put( MockOperation.class, "/mockOperation.gif" );
50 modelItemIcons.put( Request.class, "/request.gif" );
51 modelItemIcons.put( Operation.class, "/operation.gif" );
52 modelItemIcons.put( Interface.class, "/interface.gif" );
53
54 }
55
56 public static ImageIcon getIcon( Class<? extends ModelItem> clazz )
57 {
58 if( modelItemIcons.containsKey( clazz ) )
59 return UISupport.createImageIcon( modelItemIcons.get( clazz ) );
60
61 for( Class<?> iface : clazz.getInterfaces() )
62 {
63 if( modelItemIcons.containsKey( iface ) )
64 return UISupport.createImageIcon( modelItemIcons.get( iface ) );
65 }
66
67 return null;
68 }
69
70 @SuppressWarnings( "unchecked" )
71 public static String getIconPath( Class<? extends ModelItem> clazz )
72 {
73 if( modelItemIcons.containsKey( clazz ) )
74 return modelItemIcons.get( clazz );
75
76 for( Class<?> iface : clazz.getInterfaces() )
77 {
78 if( modelItemIcons.containsKey( iface ) )
79 return modelItemIcons.get( iface );
80 }
81
82 while( clazz.getSuperclass() != null && ModelItem.class.isAssignableFrom( clazz.getSuperclass() ) )
83 {
84 return getIconPath( ( Class<? extends ModelItem> )clazz.getSuperclass() );
85 }
86
87 return null;
88 }
89
90 public static <T extends ModelItem> String getIconPath( T modelItem )
91 {
92 return getIconPath( modelItem.getClass() );
93 }
94
95 public static <T extends ModelItem> ImageIcon getIcon( T modelItem )
96 {
97 return getIcon( modelItem.getClass() );
98 }
99 }