Files
tooll3--t3/Editor/UiModel/Commands/Graph/ChangeSymbolChildNameCommand.cs
2026-07-13 13:13:17 +08:00

42 lines
1.2 KiB
C#

using T3.Core.Operator;
namespace T3.Editor.UiModel.Commands.Graph;
public sealed class ChangeSymbolChildNameCommand : ICommand
{
public string Name => "Change Symbol Name";
public bool IsUndoable => true;
public ChangeSymbolChildNameCommand(SymbolUi.Child symbolChildUi, Symbol parentSymbol)
{
_symbolChildId = symbolChildUi.SymbolChild.Id;
_parentSymbolId = parentSymbol.Id;
NewName = _originalName = symbolChildUi.SymbolChild.Name;
}
public void Do()
{
AssignValue(NewName);
}
public void Undo()
{
AssignValue(_originalName);
}
private void AssignValue(string newName)
{
if (!SymbolUiRegistry.TryGetSymbolUi(_parentSymbolId, out var symbolUi))
throw new Exception("Symbol not found: " + _parentSymbolId);
var symbolParent = symbolUi.Symbol;
var symbolChild = symbolParent.Children[_symbolChildId];
symbolChild.Name = newName;
symbolUi.FlagAsModified();
}
public string NewName { get; set; }
private readonly string _originalName;
private readonly Guid _symbolChildId;
private readonly Guid _parentSymbolId;
}