com.smartgwt.client.widgets.grid.events

## Interface HasRecordDropHandlers

- All Superinterfaces:
    com.google.gwt.event.shared.HasHandlers
  All Known Implementing Classes:
    CalendarView, CubeGrid, DateGrid, EditTree, ListGrid, ListPalette, Menu, MenuPalette, PickListMenu, RecordEditor, SelectionTreeMenu, TableView, TreeGrid, TreePalette

      public interface HasRecordDropHandlers
      extends com.google.gwt.event.shared.HasHandlers

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.gwt.event.shared.HandlerRegistration` | `addRecordDropHandler(RecordDropHandler handler)` Process a drop of one or more records on a ListGrid record.

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Method Detail

    - #### addRecordDropHandler

          com.google.gwt.event.shared.HandlerRegistration addRecordDropHandler(RecordDropHandler handler)

      Process a drop of one or more records on a ListGrid record.

      This method can be overridden to provide custom drop behaviors, and is a more appropriate override point than the lower level `Canvas.drop()` handler.

      If this is a self-drop, records are simply reordered.

      For a drop from another widget, `transferDragData()` is called, which depending on the `dragDataAction` specified on the source widget, may either remove the source records from the original list (`dragDataAction:"move"`) or just provide a copy to this list (`dragDataAction:"copy"`).

      If this grid is databound, the new records will be added to the dataset by calling `DataSource.addData()`. Further, if the new records were dragged from another databound component, and `addDropValues` is true, `getDropValues` will be called for every item being dropped.

      For multi-record drops, Queuing is automatically used to combine all DSRequests into a single HTTP Request (see QuickStart Guide, Server Framework chapter). This allows the server to persist all changes caused by the drop in a single transaction (and this is automatically done when using the built-in server DataSources with Power Edition and above).

      Note that reordering records has no effect on a databound grid.

      The newly dropped data is then selected automatically.

      If these default persistence behaviors are undesirable, Call `RecordDropEvent.cancel()` from within `RecordDropHandler.onRecordDrop(com.smartgwt.client.widgets.grid.events.RecordDropEvent)` to cancel them, then and implement your own behavior, typically by using grid.updateData() or addData() to add new records.

      NOTE: the records you receive in this event are the actual Records from the source component. Use `DataSource.copyRecords()` to create a copy before modifying the records or using them with updateData() or addData().

      NOTE: for a drop beyond the last visible record of a ListGrid, `targetRecord` will be null and the `index` will be one higher than the last record. This includes a drop into an empty ListGrid, where `index` will be 0.

      Parameters:
        `handler` - the recordDrop handler
      Returns:
        `HandlerRegistration` used to remove this handler