示例#1
0
        public IBufferingEventViewProvider <ICalculationNode> GetNode(NodeSelector selector)
        {
            var nodeIsNew = !Nodes.ContainsKey(selector);
            var node      = _decoratedGraph.GetNode(selector);

            if (nodeIsNew)
            {
                _nodeAddedAction(selector);
            }
            return(node);
        }
示例#2
0
        public void RemoveNode(NodeSelector selector)
        {
            if (!_nodes.ContainsKey(selector))
            {
                return;
            }
            var node = GetDisposableNode(selector);

            node.Dispose();
            _nodes.Remove(selector);
            _paths.Remove(selector.Path);
        }
示例#3
0
 public IBufferingEventViewProvider <ICalculationNode> GetNode(NodeSelector selector) =>
 GetDisposableNode(selector);
示例#4
0
 private IDisposableNodeViewProvider CreateDisposableNode(NodeSelector selector)
 {
     _paths.Add(selector.Path);
     return(_nodeFactory.Create(selector));
 }
示例#5
0
 private IDisposableNodeViewProvider GetDisposableNode(NodeSelector selector) =>
 (IDisposableNodeViewProvider)_nodes.GetOrAdd(selector, CreateDisposableNode);
示例#6
0
 public void RemoveNode(NodeSelector selector)
 {
     _decoratedGraph.RemoveNode(selector);
     _nodeRemovedAction(selector);
 }