Class DropHandler

    • Constructor Detail

      • DropHandler

        public DropHandler​(Component c,
                           int acceptedActions)
        Create a handler that allows the given set of actions. If using this constructor, you will need to override isSupported(java.awt.datatransfer.DataFlavor[]) to indicate which data flavors are allowed.
        Parameters:
        c - target component
        acceptedActions - accepted actions
      • DropHandler

        public DropHandler​(Component c,
                           int acceptedActions,
                           DataFlavor[] acceptedFlavors)
        Enable handling of drops, indicating what actions and flavors are acceptable.
        Parameters:
        c - The component to receive drops
        acceptedActions - Allowed actions for drops
        acceptedFlavors - Allowed data flavors for drops
        See Also:
        isSupported(java.awt.datatransfer.DataFlavor[])
      • DropHandler

        public DropHandler​(Component c,
                           int acceptedActions,
                           DataFlavor[] acceptedFlavors,
                           DropTargetPainter painter)
        Enable handling of drops, indicating what actions and flavors are acceptable, and providing a painter for drop target feedback.
        Parameters:
        c - The component to receive drops
        acceptedActions - Allowed actions for drops
        acceptedFlavors - Allowed data flavors for drops
        painter - Painter to handle drop target feedback
        See Also:
        paintDropTarget(java.awt.dnd.DropTargetEvent, int, java.awt.Point)
    • Method Detail

      • getDropTarget

        protected DropTarget getDropTarget()
      • isActive

        public boolean isActive()
        Returns:
        Whether this drop target is active.
      • setActive

        public void setActive​(boolean active)
        Set whether this handler (and thus its drop target) will accept any drops.
        Parameters:
        active - whether this handler should accept drops.
      • getDropActionsForFlavors

        protected int getDropActionsForFlavors​(DataFlavor[] dataFlavors)
        Indicate the actions available for the given list of data flavors. Override this method if the acceptable drop actions depend on the currently available DataFlavor. The default returns the accepted actions passed into the constructor.
        Parameters:
        dataFlavors - currently available flavors
        Returns:
        currently acceptable actions.
        See Also:
        getDropAction(DropTargetEvent, int, int, int), canDrop(DropTargetEvent, int, Point)
      • getDropAction

        protected int getDropAction​(DropTargetEvent e,
                                    int currentAction,
                                    int sourceActions,
                                    int acceptedActions)
      • modifiersActive

        protected boolean modifiersActive​(int dropAction)
        Returns whether there are key modifiers active , or false if they can't be determined. We use the DragHandler hint, if available, or fall back to whether the drop action is other than the default (move).
        Parameters:
        dropAction - requested action.
        Returns:
        whether any modifiers are active.
      • acceptOrReject

        protected int acceptOrReject​(DropTargetDragEvent e)
        Accept or reject the drag represented by the given event. Returns the action determined by getDropAction(DropTargetEvent).
        Parameters:
        e - event
        Returns:
        resulting action
      • isSupported

        protected boolean isSupported​(DataFlavor[] flavors)
        Return whether any of the flavors in the given list are accepted. The list is compared against the accepted list provided in the constructor.
        Parameters:
        flavors - list of transfer flavors to check
        Returns:
        whether any of the given flavors are supported
      • paintDropTarget

        protected void paintDropTarget​(DropTargetEvent e,
                                       int action,
                                       Point location)
        Update the appearance of the target component. Normally the decoration should be painted only if the event is an instance of DropTargetDragEvent with an action that is not DragHandler.NONE. Otherwise the decoration should be removed or hidden.

        For an easy way to highlight the drop target, consider using a single instance of AbstractComponentDecorator and moving it according to the intended drop location.

        Parameters:
        e - The drop target event
        action - The action for the drop
        location - The intended drop location, or null if there is none
      • canDrop

        protected boolean canDrop​(DropTargetEvent e,
                                  int action,
                                  Point location)
        Indicate whether the given drop action is acceptable at the given location. This method is the last check performed by getDropAction(DropTargetEvent). You may override this method to refuse drops on certain areas within the drop target component. The default always returns true.
        Parameters:
        e - event
        action - requested action
        location - requested drop location
        Returns:
        whether the drop is supported