/* * Copyright 2008 Google Inc. * * 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.google.gwt.gen2.table.event.client; import com.google.gwt.gen2.event.logical.shared.SelectionEvent; import com.google.gwt.gen2.table.event.client.TableEvent.Row; import java.util.Set; import java.util.TreeSet; /** * Logical event fired when a cell is highlighted. */ public class RowSelectionEvent extends SelectionEvent<Set<Row>> { /** * Event Key for {@link RowSelectionEvent}. */ public static final Type<RowSelectionEvent, RowSelectionHandler> TYPE = new Type<RowSelectionEvent, RowSelectionHandler>() { @Override protected void fire(RowSelectionHandler handler, RowSelectionEvent event) { handler.onRowSelection(event); } }; /** * Construct a new {@link RowSelectionEvent}. * * @param oldList the set of rows that were previously selected * @param newList the set of rows that are now selected */ public RowSelectionEvent(Set<Row> oldList, Set<Row> newList) { super(oldList, newList); } /** * @return the newly deselected rows */ public Set<Row> getDeselectedRows() { Set<Row> deselected = new TreeSet<Row>(); Set<Row> oldList = getOldValue(); Set<Row> newList = getNewValue(); for (Row row : oldList) { if (!newList.contains(row)) { deselected.add(row); } } return deselected; } /** * @return the newly selected rows */ public Set<Row> getSelectedRows() { Set<Row> selected = new TreeSet<Row>(); Set<Row> oldList = getOldValue(); Set<Row> newList = getNewValue(); for (Row row : newList) { if (!oldList.contains(row)) { selected.add(row); } } return selected; } @Override protected Type getType() { return TYPE; } }