/*
* Copyright (C) 2015 Patryk Strach
*
* This file is part of Virtual Slide Viewer.
*
* Virtual Slide Viewer is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software Foundation,
* either version 3 of the License, or (at your option) any later version.
*
* Virtual Slide Viewer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with Virtual Slide Viewer.
* If not, see <http://www.gnu.org/licenses/>.
*/
package virtualslideviewer.undo;
import virtualslideviewer.core.VirtualSlideImage;
import virtualslideviewer.util.ParameterValidator;
/**
* An undoable action which renames the image.
*/
public class RenameImageAction implements UndoableAction
{
private final VirtualSlideImage mImage;
private final String mOldName;
private final String mNewName;
/**
* @param image The image to rename.
* @param newName A new name for the image.
*/
public RenameImageAction(VirtualSlideImage image, String newName)
{
ParameterValidator.throwIfNull(image, "image");
ParameterValidator.throwIfNull(newName, "newName");
mImage = image;
mOldName = image.getName();
mNewName = newName;
}
@Override
public void execute()
{
mImage.setName(mNewName);
}
@Override
public void undo()
{
mImage.setName(mOldName);
}
@Override
public String getExecuteMessage()
{
return String.format("Changed image \"%s\" name to \"%s\"", mOldName, mNewName);
}
@Override
public String getUndoMessage()
{
return String.format("Undid the change of image's name from \"%s\" name to \"%s\"", mOldName, mNewName);
}
}