private void ResetBuffers()
        {
            _addInputConnectors.Clear();
            _removeInputConnectors.Clear();

            InputsForSettings.Clear();
            OutputsForSettings.Clear();
        }
        public override void OpenPropertyWindow()
        {
            ResetBuffers();

            foreach (var input in Inputs)
            {
                InputsForSettings.Add(new ConnectorViewModel(this, input.Orientation, input.ConnectorType));
            }

            foreach (var output in Outputs)
            {
                OutputsForSettings.Add(new ConnectorViewModel(this, output.Orientation, output.ConnectorType));
            }

            base.OpenPropertyWindow();
        }
        private void AddInput()
        {
            ConnectorViewModel connector;

            if (_removeInputConnectors.Count > 0)
            {
                connector = _removeInputConnectors.Last();
                _removeInputConnectors.Remove(connector);
            }
            else
            {
                connector = new ConnectorViewModel(this, ConnectorOrientation.LEFT, ConnectorType.DIRECT);
                _addInputConnectors.Add(connector);
            }
            InputsForSettings.Add(connector);
            ((RelayCommand)AddInputCommand).RaiseCanExecuteChanged();
            ((RelayCommand)RemoveInputCommand).RaiseCanExecuteChanged();
        }
        private void RemoveInput()
        {
            ConnectorViewModel connector;

            if (_addInputConnectors.Count > 0)
            {
                connector = _addInputConnectors.Last();
                _addInputConnectors.Remove(connector);
            }
            else
            {
                connector = InputsForSettings.Last();
                _removeInputConnectors.Add(connector);
            }

            InputsForSettings.Remove(connector);
            ((RelayCommand)RemoveInputCommand).RaiseCanExecuteChanged();
            ((RelayCommand)AddInputCommand).RaiseCanExecuteChanged();
        }