/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* 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 org.kie.workbench.common.widgets.decoratedgrid.client.widget.events;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.GwtEvent;
import org.kie.workbench.common.widgets.decoratedgrid.client.widget.CellValue;
import java.util.Set;
/**
* An event to signal that the state of the selected cells needs to be updated.
* The event itself does not contain details of what cells are selected as this
* is maintained by the AbstractMergableGridWidget that handles single and
* multiple cell selection.
*/
public class CellStateChangedEvent extends GwtEvent<CellStateChangedEvent.Handler> {
public static interface Handler
extends
EventHandler {
void onCellStateChanged( CellStateChangedEvent event );
}
public static enum Operation {
ADD,
REMOVE
}
public static class CellStateOperation {
public CellStateOperation( CellValue.CellState state,
Operation operation ) {
this.state = state;
this.operation = operation;
}
private CellValue.CellState state;
private Operation operation;
public CellValue.CellState getState() {
return state;
}
public Operation getOperation() {
return operation;
}
}
public static final Type<Handler> TYPE = new Type<Handler>();
//The new state
private Set<CellStateOperation> states;
public CellStateChangedEvent( Set<CellStateOperation> states ) {
this.states = states;
}
public Set<CellStateOperation> getStates() {
return this.states;
}
@Override
public Type<Handler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch( CellStateChangedEvent.Handler handler ) {
handler.onCellStateChanged( this );
}
}