using System; using System.Collections.Generic; using System.Text; using ExampleCodeGenApp.Views; using NodeNetwork.Toolkit.Group.AddEndpointDropPanel; using NodeNetwork.ViewModels; using ReactiveUI; namespace ExampleCodeGenApp.ViewModels.Nodes { public class GroupSubnetIONodeViewModel : CodeGenNodeViewModel { static GroupSubnetIONodeViewModel() { Splat.Locator.CurrentMutable.Register(() => new GroupSubnetIONodeView(), typeof(IViewFor)); } public NetworkViewModel Subnet { get; } #region IOBinding public CodeNodeGroupIOBinding IOBinding { get => _ioBinding; set { if (_ioBinding != null) { throw new InvalidOperationException("IOBinding is already set."); } _ioBinding = value; AddEndpointDropPanelVM = new AddEndpointDropPanelViewModel(_isEntranceNode, _isExitNode) { NodeGroupIOBinding = IOBinding }; } } private CodeNodeGroupIOBinding _ioBinding; #endregion public AddEndpointDropPanelViewModel AddEndpointDropPanelVM { get; set; } private readonly bool _isEntranceNode, _isExitNode; public GroupSubnetIONodeViewModel(NetworkViewModel subnet, bool isEntranceNode, bool isExitNode) : base(NodeType.Group) { this.Subnet = subnet; _isEntranceNode = isEntranceNode; _isExitNode = isExitNode; } } }