Used by the
org.eclipse.ui.navigator.navigatorContent/navigatorContent/commonDropAdapter
extension point to carry out pluggable drop operations.
Each
CommonDropAdapterAssistant is contained by single content
extension. The opportunity for each assistant to handle the drop operation is
determined by the possibleChildren expression of the
org.eclipse.ui.navigator.navigatorContent/navigatorContent extension;
whenever every element in the drag set matches the possibleChildren
expression of an extension, it is eligible to handle the drop operation. This
initial set is further culled using the possibleDropTargets
expression of the commonDropAdapter using the current drop target.
If drag operations originate outside of Eclipse, then the set of eligible
drop adapters is determined based on the drop target (using the
possibleDropTargets expression). Each assistant can then indicate
whether
#isSupportedType(TransferData).
Whenever a match is found, the assistant will be given an opportunity to
first
#validateDrop(Object,int,TransferData), and then if the
assistant returns true, the assist must
#handleDrop(CommonDropAdapter,DropTargetEvent,Object). If
multiple assistants match the drop target, then the potential assistants are
ordered based on priority and their override relationships and given an
opportunity to validate the drop operation in turn. The first one to validate
will have the opportunty to carry out the drop.
Clients may handle DND operations that begin and end in the current viewer by
overriding the following methods:
-
#validateDrop(Object,int,TransferData): Indicate whether this
assistant can handle a drop onto the current viewer.
-
#handleDrop(CommonDropAdapter,DropTargetEvent,Object): Handle
the drop operation onto the current viewer.
If a user originates a drag operation to another viewer that cannot handle
one of the available drag transfer types, drop assistants may handle the drop
operation for the target viewer. Clients must override :
-
#validatePluginTransferDrop(IStructuredSelection,Object):
Indicate whether this assistant can handle the drop onto another viewer.
-
#handlePluginTransferDrop(IStructuredSelection,Object): Handle
the drop operation onto the other viewer.
Clients may implement this interface.