using System;
using Artemis.Core;
namespace Artemis.UI.Shared.Services.ProfileEditor.Commands;
///
/// Represents a profile editor command that can be used to change the position of a keyframe.
///
public class MoveKeyframe : IProfileEditorCommand
{
private readonly ILayerPropertyKeyframe _keyframe;
private readonly TimeSpan _originalPosition;
private readonly TimeSpan _position;
///
/// Creates a new instance of the class.
///
public MoveKeyframe(ILayerPropertyKeyframe keyframe, TimeSpan position)
{
_keyframe = keyframe;
_position = position;
_originalPosition = keyframe.Position;
}
///
/// Creates a new instance of the class.
///
public MoveKeyframe(ILayerPropertyKeyframe keyframe, TimeSpan position, TimeSpan originalPosition)
{
_keyframe = keyframe;
_position = position;
_originalPosition = originalPosition;
}
#region Implementation of IProfileEditorCommand
///
public string DisplayName => "Move keyframe";
///
public void Execute()
{
_keyframe.Position = _position;
}
///
public void Undo()
{
_keyframe.Position = _originalPosition;
}
#endregion
}