package tim.prune.function;
import tim.prune.App;
import tim.prune.DataSubscriber;
import tim.prune.GenericFunction;
import tim.prune.I18nManager;
import tim.prune.UpdateMessageBroker;
import tim.prune.data.Photo;
import tim.prune.undo.UndoRotatePhoto;
/**
* Class to provide the function to rotate a photo
* either clockwise or anticlockwise
*/
public class RotatePhoto extends GenericFunction
{
/** Direction of rotation */
private boolean _direction = true;
/**
* Constructor
* @param inApp application object for callback
* @param inDir true for clockwise, false for anticlockwise
*/
public RotatePhoto(App inApp, boolean inDir)
{
super(inApp);
_direction = inDir;
}
/** Get the name key */
public String getNameKey() {
return _direction?"function.rotatephotoright":"function.rotatephotoleft";
}
/**
* Begin the function
*/
public void begin()
{
Photo photo = _app.getTrackInfo().getCurrentPhoto();
if (photo != null)
{
UndoRotatePhoto undo = new UndoRotatePhoto(photo, _direction);
photo.rotate(_direction);
UpdateMessageBroker.informSubscribers(DataSubscriber.PHOTOS_MODIFIED);
_app.completeFunction(undo, I18nManager.getText("confirm.rotatephoto"));
}
}
}