using System.Collections.Generic; using System.Linq; using System.Reactive.Linq; using DynamicData; using ExampleCodeGenApp.ViewModels.Nodes; using NodeNetwork.Toolkit.Group; using NodeNetwork.Toolkit.ValueNode; using NodeNetwork.ViewModels; using ReactiveUI; namespace ExampleCodeGenApp.ViewModels { public class CodeNodeGroupIOBinding : ValueNodeGroupIOBinding { public CodeNodeGroupIOBinding(NodeViewModel groupNode, NodeViewModel entranceNode, NodeViewModel exitNode) : base(groupNode, entranceNode, exitNode) { } #region Endpoint Create public override ValueNodeOutputViewModel CreateCompatibleOutput(ValueNodeInputViewModel input) { return new CodeGenOutputViewModel(((CodeGenPortViewModel)input.Port).PortType) { Name = input.Name, Editor = new GroupEndpointEditorViewModel(this) }; } public override ValueNodeOutputViewModel> CreateCompatibleOutput(ValueListNodeInputViewModel input) { return new CodeGenOutputViewModel>(((CodeGenPortViewModel)input.Port).PortType) { Editor = new GroupEndpointEditorViewModel>(this) }; } public override ValueNodeInputViewModel CreateCompatibleInput(ValueNodeOutputViewModel output) { return new CodeGenInputViewModel(((CodeGenPortViewModel)output.Port).PortType) { Name = output.Name, Editor = new GroupEndpointEditorViewModel(this), HideEditorIfConnected = false }; } public override ValueListNodeInputViewModel CreateCompatibleInput(ValueNodeOutputViewModel> output) { return new CodeGenListInputViewModel(((CodeGenPortViewModel)output.Port).PortType) { Name = output.Name, Editor = new GroupEndpointEditorViewModel(this), HideEditorIfConnected = false }; } #endregion } }