45 lines
1.3 KiB
C#
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;
|
|
} |