1 11 package org.eclipse.jdt.internal.ui.util; 12 13 import org.eclipse.swt.graphics.Image; 14 15 import org.eclipse.jface.viewers.LabelProvider; 16 17 import org.eclipse.jdt.core.Flags; 18 19 import org.eclipse.jdt.internal.corext.util.TypeInfo; 20 21 import org.eclipse.jdt.ui.JavaElementLabels; 22 23 import org.eclipse.jdt.internal.ui.JavaPluginImages; 24 import org.eclipse.jdt.internal.ui.JavaUIMessages; 25 26 public class TypeInfoLabelProvider extends LabelProvider { 27 28 public static final int SHOW_FULLYQUALIFIED= 0x01; 29 public static final int SHOW_PACKAGE_POSTFIX= 0x02; 30 public static final int SHOW_PACKAGE_ONLY= 0x04; 31 public static final int SHOW_ROOT_POSTFIX= 0x08; 32 public static final int SHOW_TYPE_ONLY= 0x10; 33 public static final int SHOW_TYPE_CONTAINER_ONLY= 0x20; 34 public static final int SHOW_POST_QUALIFIED= 0x40; 35 36 private static final Image CLASS_ICON= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS); 37 private static final Image ANNOTATION_ICON= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_ANNOTATION); 38 private static final Image INTERFACE_ICON= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_INTERFACE); 39 private static final Image ENUM_ICON= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_ENUM); 40 private static final Image PKG_ICON= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_PACKAGE); 41 42 private int fFlags; 43 44 public TypeInfoLabelProvider(int flags) { 45 fFlags= flags; 46 } 47 48 private boolean isSet(int flag) { 49 return (fFlags & flag) != 0; 50 } 51 52 private String getPackageName(String packName) { 53 if (packName.length() == 0) 54 return JavaUIMessages.TypeInfoLabelProvider_default_package; 55 else 56 return packName; 57 } 58 59 62 public String getText(Object element) { 63 if (! (element instanceof TypeInfo)) 64 return super.getText(element); 65 66 TypeInfo typeRef= (TypeInfo) element; 67 StringBuffer buf= new StringBuffer (); 68 if (isSet(SHOW_TYPE_ONLY)) { 69 buf.append(typeRef.getTypeName()); 70 } else if (isSet(SHOW_TYPE_CONTAINER_ONLY)) { 71 String containerName= typeRef.getTypeContainerName(); 72 buf.append(getPackageName(containerName)); 73 } else if (isSet(SHOW_PACKAGE_ONLY)) { 74 String packName= typeRef.getPackageName(); 75 buf.append(getPackageName(packName)); 76 } else { 77 if (isSet(SHOW_FULLYQUALIFIED)) { 78 buf.append(typeRef.getFullyQualifiedName()); 79 } else if (isSet(SHOW_POST_QUALIFIED)) { 80 buf.append(typeRef.getTypeName()); 81 String containerName= typeRef.getTypeContainerName(); 82 if (containerName != null && containerName.length() > 0) { 83 buf.append(JavaElementLabels.CONCAT_STRING); 84 buf.append(containerName); 85 } 86 } else { 87 buf.append(typeRef.getTypeQualifiedName()); 88 } 89 90 if (isSet(SHOW_PACKAGE_POSTFIX)) { 91 buf.append(JavaElementLabels.CONCAT_STRING); 92 String packName= typeRef.getPackageName(); 93 buf.append(getPackageName(packName)); 94 } 95 } 96 if (isSet(SHOW_ROOT_POSTFIX)) { 97 buf.append(JavaElementLabels.CONCAT_STRING); 98 buf.append(typeRef.getPackageFragmentRootPath().toString()); 99 } 100 return buf.toString(); 101 } 102 103 106 public Image getImage(Object element) { 107 if (! (element instanceof TypeInfo)) 108 return super.getImage(element); 109 110 if (isSet(SHOW_TYPE_CONTAINER_ONLY)) { 111 TypeInfo typeRef= (TypeInfo) element; 112 if (typeRef.getPackageName().equals(typeRef.getTypeContainerName())) 113 return PKG_ICON; 114 115 return CLASS_ICON; 117 118 } else if (isSet(SHOW_PACKAGE_ONLY)) { 119 return PKG_ICON; 120 } else { 121 int modifiers= ((TypeInfo)element).getModifiers(); 122 if (Flags.isAnnotation(modifiers)) { 123 return ANNOTATION_ICON; 124 } else if (Flags.isEnum(modifiers)) { 125 return ENUM_ICON; 126 } else if (Flags.isInterface(modifiers)) { 127 return INTERFACE_ICON; 128 } 129 return CLASS_ICON; 130 } 131 } 132 } 133 | Popular Tags |