1 package tim.prune.function;
4 import tim.prune.DataSubscriber;
5 import tim.prune.GenericFunction;
6 import tim.prune.I18nManager;
7 import tim.prune.UpdateMessageBroker;
8 import tim.prune.data.AudioClip;
9 import tim.prune.data.DataPoint;
10 import tim.prune.data.Photo;
11 import tim.prune.undo.UndoConnectMedia;
12 import tim.prune.undo.UndoOperation;
15 * Function to connect either a photo or an audio clip to the current point
17 public class ConnectToPointFunction extends GenericFunction
21 * @param inApp app object
23 public ConnectToPointFunction(App inApp) {
30 public String getNameKey() {
31 return "function.connecttopoint";
39 Photo photo = _app.getTrackInfo().getCurrentPhoto();
40 DataPoint point = _app.getTrackInfo().getCurrentPoint();
41 AudioClip audio = _app.getTrackInfo().getCurrentAudio();
42 boolean connectPhoto = (point != null && photo != null && point.getPhoto() == null);
43 boolean connectAudio = (point != null && audio != null && point.getAudio() == null);
45 if (connectPhoto && connectAudio) {
46 // TODO: Let user choose whether to connect photo/audio or both
49 UndoOperation undo = new UndoConnectMedia(point, connectPhoto?photo.getName():null,
50 connectAudio?audio.getName():null);
53 photo.setDataPoint(point);
54 point.setPhoto(photo);
57 audio.setDataPoint(point);
58 point.setAudio(audio);
60 UpdateMessageBroker.informSubscribers(DataSubscriber.SELECTION_CHANGED);
61 _app.completeFunction(undo, I18nManager.getText("confirm.media.connect"));