using System;
using Artemis.Core;
using Artemis.Core.LayerEffects;
namespace Artemis.UI.Shared.Services.ProfileEditor.Commands;
///
/// Represents a profile editor command that can be used to rename a layer effect
///
public class RenameLayerEffect : IProfileEditorCommand
{
private readonly BaseLayerEffect _layerEffect;
private readonly string _name;
private readonly string _oldName;
private readonly bool _wasRenamed;
///
/// Creates a new instance of the class.
///
public RenameLayerEffect(BaseLayerEffect layerEffect, string name)
{
_layerEffect = layerEffect;
_name = name;
_oldName = layerEffect.Name;
_wasRenamed = layerEffect.HasBeenRenamed;
}
///
public string DisplayName => "Rename layer effect";
///
public void Execute()
{
_layerEffect.Name = _name;
_layerEffect.HasBeenRenamed = true;
}
///
public void Undo()
{
_layerEffect.Name = _oldName;
_layerEffect.HasBeenRenamed = _wasRenamed;
}
}