|
Lines 11-16
Link Here
|
| 11 |
package org.eclipse.ui.model; |
11 |
package org.eclipse.ui.model; |
| 12 |
|
12 |
|
| 13 |
import org.eclipse.core.runtime.IAdaptable; |
13 |
import org.eclipse.core.runtime.IAdaptable; |
|
|
14 |
import org.eclipse.core.runtime.Platform; |
| 14 |
import org.eclipse.jface.resource.ImageDescriptor; |
15 |
import org.eclipse.jface.resource.ImageDescriptor; |
| 15 |
import org.eclipse.jface.viewers.DecoratingLabelProvider; |
16 |
import org.eclipse.jface.viewers.DecoratingLabelProvider; |
| 16 |
import org.eclipse.jface.viewers.IColorProvider; |
17 |
import org.eclipse.jface.viewers.IColorProvider; |
|
Lines 43-49
Link Here
|
| 43 |
* Returns a workbench label provider that is hooked up to the decorator |
44 |
* Returns a workbench label provider that is hooked up to the decorator |
| 44 |
* mechanism. |
45 |
* mechanism. |
| 45 |
* |
46 |
* |
| 46 |
* @return a new <code>DecoratingLabelProvider</code> which wraps a <code> |
47 |
* @return a new <code>DecoratingLabelProvider</code> which wraps a |
| 47 |
* new <code>WorkbenchLabelProvider</code> |
48 |
* new <code>WorkbenchLabelProvider</code> |
| 48 |
*/ |
49 |
*/ |
| 49 |
public static ILabelProvider getDecoratingWorkbenchLabelProvider() { |
50 |
public static ILabelProvider getDecoratingWorkbenchLabelProvider() { |
|
Lines 80-88
Link Here
|
| 80 |
* Subclasses may reimplement this method to decorate an object's |
81 |
* Subclasses may reimplement this method to decorate an object's |
| 81 |
* image. |
82 |
* image. |
| 82 |
* |
83 |
* |
| 83 |
* @param input The base image to decorate. |
84 |
* @param input the base image to decorate |
| 84 |
* @param element The element used to look up decorations. |
85 |
* @param element the element used to look up decorations |
| 85 |
* @return the resuling ImageDescriptor. |
86 |
* @return the resulting image descriptor |
| 86 |
* @see org.eclipse.jface.resource.CompositeImageDescriptor |
87 |
* @see org.eclipse.jface.resource.CompositeImageDescriptor |
| 87 |
*/ |
88 |
*/ |
| 88 |
protected ImageDescriptor decorateImage(ImageDescriptor input, |
89 |
protected ImageDescriptor decorateImage(ImageDescriptor input, |
|
Lines 97-104
Link Here
|
| 97 |
* |
98 |
* |
| 98 |
* Subclasses may implement this method to decorate an object's |
99 |
* Subclasses may implement this method to decorate an object's |
| 99 |
* label. |
100 |
* label. |
| 100 |
* @param input The base text to decorate. |
101 |
* @param input the base text to decorate |
| 101 |
* @param element The element used to look up decorations. |
102 |
* @param element the element used to look up decorations |
| 102 |
* @return the resulting text |
103 |
* @return the resulting text |
| 103 |
*/ |
104 |
*/ |
| 104 |
protected String decorateText(String input, Object element) { |
105 |
protected String decorateText(String input, Object element) { |
|
Lines 114-146
Link Here
|
| 114 |
} |
115 |
} |
| 115 |
|
116 |
|
| 116 |
/** |
117 |
/** |
| 117 |
* Returns the implementation of IWorkbenchAdapter for the given |
118 |
* Returns the implementation of the specified adapter for the |
| 118 |
* object. |
119 |
* given object, or <code>null</code> if the object has no such adapter. |
| 119 |
* @param o the object to look up. |
120 |
* |
| 120 |
* @return IWorkbenchAdapter or<code>null</code> if the adapter is not defined or the |
121 |
* @param element the element |
| 121 |
* object is not adaptable. |
122 |
* @param clazz the adapter class |
|
|
123 |
* @return the adapter or <code>null</code> |
| 124 |
*/ |
| 125 |
private Object getAdapter(Object element, Class clazz) { |
| 126 |
Object adapter = null; |
| 127 |
if (element instanceof IAdaptable) |
| 128 |
adapter = (IWorkbenchAdapter) ((IAdaptable) element).getAdapter(clazz); |
| 129 |
// Use IAdapterManager.loadAdapter if the adapter is not found directly. |
| 130 |
// For rationale, see bug 97780 [Model] Make BaseWorkbenchContentProvider and LabelProvider adapter manager friendly |
| 131 |
if (adapter == null && element != null) { |
| 132 |
adapter = Platform.getAdapterManager().loadAdapter(element, clazz.getName()); |
| 133 |
} |
| 134 |
return adapter; |
| 135 |
} |
| 136 |
|
| 137 |
/** |
| 138 |
* Returns the implementation of <code>IWorkbenchAdapter</code> for the |
| 139 |
* given object, or <code>null</code> if the object has no such adapter. |
| 140 |
* |
| 141 |
* @param o the object |
| 142 |
* @return the adapter or <code>null</code> |
| 122 |
*/ |
143 |
*/ |
| 123 |
protected final IWorkbenchAdapter getAdapter(Object o) { |
144 |
protected final IWorkbenchAdapter getAdapter(Object o) { |
| 124 |
if (!(o instanceof IAdaptable)) { |
145 |
return (IWorkbenchAdapter) getAdapter(o, IWorkbenchAdapter.class); |
| 125 |
return null; |
|
|
| 126 |
} |
| 127 |
return (IWorkbenchAdapter) ((IAdaptable) o) |
| 128 |
.getAdapter(IWorkbenchAdapter.class); |
| 129 |
} |
146 |
} |
| 130 |
|
147 |
|
| 131 |
/** |
148 |
/** |
| 132 |
* Returns the implementation of IWorkbenchAdapter2 for the given |
149 |
* Returns the implementation of <code>IWorkbenchAdapter2</code> for the given |
| 133 |
* object. |
150 |
* object, or <code>null</code> if the object has no such adapter. |
| 134 |
* @param o the object to look up. |
151 |
* |
| 135 |
* @return IWorkbenchAdapter2 or<code>null</code> if the adapter is not defined or the |
152 |
* @param o the object |
| 136 |
* object is not adaptable. |
153 |
* @return the adapter or <code>null</code> |
| 137 |
*/ |
154 |
*/ |
| 138 |
protected final IWorkbenchAdapter2 getAdapter2(Object o) { |
155 |
protected final IWorkbenchAdapter2 getAdapter2(Object o) { |
| 139 |
if (!(o instanceof IAdaptable)) { |
156 |
return (IWorkbenchAdapter2) getAdapter(o, IWorkbenchAdapter2.class); |
| 140 |
return null; |
|
|
| 141 |
} |
| 142 |
return (IWorkbenchAdapter2) ((IAdaptable) o) |
| 143 |
.getAdapter(IWorkbenchAdapter2.class); |
| 144 |
} |
157 |
} |
| 145 |
|
158 |
|
| 146 |
/* (non-Javadoc) |
159 |
/* (non-Javadoc) |
|
Lines 219-230
Link Here
|
| 219 |
return font; |
232 |
return font; |
| 220 |
} |
233 |
} |
| 221 |
|
234 |
|
| 222 |
private Color getColor(Object element, boolean forground) { |
235 |
private Color getColor(Object element, boolean foreground) { |
| 223 |
IWorkbenchAdapter2 adapter = getAdapter2(element); |
236 |
IWorkbenchAdapter2 adapter = getAdapter2(element); |
| 224 |
if (adapter == null) { |
237 |
if (adapter == null) { |
| 225 |
return null; |
238 |
return null; |
| 226 |
} |
239 |
} |
| 227 |
RGB descriptor = forground ? adapter.getForeground(element) : adapter |
240 |
RGB descriptor = foreground ? adapter.getForeground(element) : adapter |
| 228 |
.getBackground(element); |
241 |
.getBackground(element); |
| 229 |
if (descriptor == null) { |
242 |
if (descriptor == null) { |
| 230 |
return null; |
243 |
return null; |