blob: c690e8fa790e827180a580e7b4f9fe8bd653fb4c [file] [log] [blame]
- selection or objects passed to an adaptable contribution is not adapted but contains the actual
elements without any transformation. This was somewhat inconsistent in 3.0. If this is the case
what can clients do to protect against getAdapter() returning null?
- selection must be converted lazilly, and only when an action is invoked. It could be cached so that
the next action gets access to it?
- deprecate objectClass from org.eclipse.ui.popupMenus? This is essentialy the same as adaptable = true?
- does it make sense to even support adaptable=false?
- duplicate adapter registration is a problem, for example:
jdt contributes IJavaElement -> IProject, IResource
pkgfragment adapts to IProject but getAdapter will return an IFolder. For backwards compatibility
adapters aren't used to IResource instances, and instead IContributorResourceAdapter is called instead.
- Specific adapter mechanism to qualifier type of adapter needed (popup, taskList...)
- Ensure that object.getAdapter(IResource.class) and object.getAdapter(IContributorResourceAdapter.class) were
used consistently.
- performance consideration in the ObjectActionContributionManager::getCommonClasses(), performance testing
of this feature.
- tests
- tried to keep it backwards compatible, but there are no tests available.
- IResource backwards compatibility mode doesn't work in RCP applications that don't require IDE?
Must test but it seems that IContributorResourceAdapter is located in IDE.
Bugs Related:
========
Problems:
======
A -> B -a-> C -> D
C -a->E
EmbeddedPkgFragment -> IEmbeddedElement -a-> IJavaPkg -> IJavaElement
IJavaElement -a-> IResource
factory(IEmbeddedElement -> IJavaElement)
factory(IJavaElement -> IResource)
- should getAdapter(EmbeddedPkgFragment, IJavaElement) return true? (need to parse super classes/types or registered
- should getAdapter(EmbeddedPkgFragment, IResource) return true? (transitive)
Proposed Solution:
============
Given a selection, find the common classes and common adapters.