package tim.prune.undo; import tim.prune.I18nManager; import tim.prune.UpdateMessageBroker; import tim.prune.data.TrackInfo; /** * Undo addition/subtraction of a time offset */ public class UndoAddTimeOffset implements UndoOperation { /** Start and end indices of section */ private int _startIndex, _endIndex; /** time offset in seconds */ private long _timeOffset; /** * Constructor * @param inStart start index of section * @param inEnd end index of section * @param inOffset time offset in seconds */ public UndoAddTimeOffset(int inStart, int inEnd, long inOffset) { _startIndex = inStart; _endIndex = inEnd; _timeOffset = inOffset; } /** * @return description of operation including number of points adjusted */ public String getDescription() { return I18nManager.getText("undo.addtimeoffset") + " (" + (_endIndex - _startIndex + 1) + ")"; } /** * 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 { // Perform the inverse operation inTrackInfo.getTrack().addTimeOffsetSeconds(_startIndex, _endIndex, -_timeOffset, true); UpdateMessageBroker.informSubscribers(); } }