Klasse DragHandler

java.lang.Object
com.sun.jna.platform.dnd.DragHandler
Alle implementierten Schnittstellen:
DragGestureListener, DragSourceListener, DragSourceMotionListener, EventListener

public abstract class DragHandler extends Object implements DragSourceListener, DragSourceMotionListener, DragGestureListener
Provides simplified drag handling for a component. Usage:

 int actions = DnDConstants.MOVE_OR_COPY;
 Component component = ...;
 DragHandler handler = new DragHandler(component, actions);
 
  • Supports painting an arbitrary Icon with transparency to represent the item being dragged (restricted to the Window of the drag source if the platform doesn't support drag images).
  • Disallow starting a drag if the user requests an unsupported action.
  • Adjusts the cursor on drags with no modifier for which the default action is disallowed but where one or more non-default actions are allowed, e.g. a drag (with no modifiers) to a target which supports "link" should change the cursor to "link" (prior to 1.6, the JRE behavior is to display a "not allowed" cursor, even though the action actually depends on how the drop target responds). The bug is fixed in java 1.6.
  • Disallow drops to targets if the non-default (user-requested) action is not supported by the target, e.g. the user requests a "copy" when the target only supports "move". This is generally the responsibility of the drop handler, which decides whether or not to accept a drag. The DragHandler provides static modifier state information since the drop handler doesn't have access to it.
NOTE: Fundamentally, the active action is determined by the drop handler in DropTargetDragEvent.acceptDrag(int), but often client code simply relies on DropTargetDragEvent.getDropAction().
  • Felddetails

  • Konstruktordetails

    • DragHandler

      protected DragHandler(Component dragSource, int actions)
      Enable drags from the given component, supporting the actions in the given action mask.
      Parameter:
      dragSource - source of the drag.
      actions - actions which should be supported.
  • Methodendetails

    • getModifiers

      static int getModifiers()
      Used to communicate modifier state to DropHandler. Note that this field will only be accurate when a DragHandler in the same VM started the drag. Otherwise, UNKNOWN_MODIFIERS will be returned.
      Gibt zurück:
      Current drag modifiers.
    • getTransferable

      public static Transferable getTransferable(DropTargetEvent e)
      Used to communicate the current Transferable during a drag, if available. Work around absence of access to the data when dragging pre-1.5.
      Parameter:
      e - event
      Gibt zurück:
      Transferable representation of the item being dragged.
    • canDrag

      protected boolean canDrag(DragGestureEvent e)
      Override to control whether a drag is started. The default implementation disallows the drag if the user is applying modifiers and the user-requested action is not supported.
      Parameter:
      e - event
      Gibt zurück:
      Whether to allow a drag
    • setModifiers

      protected void setModifiers(int mods)
      Update the modifiers hint.
      Parameter:
      mods - Current modifiers
    • getTransferable

      protected abstract Transferable getTransferable(DragGestureEvent e)
      Override to provide an appropriate Transferable representing the data being dragged.
      Parameter:
      e - event
      Gibt zurück:
      Transferable representation of item being dragged.
    • getDragIcon

      protected Icon getDragIcon(DragGestureEvent e, Point srcOffset)
      Override this to provide a custom image. The Icon returned by this method by default is null, which results in no drag image.
      Parameter:
      e - event
      srcOffset - set this to be the offset from the drag source component's upper left corner to the image's upper left corner. For example, when dragging a row from a list, the offset would be the row's bounding rectangle's (x,y) coordinate.

      The default value is (0,0), so if unchanged, the image is will use the same origin as the drag source component.

      Gibt zurück:
      drag icon (defaults to none)
    • dragStarted

      protected void dragStarted(DragGestureEvent e)
      Override to perform any decoration of the target at the start of a drag, if desired.
      Parameter:
      e - event
    • dragGestureRecognized

      public void dragGestureRecognized(DragGestureEvent e)
      Called when a user drag gesture is recognized. This method is responsible for initiating the drag operation.
      Angegeben von:
      dragGestureRecognized in Schnittstelle DragGestureListener
      Parameter:
      e - event
    • scaleDragIcon

      protected Icon scaleDragIcon(Icon icon, Point imageOffset)
      Change the size of the given drag icon, if appropriate. When using a differently-sized drag icon, we also need to adjust the cursor offset within the icon.
      Parameter:
      icon - Icon to be scaled.
      imageOffset - Modified to account for the new icon's size.
      Gibt zurück:
      Scaled Icon, or the original if there was no change.
    • createDragImage

      protected Image createDragImage(GraphicsConfiguration gc, Icon icon)
      Create an image from the given icon. The image is provided to the native handler if drag images are supported natively.
      Parameter:
      gc - current graphics configuration.
      icon - Icon on which to base the drag image.
      Gibt zurück:
      image based on the given icon.
    • getCursorForAction

      protected Cursor getCursorForAction(int actualAction)
    • getAcceptableDropAction

      protected int getAcceptableDropAction(int targetActions)
      Returns the first available action supported by source and target.
      Parameter:
      targetActions - current actions requested
      Gibt zurück:
      subset of actions supported based on the input
    • getDropAction

      protected int getDropAction(DragSourceEvent ev)
      Get the currently requested drop action.
      Parameter:
      ev - event
      Gibt zurück:
      effective drop action
    • adjustDropAction

      protected int adjustDropAction(DragSourceEvent ev)
      Pick a different drop action if the target doesn't support the current one and there are no modifiers.
      Parameter:
      ev - event
      Gibt zurück:
      effective drop action
    • updateCursor

      protected void updateCursor(DragSourceEvent ev)
      Hook to update the cursor on various DragSourceEvent updates.
      Parameter:
      ev - event
    • actionString

      static String actionString(int action)
    • dragDropEnd

      public void dragDropEnd(DragSourceDropEvent e)
      Angegeben von:
      dragDropEnd in Schnittstelle DragSourceListener
    • dragEnter

      public void dragEnter(DragSourceDragEvent e)
      Angegeben von:
      dragEnter in Schnittstelle DragSourceListener
    • dragMouseMoved

      public void dragMouseMoved(DragSourceDragEvent e)
      Angegeben von:
      dragMouseMoved in Schnittstelle DragSourceMotionListener
    • dragOver

      public void dragOver(DragSourceDragEvent e)
      Angegeben von:
      dragOver in Schnittstelle DragSourceListener
    • dragExit

      public void dragExit(DragSourceEvent e)
      Angegeben von:
      dragExit in Schnittstelle DragSourceListener
    • dropActionChanged

      public void dropActionChanged(DragSourceDragEvent e)
      Angegeben von:
      dropActionChanged in Schnittstelle DragSourceListener