### Eclipse Workspace Patch 1.0 #P org.eclipse.ui.ide Index: src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java,v retrieving revision 1.6 diff -u -r1.6 MarkerGroupingEntry.java --- src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java 24 Mar 2008 19:13:34 -0000 1.6 +++ src/org/eclipse/ui/views/markers/internal/MarkerGroupingEntry.java 28 Jan 2009 13:27:55 -0000 @@ -11,7 +11,12 @@ package org.eclipse.ui.views.markers.internal; +import java.net.URL; + import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.internal.views.markers.MarkerSupportInternalUtilities; /** @@ -24,11 +29,13 @@ public class MarkerGroupingEntry { private static final String PRIORITY = "priority"; //$NON-NLS-1$ - + private static final String ICON = "icon"; //$NON-NLS-1$ + private MarkerGroup markerGroup; private String label; private String id; private int sortPriority; + private ImageDescriptor imageDescriptor; /** * Create a new instance of the receiver from element. @@ -39,6 +46,11 @@ id = element.getAttribute(MarkerSupportInternalUtilities.ATTRIBUTE_ID); sortPriority = Integer.valueOf(element.getAttribute(PRIORITY)) .intValue(); + String imagePath= element.getAttribute(ICON); + if(imagePath!=null){ + URL url = Platform.find(Platform.getBundle(element.getNamespace()), new Path(imagePath)); + imageDescriptor= ImageDescriptor.createFromURL(url); + } } /** @@ -107,4 +119,12 @@ return markerGroup; } + /** + * Return the marker group for the receiver. + * + * @return Imag + */ + public ImageDescriptor getImageDescriptor() { + return imageDescriptor; + } } Index: src/org/eclipse/ui/views/markers/internal/TypeMarkerGroup.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/TypeMarkerGroup.java,v retrieving revision 1.9 diff -u -r1.9 TypeMarkerGroup.java --- src/org/eclipse/ui/views/markers/internal/TypeMarkerGroup.java 24 Mar 2008 19:13:34 -0000 1.9 +++ src/org/eclipse/ui/views/markers/internal/TypeMarkerGroup.java 28 Jan 2009 13:27:55 -0000 @@ -11,8 +11,13 @@ package org.eclipse.ui.views.markers.internal; +import java.util.HashMap; +import java.util.Map; + import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; import org.eclipse.ui.internal.ide.Policy; import org.eclipse.ui.views.markers.MarkerItem; @@ -25,6 +30,7 @@ */ public class TypeMarkerGroup extends MarkerGroup { + private Map entries=new HashMap(); /** * TypeMarkerField is the MarkerField used for MarkerGroupungs * @@ -105,6 +111,28 @@ /* (non-Javadoc) * @see org.eclipse.ui.views.markers.internal.MarkerGroup#getId() */ + public MarkerGroupingEntry findGroupValue(String typeId, IMarker marker) { + TypesMarkerGroupingEntry entry=(TypesMarkerGroupingEntry) entries.get(typeId); + if(entry==null){ + String groupName = MarkerSupportRegistry.getInstance() + .getCategory(marker); + if (groupName == null) { + MarkerType mkType = MarkerTypesModel.getInstance().getType( + typeId); + groupName = mkType.getLabel(); + } + entry= new TypesMarkerGroupingEntry(groupName,null); + entry.setGroup(this); + entries.put(typeId, entry); + } + entry.setImageDescriptor( + IDEWorkbenchPlugin.getDefault(). + getMarkerImageProviderRegistry().getImageDescriptor(marker)); + return entry; + } + /* (non-Javadoc) + * @see org.eclipse.ui.views.markers.internal.MarkerGroup#getId() + */ public String getId() { return Util.TYPE_MARKER_GROUPING_ID; } @@ -116,4 +144,23 @@ return name; } + private class TypesMarkerGroupingEntry extends MarkerGroupingEntry{ + + private ImageDescriptor imageDescriptor; + + public TypesMarkerGroupingEntry(String label,ImageDescriptor imageDescriptor) { + super(label); + this.imageDescriptor=imageDescriptor; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.views.markers.internal.MarkerGroupingEntry#getImageDescriptor() + */ + public ImageDescriptor getImageDescriptor() { + return imageDescriptor; + } + void setImageDescriptor(ImageDescriptor imageDescriptor) { + this.imageDescriptor = imageDescriptor; + } + } } Index: src/org/eclipse/ui/internal/views/markers/MarkerEntry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerEntry.java,v retrieving revision 1.13 diff -u -r1.13 MarkerEntry.java --- src/org/eclipse/ui/internal/views/markers/MarkerEntry.java 8 Dec 2008 19:11:53 -0000 1.13 +++ src/org/eclipse/ui/internal/views/markers/MarkerEntry.java 28 Jan 2009 13:27:55 -0000 @@ -18,7 +18,9 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.osgi.util.NLS; +import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; import org.eclipse.ui.internal.ide.Policy; import org.eclipse.ui.views.markers.MarkerViewUtil; import org.eclipse.ui.views.markers.internal.MarkerMessages; @@ -359,4 +361,13 @@ collationKeys = null; attributeCache.clear(); } + /* (non-Javadoc) + * @see org.eclipse.ui.views.markers.MarkerItem#getImageDescriptor() + */ + public ImageDescriptor getImageDescriptor() { + if(marker!=null){ + return IDEWorkbenchPlugin.getDefault().getMarkerImageProviderRegistry().getImageDescriptor(marker); + } + return super.getImageDescriptor(); + } } Index: src/org/eclipse/ui/internal/views/markers/MarkerSeverityAndDescriptionField.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerSeverityAndDescriptionField.java,v retrieving revision 1.4 diff -u -r1.4 MarkerSeverityAndDescriptionField.java --- src/org/eclipse/ui/internal/views/markers/MarkerSeverityAndDescriptionField.java 11 Mar 2008 15:29:23 -0000 1.4 +++ src/org/eclipse/ui/internal/views/markers/MarkerSeverityAndDescriptionField.java 28 Jan 2009 13:27:55 -0000 @@ -52,7 +52,7 @@ * @param item * @return Image or null */ - private Image getImage(MarkerItem item) { + Image getImage(MarkerItem item) { int severity = -1; if (item.getMarker() == null) Index: src/org/eclipse/ui/internal/views/markers/CachedMarkerBuilder.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/CachedMarkerBuilder.java,v retrieving revision 1.23 diff -u -r1.23 CachedMarkerBuilder.java --- src/org/eclipse/ui/internal/views/markers/CachedMarkerBuilder.java 8 Dec 2008 19:11:53 -0000 1.23 +++ src/org/eclipse/ui/internal/views/markers/CachedMarkerBuilder.java 28 Jan 2009 13:27:54 -0000 @@ -39,6 +39,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.ui.IMemento; @@ -275,6 +276,17 @@ if (previous != null) { // Are we at a category boundary? if (sorter.compareCategory(previous, elements[i]) != 0) { + MarkerEntry entry=markers.elementAt(categoryStart); + IMarker marker=entry.getMarker(); + ImageDescriptor imgDesc=null; + if(marker!=null){ + try{ + String typeID=marker.getType(); + imgDesc=getCategoryGroup().findGroupValue(typeID, marker).getImageDescriptor(); + }catch(CoreException e){ + Policy.handle(e); + } + } categories .add(new MarkerCategory( this, @@ -284,7 +296,7 @@ .getMarkerField() .getValue( markers - .elementAt(categoryStart)))); + .elementAt(categoryStart)),imgDesc)); categoryStart = i; } } @@ -293,9 +305,19 @@ } if (end >= categoryStart) { + MarkerEntry entry=markers.elementAt(categoryStart); + IMarker marker=entry.getMarker(); + ImageDescriptor imgDesc=null; + if(marker!=null){ + try{ + String typeID=marker.getType(); + imgDesc=getCategoryGroup().findGroupValue(typeID, marker).getImageDescriptor(); + }catch(CoreException e){ + Policy.handle(e); + } + } categories.add(new MarkerCategory(this, categoryStart, end, - getCategoryGroup().getMarkerField().getValue( - markers.elementAt(categoryStart)))); + getCategoryGroup().getMarkerField().getValue(entry),imgDesc)); } MarkerCategory[] nodes = new MarkerCategory[categories.size()]; Index: src/org/eclipse/ui/internal/views/markers/MarkerCategory.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerCategory.java,v retrieving revision 1.4 diff -u -r1.4 MarkerCategory.java --- src/org/eclipse/ui/internal/views/markers/MarkerCategory.java 24 Mar 2008 19:13:33 -0000 1.4 +++ src/org/eclipse/ui/internal/views/markers/MarkerCategory.java 28 Jan 2009 13:27:55 -0000 @@ -12,6 +12,7 @@ package org.eclipse.ui.internal.views.markers; import org.eclipse.core.resources.IMarker; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.osgi.util.NLS; import org.eclipse.ui.views.markers.MarkerItem; import org.eclipse.ui.views.markers.internal.MarkerMessages; @@ -29,6 +30,8 @@ private CachedMarkerBuilder cachedMarkerBuilder; private int severity = -1; + + private ImageDescriptor imageDescriptor; /** * Create a new instance of the receiver that has the markers between @@ -46,7 +49,24 @@ end = endIndex; name = categoryName; } + /** + * Create a new instance of the receiver that has the markers between + * startIndex and endIndex showing. + * + * @param cachedMarkerBuilder + * @param startIndex + * @param endIndex + * @param imageDescriptor + * the builder used to generate the children lazily. + * + */ + MarkerCategory(CachedMarkerBuilder cachedMarkerBuilder, int startIndex, + int endIndex, String categoryName,ImageDescriptor imageDescriptor) { + this(cachedMarkerBuilder, startIndex, endIndex, categoryName); + this.imageDescriptor=imageDescriptor; + } + /* (non-Javadoc) * @see org.eclipse.ui.internal.views.markers.MarkerSupportItem#getChildren() */ @@ -154,4 +174,10 @@ return false; } + /* (non-Javadoc) + * @see org.eclipse.ui.internal.views.markers.MarkerItem#getImageDescriptor() + */ + public ImageDescriptor getImageDescriptor() { + return imageDescriptor; + } } Index: src/org/eclipse/ui/views/markers/MarkerItem.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/MarkerItem.java,v retrieving revision 1.6 diff -u -r1.6 MarkerItem.java --- src/org/eclipse/ui/views/markers/MarkerItem.java 2 May 2008 19:37:07 -0000 1.6 +++ src/org/eclipse/ui/views/markers/MarkerItem.java 28 Jan 2009 13:27:55 -0000 @@ -13,6 +13,7 @@ import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.internal.views.markers.MarkerSupportInternalUtilities; /** @@ -101,4 +102,13 @@ public IMarker getMarker() { return null; } + + /** + * Return the image for receiver's marker. + * + * @return ImageDescriptor + */ + public ImageDescriptor getImageDescriptor() { + return null; + } } Index: plugin.xml =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/plugin.xml,v retrieving revision 1.283 diff -u -r1.283 plugin.xml --- plugin.xml 19 Jan 2009 14:35:31 -0000 1.283 +++ plugin.xml 28 Jan 2009 13:27:52 -0000 @@ -1419,11 +1419,13 @@ - + - + The Marker Support extension point defines extensions to the workbench tools that show markers such as the problems, bookmarks and tasks views. + + + + + @@ -34,9 +39,9 @@ - + - + @@ -143,9 +148,9 @@ The id of a marker that is enabled by default. - + - + @@ -166,9 +171,9 @@ The label is the human readable name that will be presented to the user. - + - + @@ -186,9 +191,9 @@ The id of the markerType - + - + @@ -213,9 +218,9 @@ The id of the markerType this grouping applies to. - + - + @@ -259,9 +264,9 @@ The label is the human readable String that will be used to create the entry in the Group By-> menu for this marker grouping. - + - + @@ -328,9 +333,9 @@ The translable label of the entry. - + - + @@ -340,6 +345,16 @@ + + + + Icon to display for group entry + + + + + + @@ -370,9 +385,9 @@ The name attribute is the human readable name of the content generator. - + - + @@ -404,9 +419,9 @@ The class is the type used to instantiate the field. - + - + @@ -421,9 +436,9 @@ The icon is the plug-in relative path for the icon. - + - + @@ -431,9 +446,9 @@ The filterClass is the class that does filtering on this field when enabled. If this is not specified no filtering will occur based on this field. - + - + @@ -441,9 +456,9 @@ The filterConfigurationClass is an optional area that is used for configuration of the field in a filter dialog. - + - + @@ -461,9 +476,9 @@ The id is the id of the markerField being referred to. - + - + @@ -495,9 +510,9 @@ The human readable name of the grouping. - + - + @@ -505,9 +520,9 @@ The values is a class that specifies the values that are to be set in the filterClass of a markerField for the enclosing markerContentGenerator. - + - + @@ -568,27 +583,27 @@ The id of the generator being extended - + - + - + - + 3.2 - + - + The following is an example of a problem filter definition in the marker support. This example only shows java warnings on the selected element and it's children and filters out those with the String NON-NLS <p> @@ -613,18 +628,18 @@ - + - + The severity markerGrouping is provided in the org.eclipse.ui.ide plug-in by default. - + - + Copyright (c) 2005, 2007 IBM Corporation and others.<br> All rights reserved. This program and the accompanying materials are made Index: src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java,v retrieving revision 1.17 diff -u -r1.17 MarkerImageProviderRegistry.java --- src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java 24 Mar 2008 19:13:35 -0000 1.17 +++ src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java 28 Jan 2009 13:27:53 -0000 @@ -11,7 +11,14 @@ package org.eclipse.ui.internal.ide.registry; import java.net.URL; -import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.TreeMap; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; @@ -22,6 +29,8 @@ import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; import org.eclipse.ui.internal.ide.IMarkerImageProvider; import org.eclipse.ui.internal.ide.Policy; +import org.eclipse.ui.views.markers.internal.MarkerType; +import org.eclipse.ui.views.markers.internal.MarkerTypesModel; import org.osgi.framework.Bundle; /** @@ -37,11 +46,13 @@ private static final String ATT_ID = "id";//$NON-NLS-1$ - private static final String MARKER_ATT_KEY = "org.eclipse.ui.internal.registry.MarkerImageProviderRegistry";//$NON-NLS-1$ + //private static final String MARKER_ATT_KEY = "org.eclipse.ui.internal.registry.MarkerImageProviderRegistry";//$NON-NLS-1$ private static final String TAG_PROVIDER = "imageprovider";//$NON-NLS-1$ - private ArrayList descriptors = new ArrayList(); + private SortedMap descriptors = new TreeMap(); + + private Map typesMap=new HashMap(); class Descriptor { String id; @@ -59,8 +70,9 @@ Bundle pluginBundle; IMarkerImageProvider provider; + } - + /** * Initialize this new MarkerImageProviderRegistry. */ @@ -68,7 +80,7 @@ class MarkerImageReader extends IDERegistryReader { protected boolean readElement(IConfigurationElement element) { if (element.getName().equals(TAG_PROVIDER)) { - addProvider(element); + addProvider(element,false); return true; } @@ -90,6 +102,9 @@ * and add it to the list of providers. */ public void addProvider(IConfigurationElement element) { + addProvider(element,true); + } + private void addProvider(IConfigurationElement element,boolean updateTypesMap) { Descriptor desc = new Descriptor(); desc.element = element; desc.pluginBundle = Platform.getBundle(element.getNamespace()); @@ -105,55 +120,103 @@ desc.element = null; desc.pluginBundle = null; } - descriptors.add(desc); + descriptors.put(desc.markerType,desc); + typesMap.put(desc.markerType, desc); + if(updateTypesMap){ + //only check marker types not declaring an imageprovider extension + Set keys=new HashSet(typesMap.keySet()); + keys.removeAll(descriptors.keySet()); + Iterator iterator =keys.iterator(); + //check to see if the addition is a better alternative for another marker type + while (iterator.hasNext()) { + String mkId=(String) iterator.next(); + MarkerType type=MarkerTypesModel.getInstance().getType(mkId); + MarkerType otherType=MarkerTypesModel.getInstance().getType(desc.markerType); + //check super + if(type.isSubtypeOf(otherType)){ + Descriptor oldDesc=(Descriptor) typesMap.get(mkId); + MarkerType oldSuper=MarkerTypesModel.getInstance().getType(oldDesc.markerType); + //check if the new one is closer to the type in hierarchy than the old one + if(otherType.isSubtypeOf(oldSuper)){ + typesMap.put(mkId, desc); + } + } + } + } } /** * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(Object) */ public ImageDescriptor getImageDescriptor(IMarker marker) { - int size = descriptors.size(); - for (int i = 0; i < size; i++) { - Descriptor desc = (Descriptor) descriptors.get(i); - try { - if (marker.isSubtypeOf(desc.markerType)) { - if (desc.className != null) { - if (desc.pluginBundle.getState()==Bundle.ACTIVE) { - //-- Get the image descriptor from the provider. - //-- Save the image descriptor url as a persistable property, so a - //image descriptor can be created without activating the plugin next - //time the workbench is started. - if (desc.provider == null) { - desc.provider = (IMarkerImageProvider) IDEWorkbenchPlugin - .createExtension(desc.element, - ATT_PROVIDER_CLASS); - } - String path = desc.provider.getImagePath(marker); - if (path != desc.imagePath) { - desc.imagePath = path; - desc.imageDescriptor = getImageDescriptor(desc); - return desc.imageDescriptor; - } - return desc.imageDescriptor; - } else { - if (desc.imageDescriptor == null) { - //Create a image descriptor to be used until the plugin gets activated. - desc.imagePath = (String) marker - .getAttribute(MARKER_ATT_KEY); - desc.imageDescriptor = getImageDescriptor(desc); - } - return desc.imageDescriptor; - } - } else if (desc.imageDescriptor != null) { - return desc.imageDescriptor; - } - } - } catch (CoreException e) { - Policy.handle(e); - return null; - } - } - return null; + String typeId=null; + try { + typeId=marker.getType(); + }catch (CoreException e1) { + Policy.handle(e1); + return null; + } + Descriptor descriptor=(Descriptor) typesMap.get(typeId); + if (descriptor==null) { + MarkerType markerType=MarkerTypesModel.getInstance().getType(typeId); + LinkedList queue =new LinkedList(); + queue.addLast(markerType); + while (!queue.isEmpty()) { + MarkerType type = (MarkerType) queue.removeFirst(); + descriptor=(Descriptor) descriptors.get(type.getId()); + if(descriptor!=null){ + typesMap.put(typeId, descriptor); + break; + } + MarkerType[] subTypes=type.getSupertypes(); + //TODO: Decide whether to sort or keep in order in which they were declared + /*Arrays.sort(subTypes,new Comparator(){ + public int compare(Object o1, Object o2) { + return ((MarkerType)o1).getId().compareTo(((MarkerType)o2).getId()); + } + });*/ + for (int j = 0; j < subTypes.length; j++) { + queue.addLast(subTypes[j]); + } + } + } + if(descriptor!=null){ + try { + if (descriptor.className != null) { + //TODO: Decide whether to activate contributing bundle or not + //Note: plugin activation should be expected by the client + //if a class is specified.The markers image may be expected to be different based on attributes. + /*String persistedPath=(String) marker.getAttribute(MARKER_ATT_KEY); + if (descriptor.pluginBundle.getState()==Bundle.ACTIVE|| + (persistedPath==null && descriptor.imageDescriptor==null)) {*/ + if (descriptor.provider == null) { + descriptor.provider = (IMarkerImageProvider) IDEWorkbenchPlugin + .createExtension(descriptor.element, + ATT_PROVIDER_CLASS); + } + String path = descriptor.provider.getImagePath(marker); + + //marker.setAttribute(MARKER_ATT_KEY, path); + + if (path != descriptor.imagePath) { + descriptor.imagePath = path; + descriptor.imageDescriptor = getImageDescriptor(descriptor); + return descriptor.imageDescriptor; + } + /*} else if(persistedPath!=null){ + descriptor.imagePath = persistedPath; + descriptor.imageDescriptor = getImageDescriptor(descriptor); + } */ + return descriptor.imageDescriptor; + + } + return descriptor.imageDescriptor; + } catch (CoreException e) { + Policy.handle(e); + return null; + } + } + return null; } /** Index: src/org/eclipse/ui/internal/views/markers/MarkerIconSeverityAndDescriptionField.java =================================================================== RCS file: src/org/eclipse/ui/internal/views/markers/MarkerIconSeverityAndDescriptionField.java diff -N src/org/eclipse/ui/internal/views/markers/MarkerIconSeverityAndDescriptionField.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/ui/internal/views/markers/MarkerIconSeverityAndDescriptionField.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + ******************************************************************************/ + +package org.eclipse.ui.internal.views.markers; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.eclipse.ui.views.markers.MarkerItem; + +/** + * MarkerIconSeverityAndDescriptionField . + * + * @since 3.5 + * + */ +public class MarkerIconSeverityAndDescriptionField extends MarkerSeverityAndDescriptionField { + + /** + * Create a new instance of the receiver. + */ + + public MarkerIconSeverityAndDescriptionField() { + super(); + } + + + /** + * Return the image for item. + * + * @param item + * @return Image or null + */ + Image getImage(MarkerItem item) { + ImageDescriptor descriptor=item.getImageDescriptor(); + if(descriptor!=null){ + return getImageManager().createImage(descriptor); + } + return null/*super.getImage(item)*/; + } +}