Class DelegatingDragAdapter

java.lang.Object
org.eclipse.jface.util.DelegatingDragAdapter
org.eclipse.gef.dnd.DelegatingDragAdapter
All Implemented Interfaces:
EventListener, DragSourceListener, SWTEventListener

public class DelegatingDragAdapter extends DelegatingDragAdapter
A DragSourceListener that maintains and delegates to a set of TransferDragSourceListeners. Each TransferDragSourceListener can then be implemented as if it were the DragSource's only DragSourceListener.

When a native Drag is started, a subset of all TransferDragSourceListeners is generated and stored in a list of active listeners. This subset is calculated by forwarding DragSourceListener.dragStart(DragSourceEvent) to every listener, and inspecting changes to the doit field. The DragSource's set of supported Transfer types ( DragSource.setTransfer(Transfer[])) is updated to reflect the Transfer types corresponding to the active listener subset.

If and when DelegatingDragAdapter.dragSetData(DragSourceEvent) is called, a single TransferDragSourceListener is chosen, and only it is allowed to set the drag data. The chosen listener is the first listener in the subset of active listeners whose Transfer supports ( Transfer.isSupportedType(TransferData)) the dataType on the DragSourceEvent.

  • Constructor Details

    • DelegatingDragAdapter

      public DelegatingDragAdapter()
  • Method Details

    • addDragSourceListener

      public void addDragSourceListener(TransferDragSourceListener listener)
      Deprecated.
      Adds the given TransferDragSourceListener. The set of Transfer types is updated to reflect the change.
      Parameters:
      listener - the new listener
    • getTransferTypes

      public Transfer[] getTransferTypes()
      Deprecated.
      call getTransfers() instead.
      Combines the Transfers from every TransferDragSourceListener.
      Returns:
      the combined Transfers
    • removeDragSourceListener

      public void removeDragSourceListener(TransferDragSourceListener listener)
      Deprecated.
      Adds the given TransferDragSourceListener. The set of Transfer types is updated to reflect the change.
      Parameters:
      listener - the listener being removed