blob: d6996d52e264519d8b0ba2fbffab63315ae4b62f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2020 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Original authors and others - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.edit.command;
import org.eclipse.nebula.widgets.nattable.command.AbstractPositionCommand;
import org.eclipse.nebula.widgets.nattable.layer.ILayer;
/**
* Command that will trigger a data model update.
*/
public class UpdateDataCommand extends AbstractPositionCommand {
/**
* The value to update the data model to.
*/
private final Object newValue;
/**
* Create a new {@link UpdateDataCommand} based on the specified
* information.
*
* @param layer
* The {@link ILayer} to which the columnPosition and rowPosition
* are resolved to. This is needed to support conversion of
* column and row positions from this layer to NatTable
* coordinates, which may be different e.g. in case of grid
* composition.
* @param columnPosition
* The column position of the value to update.
* @param rowPosition
* The row position of the value to update.
* @param newValue
* The value to update the data model value to.
*/
public UpdateDataCommand(ILayer layer, int columnPosition, int rowPosition, Object newValue) {
super(layer, columnPosition, rowPosition);
this.newValue = newValue;
}
/**
* Create a new {@link UpdateDataCommand} based on the specified instance.
* Mainly needed for cloning purposes.
*
* @param command
* The command to create a new instance from.
*/
protected UpdateDataCommand(UpdateDataCommand command) {
super(command);
this.newValue = command.newValue;
}
/**
* @return The value to update the data model to.
*/
public Object getNewValue() {
return this.newValue;
}
@Override
public UpdateDataCommand cloneCommand() {
return new UpdateDataCommand(this);
}
@Override
public String toString() {
return this.getClass().getSimpleName()
+ " columnPosition = " + getColumnPosition() //$NON-NLS-1$
+ ", rowPosition = " + getRowPosition() //$NON-NLS-1$
+ ", newValue = " + this.newValue; //$NON-NLS-1$
}
}