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 import org.eclipse.jdt.core.IPackageFragmentRoot; 19 import org.eclipse.jdt.core.search.TypeNameMatch; 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 TypeNameMatchLabelProvider 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 TypeNameMatchLabelProvider(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 TypeNameMatch)) 64 return super.getText(element); 65 66 TypeNameMatch typeRef= (TypeNameMatch) element; 67 StringBuffer buf= new StringBuffer (); 68 if (isSet(SHOW_TYPE_ONLY)) { 69 buf.append(typeRef.getSimpleTypeName()); 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.getSimpleTypeName()); 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 IPackageFragmentRoot root= typeRef.getPackageFragmentRoot(); 99 JavaElementLabels.getPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED, buf); 100 } 101 return buf.toString(); 102 } 103 104 107 public Image getImage(Object element) { 108 if (! (element instanceof TypeNameMatch)) 109 return super.getImage(element); 110 111 if (isSet(SHOW_TYPE_CONTAINER_ONLY)) { 112 TypeNameMatch typeRef= (TypeNameMatch) element; 113 if (typeRef.getPackageName().equals(typeRef.getTypeContainerName())) 114 return PKG_ICON; 115 116 return CLASS_ICON; 118 119 } else if (isSet(SHOW_PACKAGE_ONLY)) { 120 return PKG_ICON; 121 } else { 122 int modifiers= ((TypeNameMatch)element).getModifiers(); 123 if (Flags.isAnnotation(modifiers)) { 124 return ANNOTATION_ICON; 125 } else if (Flags.isEnum(modifiers)) { 126 return ENUM_ICON; 127 } else if (Flags.isInterface(modifiers)) { 128 return INTERFACE_ICON; 129 } 130 return CLASS_ICON; 131 } 132 } 133 } 134 | Popular Tags |