]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/function/DisconnectAudioFunction.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / function / DisconnectAudioFunction.java
diff --git a/src/tim/prune/function/DisconnectAudioFunction.java b/src/tim/prune/function/DisconnectAudioFunction.java
new file mode 100644 (file)
index 0000000..962da71
--- /dev/null
@@ -0,0 +1,48 @@
+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.AudioClip;
+import tim.prune.data.DataPoint;
+import tim.prune.undo.UndoDisconnectMedia;
+import tim.prune.undo.UndoOperation;
+
+/**
+ * Function to disconnect the current audio object from the current point (like DisconnectPhotoFunction)
+ */
+public class DisconnectAudioFunction extends GenericFunction
+{
+       /**
+        * Constructor
+        * @param inApp app object
+        */
+       public DisconnectAudioFunction(App inApp) {
+               super(inApp);
+       }
+
+       /** @return name key */
+       public String getNameKey() {
+               return "function.disconnectfrompoint";
+       }
+
+       /**
+        * Perform the operation
+        */
+       public void begin()
+       {
+               AudioClip audio = _app.getTrackInfo().getCurrentAudio();
+               if (audio != null && audio.getDataPoint() != null)
+               {
+                       DataPoint point = audio.getDataPoint();
+                       UndoOperation undo = new UndoDisconnectMedia(point, false, true, audio.getName());
+                       // disconnect
+                       audio.setDataPoint(null);
+                       point.setAudio(null);
+                       UpdateMessageBroker.informSubscribers(DataSubscriber.SELECTION_CHANGED);
+                       _app.completeFunction(undo, I18nManager.getText("confirm.audio.disconnect"));
+               }
+       }
+}