Interface DragSource

  • All Superinterfaces:
    ClientConnector, Component, Connector, Serializable, Sizeable
    All Known Implementing Classes:
    DragAndDropWrapper, Table, Tree, TreeTable

    public interface DragSource
    extends Component
    DragSource is a Component that builds a Transferable for a drag and drop operation.

    In Vaadin the drag and drop operation practically starts from client side component. The client side component initially defines the data that will be present in Transferable object on server side. If the server side counterpart of the component implements this interface, terminal implementation lets it create the Transferable instance from the raw client side "seed data". This way server side implementation may translate or extend the data that will be available for DropHandler.

    Since:
    6.3
    • Method Detail

      • getTransferable

        Transferable getTransferable​(Map<String,​Object> rawVariables)
        DragSource may convert data added by client side component to meaningful values for server side developer or add other data based on it.

        For example Tree converts item identifiers to generated string keys for the client side. Vaadin developer don't and can't know anything about these generated keys, only about item identifiers. When tree node is dragged client puts that key to Transferables client side counterpart. In Tree.getTransferable(Map) the key is converted back to item identifier that the server side developer can use.

        Parameters:
        rawVariables - the data that client side initially included in Transferables client side counterpart.
        Returns:
        the Transferable instance that will be passed to DropHandler (and/or AcceptCriterion)
        Since:
        6.3