1 19 20 21 package ca.mcgill.sable.soot.editors; 22 23 import java.util.*; 24 25 import org.eclipse.jface.resource.ImageDescriptor; 26 import org.eclipse.jface.viewers.ILabelProvider; 27 import org.eclipse.jface.viewers.ILabelProviderListener; 28 import org.eclipse.swt.graphics.Image; 29 import org.eclipse.ui.ISharedImages; 30 import org.eclipse.ui.PlatformUI; 31 import ca.mcgill.sable.soot.SootPlugin; 32 33 34 35 public class JimpleOutlineLabelProvider implements ILabelProvider { 36 37 private HashMap imageCache; 38 39 42 public JimpleOutlineLabelProvider() { 43 super(); 44 } 45 46 49 public Image getImage(Object element) { 50 51 ImageDescriptor descriptor = null; 52 if (element instanceof JimpleOutlineObject){ 53 54 switch (((JimpleOutlineObject)element).getType()){ 55 case JimpleOutlineObject.CLASS: { 56 descriptor = SootPlugin.getImageDescriptor("class_obj.gif"); 57 break; 58 } 59 case JimpleOutlineObject.INTERFACE: { 60 descriptor = SootPlugin.getImageDescriptor("int_obj.gif"); 61 break; 62 } 63 case JimpleOutlineObject.PUBLIC_METHOD:{ 64 descriptor = SootPlugin.getImageDescriptor("public_co.gif"); 65 break; 66 } 67 case JimpleOutlineObject.PROTECTED_METHOD:{ 68 descriptor = SootPlugin.getImageDescriptor("protected_co.gif"); 69 break; 70 } 71 case JimpleOutlineObject.PRIVATE_METHOD:{ 72 descriptor = SootPlugin.getImageDescriptor("private_co.gif"); 73 break; 74 } 75 case JimpleOutlineObject.NONE_METHOD: { 76 descriptor = SootPlugin.getImageDescriptor("default_co.gif"); 77 break; 78 } 79 case JimpleOutlineObject.PUBLIC_FIELD: { 80 descriptor = SootPlugin.getImageDescriptor("field_public_obj.gif"); 81 break; 82 } 83 case JimpleOutlineObject.PROTECTED_FIELD: { 84 descriptor = SootPlugin.getImageDescriptor("field_protected_obj.gif"); 85 break; 86 } 87 case JimpleOutlineObject.PRIVATE_FIELD: { 88 descriptor = SootPlugin.getImageDescriptor("field_private_obj.gif"); 89 break; 90 } 91 case JimpleOutlineObject.NONE_FIELD: { 92 descriptor = SootPlugin.getImageDescriptor("field_default_obj.gif"); 93 break; 94 } 95 default:{ 96 return null; 97 98 } 99 } 100 } 101 if (getImageCache() == null){ 102 setImageCache(new HashMap()); 103 104 } 105 Image image = (Image)getImageCache().get(descriptor); 106 if (image == null) { 107 image = descriptor.createImage(); 108 getImageCache().put(descriptor, image); 109 110 } 111 112 113 return image; 114 115 116 117 } 118 119 122 public String getText(Object element) { 123 return ((JimpleOutlineObject)element).getLabel(); 124 } 125 126 129 public void addListener(ILabelProviderListener listener) { 130 } 131 132 135 public void dispose() { 136 if (getImageCache() != null){ 137 Iterator it = getImageCache().values().iterator(); 138 while (it.hasNext()){ 139 ((Image)it.next()).dispose(); 140 } 141 getImageCache().clear(); 142 } 143 } 144 145 148 public boolean isLabelProperty(Object element, String property) { 149 return false; 150 } 151 152 155 public void removeListener(ILabelProviderListener listener) { 156 } 157 158 161 public HashMap getImageCache() { 162 return imageCache; 163 } 164 165 168 public void setImageCache(HashMap map) { 169 imageCache = map; 170 } 171 172 } 173 | Popular Tags |