/*
* Copyright 2000-2016 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.ui.components.grid;
import java.util.Collections;
import java.util.Set;
import com.vaadin.shared.ui.dnd.EffectAllowed;
import com.vaadin.ui.Grid;
import com.vaadin.ui.dnd.event.DragStartEvent;
/**
* Drag start event on an HTML5 drag source {@link Grid} row.
*
* @param <T>
* The Grid bean type.
* @author Vaadin Ltd.
* @see GridDragSource#addGridDragStartListener(GridDragStartListener)
* @since 8.1
*/
public class GridDragStartEvent<T> extends DragStartEvent<Grid<T>> {
private final Set<T> draggedItems;
/**
* Creates a drag start event.
*
* @param source
* The source grid where the rows are being dragged from.
* @param effectAllowed
* Allowed effect from {@code DataTransfer.effectAllowed} object.
* @param draggedItems
* Set of items being dragged.
*/
public GridDragStartEvent(Grid<T> source, EffectAllowed effectAllowed,
Set<T> draggedItems) {
super(source, effectAllowed);
this.draggedItems = draggedItems;
}
/**
* Get the dragged row items.
*
* @return an unmodifiable set of items that are being dragged.
*/
public Set<T> getDraggedItems() {
return Collections.unmodifiableSet(draggedItems);
}
}