X-Git-Url: http://secure.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaElementImageProvider.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaElementImageProvider.java
index 627a491..5433e55 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaElementImageProvider.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaElementImageProvider.java
@@ -36,386 +36,424 @@ import org.eclipse.ui.ide.IDE.SharedImages;
import org.eclipse.ui.model.IWorkbenchAdapter;
/**
- * Default strategy of the Java plugin for the construction of Java element icons.
+ * Default strategy of the Java plugin for the construction of Java element
+ * icons.
*/
public class JavaElementImageProvider {
- /**
- * Flags for the JavaImageLabelProvider:
- * Generate images with overlays.
- */
- public final static int OVERLAY_ICONS = 0x1;
-
- /**
- * Generate small sized images.
- */
- public final static int SMALL_ICONS = 0x2;
-
- /**
- * Use the 'light' style for rendering types.
- */
- public final static int LIGHT_TYPE_ICONS = 0x4;
-
- public static final Point SMALL_SIZE = new Point(16, 16);
- public static final Point BIG_SIZE = new Point(22, 16);
-
- private static ImageDescriptor DESC_OBJ_PROJECT_CLOSED;
- private static ImageDescriptor DESC_OBJ_PROJECT;
- private static ImageDescriptor DESC_OBJ_FOLDER;
- {
- ISharedImages images = PHPeclipsePlugin.getDefault().getWorkbench().getSharedImages();
- DESC_OBJ_PROJECT_CLOSED = images.getImageDescriptor(SharedImages.IMG_OBJ_PROJECT_CLOSED);
- DESC_OBJ_PROJECT = images.getImageDescriptor(SharedImages.IMG_OBJ_PROJECT);
- DESC_OBJ_FOLDER = images.getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER);
- }
-
- private ImageDescriptorRegistry fRegistry;
-
- public JavaElementImageProvider() {
- fRegistry = null; // lazy initialization
- }
-
- /**
- * Returns the icon for a given element. The icon depends on the element type
- * and element properties. If configured, overlay icons are constructed for
- * ISourceReference
s.
- * @param flags Flags as defined by the JavaImageLabelProvider
- */
- public Image getImageLabel(Object element, int flags) {
- return getImageLabel(computeDescriptor(element, flags));
- }
-
- private Image getImageLabel(ImageDescriptor descriptor) {
- if (descriptor == null)
- return null;
- return getRegistry().get(descriptor);
- }
-
- private ImageDescriptorRegistry getRegistry() {
- if (fRegistry == null) {
- fRegistry = PHPeclipsePlugin.getImageDescriptorRegistry();
- }
- return fRegistry;
- }
-
- private ImageDescriptor computeDescriptor(Object element, int flags) {
- if (element instanceof IJavaElement) {
- return getJavaImageDescriptor((IJavaElement) element, flags);
- } else if (element instanceof IFile) {
- IFile file = (IFile) element;
- if ("java".equals(file.getFileExtension())) { //$NON-NLS-1$
- return getCUResourceImageDescriptor(file, flags); // image for a CU not on the build path
- }
- return getWorkbenchImageDescriptor(file, flags);
- } else if (element instanceof IAdaptable) {
- return getWorkbenchImageDescriptor((IAdaptable) element, flags);
- }
- return null;
- }
-
- private static boolean showOverlayIcons(int flags) {
- return (flags & OVERLAY_ICONS) != 0;
- }
-
- private static boolean useSmallSize(int flags) {
- return (flags & SMALL_ICONS) != 0;
- }
-
- private static boolean useLightIcons(int flags) {
- return (flags & LIGHT_TYPE_ICONS) != 0;
- }
-
- /**
- * Returns an image descriptor for a compilatio unit not on the class path.
- * The descriptor includes overlays, if specified.
- */
- public ImageDescriptor getCUResourceImageDescriptor(IFile file, int flags) {
- Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
- return new JavaElementImageDescriptor(PHPUiImages.DESC_OBJS_CUNIT_RESOURCE, 0, size);
- }
-
- /**
- * Returns an image descriptor for a java element. The descriptor includes overlays, if specified.
- */
- public ImageDescriptor getJavaImageDescriptor(IJavaElement element, int flags) {
- int adornmentFlags = computeJavaAdornmentFlags(element, flags);
- Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
- return new JavaElementImageDescriptor(getBaseImageDescriptor(element, flags), adornmentFlags, size);
- }
-
- /**
- * Returns an image descriptor for a IAdaptable. The descriptor includes overlays, if specified (only error ticks apply).
- * Returns null
if no image could be found.
- */
- public ImageDescriptor getWorkbenchImageDescriptor(IAdaptable adaptable, int flags) {
- IWorkbenchAdapter wbAdapter = (IWorkbenchAdapter) adaptable.getAdapter(IWorkbenchAdapter.class);
- if (wbAdapter == null) {
- return null;
- }
- ImageDescriptor descriptor = wbAdapter.getImageDescriptor(adaptable);
- if (descriptor == null) {
- return null;
- }
-
- Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
- return new JavaElementImageDescriptor(descriptor, 0, size);
- }
-
- // ---- Computation of base image key -------------------------------------------------
-
- /**
- * Returns an image descriptor for a java element. This is the base image, no overlays.
- */
- public ImageDescriptor getBaseImageDescriptor(IJavaElement element, int renderFlags) {
+ /**
+ * Flags for the JavaImageLabelProvider: Generate images with overlays.
+ */
+ public final static int OVERLAY_ICONS = 0x1;
+
+ /**
+ * Generate small sized images.
+ */
+ public final static int SMALL_ICONS = 0x2;
+
+ /**
+ * Use the 'light' style for rendering types.
+ */
+ public final static int LIGHT_TYPE_ICONS = 0x4;
+
+ public static final Point SMALL_SIZE = new Point(16, 16);
+
+ public static final Point BIG_SIZE = new Point(22, 16);
+
+ private static ImageDescriptor DESC_OBJ_PROJECT_CLOSED;
+
+ private static ImageDescriptor DESC_OBJ_PROJECT;
+
+ private static ImageDescriptor DESC_OBJ_FOLDER;
+ {
+ ISharedImages images = PHPeclipsePlugin.getDefault().getWorkbench()
+ .getSharedImages();
+ DESC_OBJ_PROJECT_CLOSED = images
+ .getImageDescriptor(SharedImages.IMG_OBJ_PROJECT_CLOSED);
+ DESC_OBJ_PROJECT = images
+ .getImageDescriptor(SharedImages.IMG_OBJ_PROJECT);
+ DESC_OBJ_FOLDER = images
+ .getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER);
+ }
+
+ private ImageDescriptorRegistry fRegistry;
+
+ public JavaElementImageProvider() {
+ fRegistry = null; // lazy initialization
+ }
+
+ /**
+ * Returns the icon for a given element. The icon depends on the element
+ * type and element properties. If configured, overlay icons are constructed
+ * for ISourceReference
s.
+ *
+ * @param flags
+ * Flags as defined by the JavaImageLabelProvider
+ */
+ public Image getImageLabel(Object element, int flags) {
+ return getImageLabel(computeDescriptor(element, flags));
+ }
+
+ private Image getImageLabel(ImageDescriptor descriptor) {
+ if (descriptor == null)
+ return null;
+ return getRegistry().get(descriptor);
+ }
+
+ private ImageDescriptorRegistry getRegistry() {
+ if (fRegistry == null) {
+ fRegistry = PHPeclipsePlugin.getImageDescriptorRegistry();
+ }
+ return fRegistry;
+ }
+
+ private ImageDescriptor computeDescriptor(Object element, int flags) {
+ if (element instanceof IJavaElement) {
+ return getJavaImageDescriptor((IJavaElement) element, flags);
+ } else if (element instanceof IFile) {
+ IFile file = (IFile) element;
+ if ("java".equals(file.getFileExtension())) { //$NON-NLS-1$
+ return getCUResourceImageDescriptor(file, flags); // image for
+ // a CU not
+ // on the
+ // build
+ // path
+ }
+ return getWorkbenchImageDescriptor(file, flags);
+ } else if (element instanceof IAdaptable) {
+ return getWorkbenchImageDescriptor((IAdaptable) element, flags);
+ }
+ return null;
+ }
+
+ private static boolean showOverlayIcons(int flags) {
+ return (flags & OVERLAY_ICONS) != 0;
+ }
+
+ private static boolean useSmallSize(int flags) {
+ return (flags & SMALL_ICONS) != 0;
+ }
+
+ private static boolean useLightIcons(int flags) {
+ return (flags & LIGHT_TYPE_ICONS) != 0;
+ }
+
+ /**
+ * Returns an image descriptor for a compilatio unit not on the class path.
+ * The descriptor includes overlays, if specified.
+ */
+ public ImageDescriptor getCUResourceImageDescriptor(IFile file, int flags) {
+ Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
+ return new JavaElementImageDescriptor(
+ PHPUiImages.DESC_OBJS_CUNIT_RESOURCE, 0, size);
+ }
+
+ /**
+ * Returns an image descriptor for a java element. The descriptor includes
+ * overlays, if specified.
+ */
+ public ImageDescriptor getJavaImageDescriptor(IJavaElement element,
+ int flags) {
+ int adornmentFlags = computeJavaAdornmentFlags(element, flags);
+ Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
+ return new JavaElementImageDescriptor(getBaseImageDescriptor(element,
+ flags), adornmentFlags, size);
+ }
+
+ /**
+ * Returns an image descriptor for a IAdaptable. The descriptor includes
+ * overlays, if specified (only error ticks apply). Returns
+ * null
if no image could be found.
+ */
+ public ImageDescriptor getWorkbenchImageDescriptor(IAdaptable adaptable,
+ int flags) {
+ IWorkbenchAdapter wbAdapter = (IWorkbenchAdapter) adaptable
+ .getAdapter(IWorkbenchAdapter.class);
+ if (wbAdapter == null) {
+ return null;
+ }
+ ImageDescriptor descriptor = wbAdapter.getImageDescriptor(adaptable);
+ if (descriptor == null) {
+ return null;
+ }
+
+ Point size = useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
+ return new JavaElementImageDescriptor(descriptor, 0, size);
+ }
+
+ // ---- Computation of base image key
+ // -------------------------------------------------
+
+ /**
+ * Returns an image descriptor for a java element. This is the base image,
+ * no overlays.
+ */
+ public ImageDescriptor getBaseImageDescriptor(IJavaElement element,
+ int renderFlags) {
IType type = null;
boolean isInterface = false;
- try {
- switch (element.getElementType()) {
- case IJavaElement.INITIALIZER :
- return PHPUiImages.DESC_MISC_PRIVATE; // 23479
- case IJavaElement.METHOD :
- IMember member = (IMember) element;
- type = member.getDeclaringType();
- isInterface = (type != null) && member.getDeclaringType().isInterface();
- return getMethodImageDescriptor(isInterface, member.getFlags());
- case IJavaElement.FIELD :
- IField field = (IField) element;
- return getFieldImageDescriptor(field.getDeclaringType().isInterface(), field.getFlags());
-
- case IJavaElement.PACKAGE_DECLARATION :
- return PHPUiImages.DESC_OBJS_PACKDECL;
-
- case IJavaElement.IMPORT_DECLARATION :
- return PHPUiImages.DESC_OBJS_IMPDECL;
-
- case IJavaElement.IMPORT_CONTAINER :
- return PHPUiImages.DESC_OBJS_IMPCONT;
-
- case IJavaElement.TYPE :
- {
- type = (IType) element;
- isInterface = type.isInterface();
-
- if (useLightIcons(renderFlags)) {
- return isInterface ? PHPUiImages.DESC_OBJS_INTERFACEALT : PHPUiImages.DESC_OBJS_CLASSALT;
- }
- boolean isInner = type.getDeclaringType() != null;
- return getTypeImageDescriptor(isInterface, isInner, type.getFlags());
- }
-
- case IJavaElement.PACKAGE_FRAGMENT_ROOT :
- {
- IPackageFragmentRoot root = (IPackageFragmentRoot) element;
- // if (root.isArchive()) {
- // IPath attach= root.getSourceAttachmentPath();
- // if (root.isExternal()) {
- // if (attach == null) {
- // return PHPUiImages.DESC_OBJS_EXTJAR;
- // } else {
- // return PHPUiImages.DESC_OBJS_EXTJAR_WSRC;
- // }
- // } else {
- // if (attach == null) {
- // return PHPUiImages.DESC_OBJS_JAR;
- // } else {
- // return PHPUiImages.DESC_OBJS_JAR_WSRC;
- // }
- // }
- // } else {
- return PHPUiImages.DESC_OBJS_PACKFRAG_ROOT;
- // }
- }
-
- case IJavaElement.PACKAGE_FRAGMENT :
- return getPackageFragmentIcon(element, renderFlags);
-
- case IJavaElement.COMPILATION_UNIT :
- return PHPUiImages.DESC_OBJS_CUNIT;
-
- case IJavaElement.CLASS_FILE :
- /* this is too expensive for large packages
- try {
- IClassFile cfile= (IClassFile)element;
- if (cfile.isClass())
- return PHPUiImages.IMG_OBJS_CFILECLASS;
- return PHPUiImages.IMG_OBJS_CFILEINT;
- } catch(JavaModelException e) {
- // fall through;
- }*/
- return PHPUiImages.DESC_OBJS_CFILE;
-
- case IJavaElement.JAVA_PROJECT :
- IJavaProject jp = (IJavaProject) element;
- if (jp.getProject().isOpen()) {
- IProject project = jp.getProject();
- IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class);
- if (adapter != null) {
- ImageDescriptor result = adapter.getImageDescriptor(project);
- if (result != null)
- return result;
- }
- return DESC_OBJ_PROJECT;
- }
- return DESC_OBJ_PROJECT_CLOSED;
-
- case IJavaElement.JAVA_MODEL :
- return PHPUiImages.DESC_OBJS_JAVA_MODEL;
- }
-
- Assert.isTrue(false, PHPUIMessages.getString("JavaImageLabelprovider.assert.wrongImage")); //$NON-NLS-1$
- return null; //$NON-NLS-1$
-
- } catch (JavaModelException e) {
- if (e.isDoesNotExist())
- return PHPUiImages.DESC_OBJS_UNKNOWN;
- PHPeclipsePlugin.log(e);
- return PHPUiImages.DESC_OBJS_GHOST;
- }
- }
-
- protected ImageDescriptor getPackageFragmentIcon(IJavaElement element, int renderFlags) throws JavaModelException {
- // IPackageFragment fragment= (IPackageFragment)element;
- // boolean containsJavaElements= false;
- // try {
- // containsJavaElements= fragment.hasChildren();
- // } catch(JavaModelException e) {
- // // assuming no children;
- // }
- // if(!containsJavaElements && (fragment.getNonJavaResources().length > 0))
- // return PHPUiImages.DESC_OBJS_EMPTY_PACKAGE_RESOURCES;
- // else if (!containsJavaElements)
- // return PHPUiImages.DESC_OBJS_EMPTY_PACKAGE;
- return PHPUiImages.DESC_OBJS_PACKAGE;
- }
-
- public void dispose() {
- }
-
- // ---- Methods to compute the adornments flags ---------------------------------
-
- private int computeJavaAdornmentFlags(IJavaElement element, int renderFlags) {
- int flags = 0;
- if (showOverlayIcons(renderFlags) && element instanceof IMember) {
- try {
- IMember member = (IMember) element;
-
- if (element.getElementType() == IJavaElement.METHOD && ((IMethod) element).isConstructor())
- flags |= JavaElementImageDescriptor.CONSTRUCTOR;
-
- int modifiers = member.getFlags();
- if (Flags.isAbstract(modifiers) && confirmAbstract(member))
- flags |= JavaElementImageDescriptor.ABSTRACT;
- if (Flags.isFinal(modifiers) || isInterfaceField(member))
- flags |= JavaElementImageDescriptor.FINAL;
- // if (Flags.isSynchronized(modifiers) && confirmSynchronized(member))
- // flags |= JavaElementImageDescriptor.SYNCHRONIZED;
- if (Flags.isStatic(modifiers) || isInterfaceField(member))
- flags |= JavaElementImageDescriptor.STATIC;
-
- // if (member.getElementType() == IJavaElement.TYPE) {
- // if (JavaModelUtil.hasMainMethod((IType) member)) {
- // flags |= JavaElementImageDescriptor.RUNNABLE;
- // }
- // }
- } catch (JavaModelException e) {
- // do nothing. Can't compute runnable adornment or get flags
- }
- }
- return flags;
- }
-
- private static boolean confirmAbstract(IMember element) throws JavaModelException {
- // never show the abstract symbol on interfaces or members in interfaces
- if (element.getElementType() == IJavaElement.TYPE) {
- return ((IType) element).isClass();
- }
- return element.getDeclaringType().isClass();
- }
-
- private static boolean isInterfaceField(IMember element) throws JavaModelException {
- // always show the final && static symbol on interface fields
- if (element.getElementType() == IJavaElement.FIELD) {
- return element.getDeclaringType().isInterface();
- }
- return false;
- }
-
- private static boolean confirmSynchronized(IJavaElement member) {
- // Synchronized types are allowed but meaningless.
- return member.getElementType() != IJavaElement.TYPE;
- }
-
- public static ImageDescriptor getMethodImageDescriptor(boolean isInInterface, int flags) {
- if (Flags.isPublic(flags) || isInInterface)
- return PHPUiImages.DESC_MISC_PUBLIC;
- if (Flags.isProtected(flags))
- return PHPUiImages.DESC_MISC_PROTECTED;
- if (Flags.isPrivate(flags))
- return PHPUiImages.DESC_MISC_PRIVATE;
-
- return PHPUiImages.DESC_MISC_DEFAULT;
- }
-
- public static ImageDescriptor getFieldImageDescriptor(boolean isInInterface, int flags) {
- if (Flags.isPublic(flags) || isInInterface)
- return PHPUiImages.DESC_FIELD_PUBLIC;
- if (Flags.isProtected(flags))
- return PHPUiImages.DESC_FIELD_PROTECTED;
- if (Flags.isPrivate(flags))
- return PHPUiImages.DESC_FIELD_PRIVATE;
-
- return PHPUiImages.DESC_FIELD_DEFAULT;
- }
-
- public static ImageDescriptor getTypeImageDescriptor(boolean isInterface, boolean isInner, int flags) {
- if (isInner) {
- if (isInterface) {
- return getInnerInterfaceImageDescriptor(flags);
- } else {
- return getInnerClassImageDescriptor(flags);
- }
- } else {
- if (isInterface) {
- return getInterfaceImageDescriptor(flags);
- } else {
- return getClassImageDescriptor(flags);
- }
- }
- }
-
- private static ImageDescriptor getClassImageDescriptor(int flags) {
- if (Flags.isPublic(flags) || Flags.isProtected(flags) || Flags.isPrivate(flags))
- return PHPUiImages.DESC_OBJS_CLASS;
- else
- return PHPUiImages.DESC_OBJS_CLASS_DEFAULT;
- }
-
- private static ImageDescriptor getInnerClassImageDescriptor(int flags) {
- if (Flags.isPublic(flags))
- return PHPUiImages.DESC_OBJS_INNER_CLASS_PUBLIC;
- else if (Flags.isPrivate(flags))
- return PHPUiImages.DESC_OBJS_INNER_CLASS_PRIVATE;
- else if (Flags.isProtected(flags))
- return PHPUiImages.DESC_OBJS_INNER_CLASS_PROTECTED;
- else
- return PHPUiImages.DESC_OBJS_INNER_CLASS_DEFAULT;
- }
-
- private static ImageDescriptor getInterfaceImageDescriptor(int flags) {
- if (Flags.isPublic(flags) || Flags.isProtected(flags) || Flags.isPrivate(flags))
- return PHPUiImages.DESC_OBJS_INTERFACE;
- else
- return PHPUiImages.DESC_OBJS_INTERFACE_DEFAULT;
- }
-
- private static ImageDescriptor getInnerInterfaceImageDescriptor(int flags) {
- if (Flags.isPublic(flags))
- return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PUBLIC;
- else if (Flags.isPrivate(flags))
- return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PRIVATE;
- else if (Flags.isProtected(flags))
- return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PROTECTED;
- else
- return PHPUiImages.DESC_OBJS_INTERFACE_DEFAULT;
- }
+ try {
+ switch (element.getElementType()) {
+ case IJavaElement.INITIALIZER:
+ return PHPUiImages.DESC_MISC_PRIVATE; // 23479
+ case IJavaElement.METHOD:
+ IMember member = (IMember) element;
+ type = member.getDeclaringType();
+ isInterface = (type != null)
+ && member.getDeclaringType().isInterface();
+ return getMethodImageDescriptor(isInterface, member.getFlags());
+ case IJavaElement.FIELD:
+ IField field = (IField) element;
+ return getFieldImageDescriptor(field.getDeclaringType()
+ .isInterface(), field.getFlags());
+
+ case IJavaElement.PACKAGE_DECLARATION:
+ return PHPUiImages.DESC_OBJS_PACKDECL;
+
+ case IJavaElement.IMPORT_DECLARATION:
+ return PHPUiImages.DESC_OBJS_IMPDECL;
+
+ case IJavaElement.IMPORT_CONTAINER:
+ return PHPUiImages.DESC_OBJS_IMPCONT;
+
+ case IJavaElement.TYPE: {
+ type = (IType) element;
+ isInterface = type.isInterface();
+
+ if (useLightIcons(renderFlags)) {
+ return isInterface ? PHPUiImages.DESC_OBJS_INTERFACEALT
+ : PHPUiImages.DESC_OBJS_CLASSALT;
+ }
+ boolean isInner = type.getDeclaringType() != null;
+ return getTypeImageDescriptor(isInterface, isInner, type
+ .getFlags());
+ }
+
+ case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
+ IPackageFragmentRoot root = (IPackageFragmentRoot) element;
+ // if (root.isArchive()) {
+ // IPath attach= root.getSourceAttachmentPath();
+ // if (root.isExternal()) {
+ // if (attach == null) {
+ // return PHPUiImages.DESC_OBJS_EXTJAR;
+ // } else {
+ // return PHPUiImages.DESC_OBJS_EXTJAR_WSRC;
+ // }
+ // } else {
+ // if (attach == null) {
+ // return PHPUiImages.DESC_OBJS_JAR;
+ // } else {
+ // return PHPUiImages.DESC_OBJS_JAR_WSRC;
+ // }
+ // }
+ // } else {
+ return PHPUiImages.DESC_OBJS_PACKFRAG_ROOT;
+ // }
+ }
+
+ case IJavaElement.PACKAGE_FRAGMENT:
+ return getPackageFragmentIcon(element, renderFlags);
+
+ case IJavaElement.COMPILATION_UNIT:
+ return PHPUiImages.DESC_OBJS_CUNIT;
+
+ case IJavaElement.CLASS_FILE:
+ /*
+ * this is too expensive for large packages try { IClassFile
+ * cfile= (IClassFile)element; if (cfile.isClass()) return
+ * PHPUiImages.IMG_OBJS_CFILECLASS; return
+ * PHPUiImages.IMG_OBJS_CFILEINT; } catch(JavaModelException e) { //
+ * fall through; }
+ */
+ return PHPUiImages.DESC_OBJS_CFILE;
+
+ case IJavaElement.JAVA_PROJECT:
+ IJavaProject jp = (IJavaProject) element;
+ if (jp.getProject().isOpen()) {
+ IProject project = jp.getProject();
+ IWorkbenchAdapter adapter = (IWorkbenchAdapter) project
+ .getAdapter(IWorkbenchAdapter.class);
+ if (adapter != null) {
+ ImageDescriptor result = adapter
+ .getImageDescriptor(project);
+ if (result != null)
+ return result;
+ }
+ return DESC_OBJ_PROJECT;
+ }
+ return DESC_OBJ_PROJECT_CLOSED;
+
+ case IJavaElement.JAVA_MODEL:
+ return PHPUiImages.DESC_OBJS_JAVA_MODEL;
+ }
+
+ Assert.isTrue(false, PHPUIMessages
+ .getString("JavaImageLabelprovider.assert.wrongImage")); //$NON-NLS-1$
+ return null; //$NON-NLS-1$
+
+ } catch (JavaModelException e) {
+ if (e.isDoesNotExist())
+ return PHPUiImages.DESC_OBJS_UNKNOWN;
+ PHPeclipsePlugin.log(e);
+ return PHPUiImages.DESC_OBJS_GHOST;
+ }
+ }
+
+ protected ImageDescriptor getPackageFragmentIcon(IJavaElement element,
+ int renderFlags) throws JavaModelException {
+ // IPackageFragment fragment= (IPackageFragment)element;
+ // boolean containsJavaElements= false;
+ // try {
+ // containsJavaElements= fragment.hasChildren();
+ // } catch(JavaModelException e) {
+ // // assuming no children;
+ // }
+ // if(!containsJavaElements && (fragment.getNonJavaResources().length >
+ // 0))
+ // return PHPUiImages.DESC_OBJS_EMPTY_PACKAGE_RESOURCES;
+ // else if (!containsJavaElements)
+ // return PHPUiImages.DESC_OBJS_EMPTY_PACKAGE;
+ return PHPUiImages.DESC_OBJS_PACKAGE;
+ }
+
+ public void dispose() {
+ }
+
+ // ---- Methods to compute the adornments flags
+ // ---------------------------------
+
+ private int computeJavaAdornmentFlags(IJavaElement element, int renderFlags) {
+ int flags = 0;
+ if (showOverlayIcons(renderFlags) && element instanceof IMember) {
+ try {
+ IMember member = (IMember) element;
+
+ if (element.getElementType() == IJavaElement.METHOD
+ && ((IMethod) element).isConstructor())
+ flags |= JavaElementImageDescriptor.CONSTRUCTOR;
+
+ int modifiers = member.getFlags();
+ if (Flags.isAbstract(modifiers) && confirmAbstract(member))
+ flags |= JavaElementImageDescriptor.ABSTRACT;
+ if (Flags.isFinal(modifiers) || isInterfaceField(member))
+ flags |= JavaElementImageDescriptor.FINAL;
+ // if (Flags.isSynchronized(modifiers) &&
+ // confirmSynchronized(member))
+ // flags |= JavaElementImageDescriptor.SYNCHRONIZED;
+ if (Flags.isStatic(modifiers) || isInterfaceField(member))
+ flags |= JavaElementImageDescriptor.STATIC;
+
+ // if (member.getElementType() == IJavaElement.TYPE) {
+ // if (JavaModelUtil.hasMainMethod((IType) member)) {
+ // flags |= JavaElementImageDescriptor.RUNNABLE;
+ // }
+ // }
+ } catch (JavaModelException e) {
+ // do nothing. Can't compute runnable adornment or get flags
+ }
+ }
+ return flags;
+ }
+
+ private static boolean confirmAbstract(IMember element)
+ throws JavaModelException {
+ // never show the abstract symbol on interfaces or members in interfaces
+ if (element.getElementType() == IJavaElement.TYPE) {
+ return ((IType) element).isClass();
+ }
+ return element.getDeclaringType().isClass();
+ }
+
+ private static boolean isInterfaceField(IMember element)
+ throws JavaModelException {
+ // always show the final && static symbol on interface fields
+ if (element.getElementType() == IJavaElement.FIELD) {
+ return element.getDeclaringType().isInterface();
+ }
+ return false;
+ }
+
+ private static boolean confirmSynchronized(IJavaElement member) {
+ // Synchronized types are allowed but meaningless.
+ return member.getElementType() != IJavaElement.TYPE;
+ }
+
+ public static ImageDescriptor getMethodImageDescriptor(
+ boolean isInInterface, int flags) {
+ if (Flags.isPublic(flags) || isInInterface)
+ return PHPUiImages.DESC_MISC_PUBLIC;
+ if (Flags.isProtected(flags))
+ return PHPUiImages.DESC_MISC_PROTECTED;
+ if (Flags.isPrivate(flags))
+ return PHPUiImages.DESC_MISC_PRIVATE;
+
+ return PHPUiImages.DESC_MISC_DEFAULT;
+ }
+
+ public static ImageDescriptor getFieldImageDescriptor(
+ boolean isInInterface, int flags) {
+ if (Flags.isPublic(flags) || isInInterface)
+ return PHPUiImages.DESC_FIELD_PUBLIC;
+ if (Flags.isProtected(flags))
+ return PHPUiImages.DESC_FIELD_PROTECTED;
+ if (Flags.isPrivate(flags))
+ return PHPUiImages.DESC_FIELD_PRIVATE;
+
+ return PHPUiImages.DESC_FIELD_DEFAULT;
+ }
+
+ public static ImageDescriptor getTypeImageDescriptor(boolean isInterface,
+ boolean isInner, int flags) {
+ if (isInner) {
+ if (isInterface) {
+ return getInnerInterfaceImageDescriptor(flags);
+ } else {
+ return getInnerClassImageDescriptor(flags);
+ }
+ } else {
+ if (isInterface) {
+ return getInterfaceImageDescriptor(flags);
+ } else {
+ return getClassImageDescriptor(flags);
+ }
+ }
+ }
+
+ private static ImageDescriptor getClassImageDescriptor(int flags) {
+ if (Flags.isPublic(flags) || Flags.isProtected(flags)
+ || Flags.isPrivate(flags))
+ return PHPUiImages.DESC_OBJS_CLASS;
+ else
+ return PHPUiImages.DESC_OBJS_CLASS_DEFAULT;
+ }
+
+ private static ImageDescriptor getInnerClassImageDescriptor(int flags) {
+ if (Flags.isPublic(flags))
+ return PHPUiImages.DESC_OBJS_INNER_CLASS_PUBLIC;
+ else if (Flags.isPrivate(flags))
+ return PHPUiImages.DESC_OBJS_INNER_CLASS_PRIVATE;
+ else if (Flags.isProtected(flags))
+ return PHPUiImages.DESC_OBJS_INNER_CLASS_PROTECTED;
+ else
+ return PHPUiImages.DESC_OBJS_INNER_CLASS_DEFAULT;
+ }
+
+ private static ImageDescriptor getInterfaceImageDescriptor(int flags) {
+ if (Flags.isPublic(flags) || Flags.isProtected(flags)
+ || Flags.isPrivate(flags))
+ return PHPUiImages.DESC_OBJS_INTERFACE;
+ else
+ return PHPUiImages.DESC_OBJS_INTERFACE_DEFAULT;
+ }
+
+ private static ImageDescriptor getInnerInterfaceImageDescriptor(int flags) {
+ if (Flags.isPublic(flags))
+ return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PUBLIC;
+ else if (Flags.isPrivate(flags))
+ return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PRIVATE;
+ else if (Flags.isProtected(flags))
+ return PHPUiImages.DESC_OBJS_INNER_INTERFACE_PROTECTED;
+ else
+ return PHPUiImages.DESC_OBJS_INTERFACE_DEFAULT;
+ }
}