### 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)*/;
+ }
+}