--- /dev/null
+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"));
+ }
+ }
+}