1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
package tim.prune.undo;
import tim.prune.I18nManager;
import tim.prune.UpdateMessageBroker;
import tim.prune.data.AudioClip;
import tim.prune.data.DataPoint;
import tim.prune.data.Photo;
import tim.prune.data.TrackInfo;
/**
* Operation to undo the connection of a photo and/or audio to a point
*/
public class UndoConnectMedia implements UndoOperation
{
private DataPoint _point = null;
private String _photoFilename = null;
private String _audioFilename = null;
/**
* Constructor
* @param inPoint data point
* @param inPhotoFilename filename of photo, or null if photo not connected
* @param inAudioFilename filename of audio, or null of audio not connected
*/
public UndoConnectMedia(DataPoint inPoint, String inPhotoFilename, String inAudioFilename)
{
_point = inPoint;
_photoFilename = inPhotoFilename;
_audioFilename = inAudioFilename;
}
/**
* @return description of operation including photo and/or audio filename(s)
*/
public String getDescription()
{
String desc = I18nManager.getText("undo.connect") + " " + (_photoFilename==null?"":_photoFilename)
+ (_photoFilename!=null && _audioFilename!=null?", ":"")
+ (_audioFilename==null?"":_audioFilename);
return desc;
}
/**
* Perform the undo operation on the given Track
* @param inTrackInfo TrackInfo object on which to perform the operation
*/
public void performUndo(TrackInfo inTrackInfo) throws UndoException
{
if (_photoFilename != null)
{
// Disconnect photo
Photo photo = _point.getPhoto();
if (photo != null)
{
_point.setPhoto(null);
photo.setDataPoint(null);
}
}
if (_audioFilename != null)
{
// Disconnect audio
AudioClip audio = _point.getAudio();
if (audio != null)
{
_point.setAudio(null);
audio.setDataPoint(null);
}
}
// inform subscribers
UpdateMessageBroker.informSubscribers();
}
}
|