Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 22564 Details for
Bug 97780
[Model] Make BaseWorkbenchContentProvider and LabelProvider adapter manager friendly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Modified patch
97780.patch (text/plain), 7.57 KB, created by
Nick Edgar
on 2005-06-07 16:25:58 EDT
(
hide
)
Description:
Modified patch
Filename:
MIME Type:
Creator:
Nick Edgar
Created:
2005-06-07 16:25:58 EDT
Size:
7.57 KB
patch
obsolete
>Index: BaseWorkbenchContentProvider.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/model/BaseWorkbenchContentProvider.java,v >retrieving revision 1.5 >diff -u -r1.5 BaseWorkbenchContentProvider.java >--- BaseWorkbenchContentProvider.java 25 Feb 2005 20:52:37 -0000 1.5 >+++ BaseWorkbenchContentProvider.java 7 Jun 2005 20:24:28 -0000 >@@ -11,6 +11,7 @@ > package org.eclipse.ui.model; > > import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.Platform; > import org.eclipse.jface.viewers.ITreeContentProvider; > import org.eclipse.jface.viewers.Viewer; > >@@ -42,26 +43,27 @@ > } > > /** >- * Returns the implementation of IWorkbenchAdapter for the given >- * object. Returns null if the adapter is not defined or the >- * object is not adaptable. >- * <p> >- * </p> >+ * Returns the implementation of <code>IWorkbenchAdapter</code> for the given >+ * object. Returns <code>null</code> if the adapter is not defined for the >+ * object. > * > * @param element the element >- * @return the corresponding workbench adapter object >+ * @return the corresponding workbench adapter object, or <code>null</code> > */ > protected IWorkbenchAdapter getAdapter(Object element) { >- if (!(element instanceof IAdaptable)) { >- return null; >- } >- return (IWorkbenchAdapter) ((IAdaptable) element) >- .getAdapter(IWorkbenchAdapter.class); >- } >- >- /* (non-Javadoc) >- * Method declared on ITreeContentProvider. >- */ >+ IWorkbenchAdapter adapter = null; >+ if (element instanceof IAdaptable) >+ adapter = (IWorkbenchAdapter) ((IAdaptable) element) >+ .getAdapter(IWorkbenchAdapter.class); >+ if (adapter == null && element != null) >+ adapter = (IWorkbenchAdapter) Platform.getAdapterManager() >+ .loadAdapter(element, IWorkbenchAdapter.class.getName()); >+ return adapter; >+ } >+ >+ /* >+ * (non-Javadoc) Method declared on ITreeContentProvider. >+ */ > public Object[] getChildren(Object element) { > IWorkbenchAdapter adapter = getAdapter(element); > if (adapter != null) { >Index: WorkbenchLabelProvider.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/model/WorkbenchLabelProvider.java,v >retrieving revision 1.18 >diff -u -r1.18 WorkbenchLabelProvider.java >--- WorkbenchLabelProvider.java 29 Apr 2005 16:37:01 -0000 1.18 >+++ WorkbenchLabelProvider.java 7 Jun 2005 20:24:28 -0000 >@@ -11,6 +11,7 @@ > package org.eclipse.ui.model; > > import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.core.runtime.Platform; > import org.eclipse.jface.resource.ImageDescriptor; > import org.eclipse.jface.viewers.DecoratingLabelProvider; > import org.eclipse.jface.viewers.IColorProvider; >@@ -43,7 +44,7 @@ > * Returns a workbench label provider that is hooked up to the decorator > * mechanism. > * >- * @return a new <code>DecoratingLabelProvider</code> which wraps a <code> >+ * @return a new <code>DecoratingLabelProvider</code> which wraps a > * new <code>WorkbenchLabelProvider</code> > */ > public static ILabelProvider getDecoratingWorkbenchLabelProvider() { >@@ -80,9 +81,9 @@ > * Subclasses may reimplement this method to decorate an object's > * image. > * >- * @param input The base image to decorate. >- * @param element The element used to look up decorations. >- * @return the resuling ImageDescriptor. >+ * @param input the base image to decorate >+ * @param element the element used to look up decorations >+ * @return the resulting image descriptor > * @see org.eclipse.jface.resource.CompositeImageDescriptor > */ > protected ImageDescriptor decorateImage(ImageDescriptor input, >@@ -97,8 +98,8 @@ > * > * Subclasses may implement this method to decorate an object's > * label. >- * @param input The base text to decorate. >- * @param element The element used to look up decorations. >+ * @param input the base text to decorate >+ * @param element the element used to look up decorations > * @return the resulting text > */ > protected String decorateText(String input, Object element) { >@@ -114,33 +115,45 @@ > } > > /** >- * Returns the implementation of IWorkbenchAdapter for the given >- * object. >- * @param o the object to look up. >- * @return IWorkbenchAdapter or<code>null</code> if the adapter is not defined or the >- * object is not adaptable. >+ * Returns the implementation of the specified adapter for the >+ * given object, or <code>null</code> if the object has no such adapter. >+ * >+ * @param element the element >+ * @param clazz the adapter class >+ * @return the adapter or <code>null</code> >+ */ >+ private Object getAdapter(Object element, Class clazz) { >+ Object adapter = null; >+ if (element instanceof IAdaptable) >+ adapter = (IWorkbenchAdapter) ((IAdaptable) element).getAdapter(clazz); >+ // Use IAdapterManager.loadAdapter if the adapter is not found directly. >+ // For rationale, see bug 97780 [Model] Make BaseWorkbenchContentProvider and LabelProvider adapter manager friendly >+ if (adapter == null && element != null) { >+ adapter = Platform.getAdapterManager().loadAdapter(element, clazz.getName()); >+ } >+ return adapter; >+ } >+ >+ /** >+ * Returns the implementation of <code>IWorkbenchAdapter</code> for the >+ * given object, or <code>null</code> if the object has no such adapter. >+ * >+ * @param o the object >+ * @return the adapter or <code>null</code> > */ > protected final IWorkbenchAdapter getAdapter(Object o) { >- if (!(o instanceof IAdaptable)) { >- return null; >- } >- return (IWorkbenchAdapter) ((IAdaptable) o) >- .getAdapter(IWorkbenchAdapter.class); >+ return (IWorkbenchAdapter) getAdapter(o, IWorkbenchAdapter.class); > } > > /** >- * Returns the implementation of IWorkbenchAdapter2 for the given >- * object. >- * @param o the object to look up. >- * @return IWorkbenchAdapter2 or<code>null</code> if the adapter is not defined or the >- * object is not adaptable. >+ * Returns the implementation of <code>IWorkbenchAdapter2</code> for the given >+ * object, or <code>null</code> if the object has no such adapter. >+ * >+ * @param o the object >+ * @return the adapter or <code>null</code> > */ > protected final IWorkbenchAdapter2 getAdapter2(Object o) { >- if (!(o instanceof IAdaptable)) { >- return null; >- } >- return (IWorkbenchAdapter2) ((IAdaptable) o) >- .getAdapter(IWorkbenchAdapter2.class); >+ return (IWorkbenchAdapter2) getAdapter(o, IWorkbenchAdapter2.class); > } > > /* (non-Javadoc) >@@ -219,12 +232,12 @@ > return font; > } > >- private Color getColor(Object element, boolean forground) { >+ private Color getColor(Object element, boolean foreground) { > IWorkbenchAdapter2 adapter = getAdapter2(element); > if (adapter == null) { > return null; > } >- RGB descriptor = forground ? adapter.getForeground(element) : adapter >+ RGB descriptor = foreground ? adapter.getForeground(element) : adapter > .getBackground(element); > if (descriptor == null) { > return null;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 97780
:
22119
| 22564