/* * 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.client.widget.grid.events; import com.google.gwt.event.shared.GwtEvent; import com.vaadin.client.widget.grid.selection.SelectionModel; /** * A select all event, fired by the Grid when it needs all rows in data source * to be selected, OR when all rows have been selected and are now deselected. * * @since 7.4 * @author Vaadin Ltd * @param <T> * the type of the rows in grid */ public class SelectAllEvent<T> extends GwtEvent<SelectAllHandler<T>> { /** * Handler type. */ private static final Type<SelectAllHandler<?>> TYPE = new Type<>();; private final SelectionModel<T> selectionModel; private final boolean allSelected; /** * Constructs a new select all event when all rows in grid are selected. * * @param selectionModel * the selection model in use */ public SelectAllEvent(SelectionModel<T> selectionModel) { this(selectionModel, true); } /** * * * @param selectionModel * the selection model in use * @param allSelected * {@code true} for all selected, {@code false} for all * deselected */ public SelectAllEvent(SelectionModel<T> selectionModel, boolean allSelected) { this.selectionModel = selectionModel; this.allSelected = allSelected; } /** * Gets the type of the handlers for this event. * * @return the handler type */ public static final Type<SelectAllHandler<?>> getType() { return TYPE; } @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public Type<SelectAllHandler<T>> getAssociatedType() { return (Type) TYPE; } @Override protected void dispatch(SelectAllHandler<T> handler) { handler.onSelectAll(this); } /** * The selection model in use. * * @return the selection model */ public SelectionModel<T> getSelectionModel() { return selectionModel; } /** * Returns whether all the rows were selected, or deselected. Deselection * can only happen if all rows were previously selected. * * @return {@code true} for selecting all rows, or {@code false} for * deselecting all rows */ public boolean isAllSelected() { return allSelected; } }