com.vaadin.client.extensions.

Class DragSourceExtensionConnector

    • Field Detail

      • STYLE_SUFFIX_DRAGSOURCE

        protected static final String STYLE_SUFFIX_DRAGSOURCE

        Style suffix for indicating that the element is a drag source.

        See Also:

        Constant Field Values

      • STYLE_SUFFIX_DRAGGED

        protected static final String STYLE_SUFFIX_DRAGGED

        Style suffix for indicating that the element is being dragged.

        See Also:

        Constant Field Values

    • Constructor Detail

      • DragSourceExtensionConnector

        public DragSourceExtensionConnector()
    • Method Detail

      • extend

        protected void extend​(ServerConnector target)

        Description copied from class: AbstractExtensionConnector

        Called when the extension is attached to its parent. This method is only called once as an extension cannot be moved from one parent to another.

        Specified by:

        extend in class AbstractExtensionConnector

        Parameters:

        target - The connector this extension extends

      • addDraggable

        protected void addDraggable​(com.google.gwt.dom.client.Element element)

        Makes the given element draggable and adds class name.

        Parameters:

        element - Element to be set draggable.

      • removeDraggable

        protected void removeDraggable​(com.google.gwt.dom.client.Element element)

        Removes draggable and class name from the given element.

        Parameters:

        element - Element to remove draggable from.

      • addDragListeners

        protected void addDragListeners​(com.google.gwt.dom.client.Element element)

        Adds dragstart and dragend event listeners to the given DOM element.

        Parameters:

        element - DOM element to attach event listeners to.

      • removeDragListeners

        protected void removeDragListeners​(com.google.gwt.dom.client.Element element)

        Removes dragstart and dragend event listeners from the given DOM element.

        Parameters:

        element - DOM element to remove event listeners from.

      • onDragStart

        protected void onDragStart​(elemental.events.Event event)

        Event handler for the dragstart event. Called when dragstart event occurs.

        Parameters:

        event - browser event to be handled

      • fixDragImageOffsetsForDesktop

        protected void fixDragImageOffsetsForDesktop​(com.google.gwt.dom.client.NativeEvent dragStartEvent,
                                                     com.google.gwt.dom.client.Element draggedElement)

        Fixes missing or offset drag image caused by using css transform: translate (or such) by using a cloned drag image element, for which the property has been cleared.

        This bug only occurs on Desktop with Safari (gets offset and clips the element for the parts that are not inside the element start & end coordinates) and Firefox (gets offset), and calling this method is NOOP for any other browser.

        This fix is not needed if custom drag image has been used.

        Parameters:

        dragStartEvent - the drag start event

        draggedElement - the element being dragged

      • fixDragImageTransformForMobile

        protected void fixDragImageTransformForMobile​(com.google.gwt.dom.client.Element draggedElement)

        Fix drag image offset for touch devices when the dragged image has been offset with css transform: translate/translate3d.

        This necessary for e.g grid rows.

        This method is NOOP for non-touch browsers.

        Parameters:

        draggedElement - the element that forms the drag image

      • createDataTransferData

        protected Map<String,​String> createDataTransferData​(com.google.gwt.dom.client.NativeEvent dragStartEvent)

        Creates the data map to be set as the DataTransfer object's data.

        Parameters:

        dragStartEvent - The drag start event

        Returns:

        The map from type to data, or null for not setting any data. Returning null will cancel the drag start.

      • sendDragStartEventToServer

        protected void sendDragStartEventToServer​(com.google.gwt.dom.client.NativeEvent dragStartEvent)

        Initiates a server RPC for the drag start event.

        This method is called only if there is a server side drag start event handler attached.

        Parameters:

        dragStartEvent - Client side dragstart event.

      • setDragImage

        protected void setDragImage​(com.google.gwt.dom.client.NativeEvent dragStartEvent)

        Sets the drag image to be displayed.

        Override this method in case you need custom drag image setting. Called from onDragStart(Event).

        Parameters:

        dragStartEvent - The drag start event.

      • onDragEnd

        protected void onDragEnd​(elemental.events.Event event)

        Event handler for the dragend event. Called when dragend event occurs.

        Parameters:

        event - browser event to be handled

      • sendDragEndEventToServer

        protected void sendDragEndEventToServer​(com.google.gwt.dom.client.NativeEvent dragEndEvent,
                                                DropEffect dropEffect)

        Initiates a server RPC for the drag end event.

        Parameters:

        dragEndEvent - Client side dragend event.

        dropEffect - Drop effect of the dragend event, extracted from DataTransfer.dropEffect parameter.

      • addDraggedStyle

        protected void addDraggedStyle​(com.google.gwt.dom.client.NativeEvent event)

        Add class name to indicate that the drag source element is being dragged. This method is called during the dragstart event.

        Parameters:

        event - The drag start event.

      • removeDraggedStyle

        protected void removeDraggedStyle​(com.google.gwt.dom.client.NativeEvent event)

        Remove class name that indicated that the drag source element was being dragged. This method is called during the dragend event.

        Parameters:

        event - The drag end element.

      • getDraggableElement

        protected com.google.gwt.dom.client.Element getDraggableElement()

        Finds the draggable element within the widget. By default, returns the topmost element.

        Override this method to make some other than the root element draggable instead.

        In case you need to make more than whan element draggable, override extend(ServerConnector) instead.

        Returns:

        the draggable element in the parent widget.

      • isNativeDragEvent

        protected boolean isNativeDragEvent​(com.google.gwt.dom.client.NativeEvent nativeEvent)

        Returns whether the given event is a native (android) drag start/end event, and not produced by the drag-drop-polyfill.

        Parameters:

        nativeEvent - the event to test

        Returns:

        true if native event, false if not (polyfill event)

      • isAndoidChrome

        protected boolean isAndoidChrome()

        Returns whether the current browser is Android Chrome.

        Returns:

        true if Android Chrome, false if not

      • getDropEffect

        protected static String getDropEffect​(com.google.gwt.dom.client.DataTransfer dataTransfer)

        Returns the dropEffect for the given data transfer.

        Parameters:

        dataTransfer - the data transfer with drop effect

        Returns:

        the currently set drop effect