Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.viewers
Class ViewerDropAdapter

    java.lang.Object
      org.eclipse.swt.dnd.DropTargetAdapter
          org.eclipse.jface.viewers.ViewerDropAdapter

All Implemented Interfaces:
  DropTargetListener, EventListener, org.eclipse.swt.internal.SWTEventListener

Direct Known Subclasses:
  PluginDropAdapter

public abstract class ViewerDropAdapter
extends DropTargetAdapter

This adapter class provides generic drag-and-drop support for a viewer.

Subclasses must implement the following methods:

- `validateDrop` - identifies valid drop targets in viewer
- `performDrop` - carries out a drop into a viewer

The `setFeedbackEnabled` method can be called to turn on and off visual insertion feedback (on by default).

Field Summary
`static int` | `LOCATION_AFTER` Constant describing the position of the cursor relative to the target object.
`static int` | `LOCATION_BEFORE` Constant describing the position of the cursor relative to the target object.
`static int` | `LOCATION_NONE` Constant describing the position of the cursor relative to the target object.
`static int` | `LOCATION_ON` Constant describing the position of the cursor relative to the target object.

Constructor Summary
`protected` | `ViewerDropAdapter(Viewer viewer)` Creates a new drop adapter for the given viewer.

Method Summary
`protected int` | `determineLocation(DropTargetEvent event)` Returns the position of the given event's coordinates relative to its target.
`protected Object` | `determineTarget(DropTargetEvent event)` Returns the target item of the given drop event.
`void` | `dragEnter(DropTargetEvent event)` This implementation of `dragEnter` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`.
`void` | `dragOperationChanged(DropTargetEvent event)` This implementation of `dragOperationChanged` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`.
`void` | `dragOver(DropTargetEvent event)` This implementation of `dragOver` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`.
`void` | `drop(DropTargetEvent event)` This implementation of `drop` does nothing.
`void` | `dropAccept(DropTargetEvent event)` This implementation of `dropAccept` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`.
`protected Rectangle` | `getBounds(Item item)` Returns the bounds of the given SWT tree or table item.
`protected int` | `getCurrentLocation()` Returns a constant describing the position of the mouse relative to the target (before, on, or after the target.
`protected int` | `getCurrentOperation()` Returns the current operation.
`protected Object` | `getCurrentTarget()` Returns the target object currently under the mouse.
`boolean` | `getFeedbackEnabled()` Returns whether visible insertion feedback should be presented to the user.
`protected Object` | `getSelectedObject()` Returns the object currently selected by the viewer.
`protected Viewer` | `getViewer()` Returns the viewer to which this drop support has been added.
`protected void` | `handleException(Throwable exception, DropTargetEvent event)` Deprecated. this method should not be used. Exception handling has been removed from DropTargetAdapter methods overridden by this class. Handles any exception that occurs during callback, including rethrowing behavior. [Issue: Implementation prints stack trace and eats exception to avoid crashing VA/J. Consider conditionalizing the implementation to do one thing in VAJ and something more reasonable in other operating environments. ]
`abstract boolean` | `performDrop(Object data)` Performs any work associated with the drop.
`void` | `setFeedbackEnabled(boolean value)` Sets whether visible insertion feedback should be presented to the user.
`void` | `setScrollExpandEnabled(boolean value)` Sets whether auto scrolling and expanding should be provided during dragging.
`abstract boolean` | `validateDrop(Object target, int operation, TransferData transferType)` Validates dropping on the given object.

Methods inherited from class org.eclipse.swt.dnd.DropTargetAdapter
`dragLeave`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### LOCATION_BEFORE

    public static final int LOCATION_BEFORE

  Constant describing the position of the cursor relative to the target object. This means the mouse is positioned slightly before the target.

  See Also:
    `getCurrentLocation()`, Constant Field Values

### LOCATION_AFTER

    public static final int LOCATION_AFTER

  Constant describing the position of the cursor relative to the target object. This means the mouse is positioned slightly after the target.

  See Also:
    `getCurrentLocation()`, Constant Field Values

### LOCATION_ON

    public static final int LOCATION_ON

  Constant describing the position of the cursor relative to the target object. This means the mouse is positioned directly on the target.

  See Also:
    `getCurrentLocation()`, Constant Field Values

### LOCATION_NONE

    public static final int LOCATION_NONE

  Constant describing the position of the cursor relative to the target object. This means the mouse is not positioned over or near any valid target.

  See Also:
    `getCurrentLocation()`, Constant Field Values

Constructor Detail

### ViewerDropAdapter

    protected ViewerDropAdapter(Viewer viewer)

  Creates a new drop adapter for the given viewer.

Parameters:
  `viewer` - the viewer

Method Detail

### determineLocation

    protected int determineLocation(DropTargetEvent event)

  Returns the position of the given event's coordinates relative to its target. The position is determined to be before, after, or on the item, based on some threshold value.

  Parameters:
    `event` - the event
  Returns:
    one of the `LOCATION_*` constants defined in this class

### determineTarget

    protected Object determineTarget(DropTargetEvent event)

  Returns the target item of the given drop event.

  Parameters:
    `event` - the event
  Returns:
    The target of the drop, may be `null`.

### dragEnter

    public void dragEnter(DropTargetEvent event)

  Description copied from class: `DropTargetAdapter`
  This implementation of `dragEnter` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`. For additional information see `DropTargetListener.dragEnter`.

  Specified by:
    `dragEnter` in interface `DropTargetListener`
  Overrides:
    `dragEnter` in class `DropTargetAdapter`

### dragOperationChanged

    public void dragOperationChanged(DropTargetEvent event)

  Description copied from class: `DropTargetAdapter`
  This implementation of `dragOperationChanged` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`. For additional information see `DropTargetListener.dragOperationChanged`.

  Specified by:
    `dragOperationChanged` in interface `DropTargetListener`
  Overrides:
    `dragOperationChanged` in class `DropTargetAdapter`

### dragOver

    public void dragOver(DropTargetEvent event)

  Description copied from class: `DropTargetAdapter`
  This implementation of `dragOver` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`. For additional information see `DropTargetListener.dragOver`.

  Specified by:
    `dragOver` in interface `DropTargetListener`
  Overrides:
    `dragOver` in class `DropTargetAdapter`

### drop

    public void drop(DropTargetEvent event)

  Description copied from class: `DropTargetAdapter`
  This implementation of `drop` does nothing. For additional information see `DropTargetListener.drop`.

  Specified by:
    `drop` in interface `DropTargetListener`
  Overrides:
    `drop` in class `DropTargetAdapter`

### dropAccept

    public void dropAccept(DropTargetEvent event)

  Description copied from class: `DropTargetAdapter`
  This implementation of `dropAccept` permits the default operation defined in `event.detail`to be performed on the current data type defined in `event.currentDataType`. For additional information see `DropTargetListener.dropAccept`.

  Specified by:
    `dropAccept` in interface `DropTargetListener`
  Overrides:
    `dropAccept` in class `DropTargetAdapter`

### getBounds

    protected Rectangle getBounds(Item item)

  Returns the bounds of the given SWT tree or table item.

  Parameters:
    `item` - the SWT Item
  Returns:
    the bounds, or `null` if it is not a known type of item

### getCurrentLocation

    protected int getCurrentLocation()

  Returns a constant describing the position of the mouse relative to the target (before, on, or after the target.

  Returns:
    one of the `LOCATION_*` constants defined in this type

### getCurrentOperation

    protected int getCurrentOperation()

  Returns the current operation.

  Returns:
    a `DROP_*` constant from class `DND`
  See Also:
    `DND.DROP_COPY`, `DND.DROP_MOVE`, `DND.DROP_LINK`, `DND.DROP_NONE`

### getCurrentTarget

    protected Object getCurrentTarget()

  Returns the target object currently under the mouse.

  Returns:
    the current target object

### getFeedbackEnabled

    public boolean getFeedbackEnabled()

  Returns whether visible insertion feedback should be presented to the user.

  Typical insertion feedback is the horizontal insertion bars that appear between adjacent items while dragging.

  Returns:
    `true` if visual feedback is desired, and `false` if not

### getSelectedObject

    protected Object getSelectedObject()

  Returns the object currently selected by the viewer.

  Returns:
    the selected object, or `null` if either no object or multiple objects are selected

### getViewer

    protected Viewer getViewer()

  Returns the viewer to which this drop support has been added.

### handleException

    protected void handleException(Throwable exception,
                                   DropTargetEvent event)

  Deprecated. this method should not be used. Exception handling has been removed from DropTargetAdapter methods overridden by this class. Handles any exception that occurs during callback, including rethrowing behavior.

  [Issue: Implementation prints stack trace and eats exception to avoid crashing VA/J. Consider conditionalizing the implementation to do one thing in VAJ and something more reasonable in other operating environments. ]

  Parameters:
    `exception` - the exception
    `event` - the event

### performDrop

    public abstract boolean performDrop(Object data)

  Performs any work associated with the drop.

  Subclasses must implement this method to provide drop behavior.

  Parameters:
    `data` - the drop data
  Returns:
    `true` if the drop was successful, and `false` otherwise

### setFeedbackEnabled

    public void setFeedbackEnabled(boolean value)

  Sets whether visible insertion feedback should be presented to the user.

  Typical insertion feedback is the horizontal insertion bars that appear between adjacent items while dragging.

  Parameters:
    `value` - `true` if visual feedback is desired, and `false` if not

### setScrollExpandEnabled

    public void setScrollExpandEnabled(boolean value)

  Sets whether auto scrolling and expanding should be provided during dragging.

  Parameters:
    `value` - `true` if scrolling and expanding is desired, and `false` if not
  Since:
    2.0

### validateDrop

    public abstract boolean validateDrop(Object target,
                                         int operation,
                                         TransferData transferType)

  Validates dropping on the given object. This method is called whenever some aspect of the drop operation changes.

  Subclasses must implement this method to define which drops make sense.

  Parameters:
    `target` - the object that the mouse is currently hovering over, or `null` if the mouse is hovering over empty space
    `operation` - the current drag operation (copy, move, etc.)
    `transferType` - the current transfer type
  Returns:
    `true` if the drop is valid, and `false` otherwise

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.