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

45 lines
1.3 KiB
C#

namespace T3.Editor.UiModel.Commands.Graph;
public sealed class ChangeInstanceIsDisabledCommand : ICommand
{
public string Name => "Disable/Enable";
public bool IsUndoable => true;
public ChangeInstanceIsDisabledCommand(SymbolUi.Child symbolChildUi, bool setDisabledTo)
{
_inputParentSymbolId = symbolChildUi.SymbolChild.Parent.Id;
_childId = symbolChildUi.Id;
_originalState = symbolChildUi.SymbolChild.IsDisabled;
_newState = setDisabledTo;
}
public void Undo()
{
AssignValue(_originalState);
}
public void Do()
{
AssignValue(_newState);
}
private void AssignValue(bool shouldBeDisabled)
{
if (!SymbolUiRegistry.TryGetSymbolUi(_inputParentSymbolId, out var symbolUi))
return;
if (!symbolUi!.ChildUis.TryGetValue(_childId, out var childUi))
{
Log.Assert("Failed to find childUi");
return;
}
childUi.SymbolChild.IsDisabled = shouldBeDisabled;
symbolUi.FlagAsModified();
}
private readonly bool _newState;
private readonly bool _originalState;
private readonly Guid _inputParentSymbolId;
private readonly Guid _childId;
}