/******************************************************************************* * Copyright (c) 2012, 2013 Original authors and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Original authors and others - initial API and implementation ******************************************************************************/ package org.eclipse.nebula.widgets.nattable.command; import org.eclipse.nebula.widgets.nattable.NatTable; import org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer; import org.eclipse.nebula.widgets.nattable.layer.ILayer; /** * Commands are fired by NatTable in response to user actions. Commands flow * down the layer stack until they are processed by an {@link ILayer} or an * associated {@link ILayerCommandHandler}. Commands can be fired from code by * invoking {@link NatTable#doCommand(ILayerCommand)} */ public interface ILayerCommand { /** * Convert the row/column coordinates the command might be carrying from the * source layer to the destination (target) layer. If it is not possible to * convert the command to the target layer, then this method will return * false and <b>the state of this command object will remain unchanged</b>. * Note: Commands should not be processed if they fail conversion. * * @param targetLayer * the target layer * @return true if the command is valid after conversion, false if the * command is no longer valid. */ public boolean convertToTargetLayer(ILayer targetLayer); /** * Same semantics as {@link Object#clone()} Used to make a copies of the * command if has to passed to different layer stacks. * * @see GridLayer#doCommand(ILayerCommand) * @return a cloned instance of the command */ public ILayerCommand cloneCommand(); }