Bevisuali.UX.Graph.GraphInspector.SetInterestVariables C# (CSharp) Метод

SetInterestVariables() публичный Метод

Configures the graph to emphasize the nodes listed.
public SetInterestVariables ( IEnumerable variableNames ) : void
variableNames IEnumerable
Результат void
        public void SetInterestVariables(IEnumerable<string> variableNames)
        {
            if (variableNames == null)
            {
                // Reset.

                foreach (var node in _nodes)
                {
                    if (node.State == GraphNode.StateEnum.Minimized)
                    {
                        node.State = GraphNode.StateEnum.Idling;
                    }
                }

                foreach (var edge in _edges)
                {
                    edge.State = GraphEdge.StateEnum.Normal;
                }

                _interestVariables = null;
            }
            else
            {
                // Minimize non-interest nodes. Reset interest nodes.
                List<GraphNode> nodesNotMinimized = new List<GraphNode>();
                foreach (var node in _nodes)
                {
                    FRandomVariable rv = (FRandomVariable)node.Tag;
                    if (variableNames.Contains(rv.Name))
                    {
                        nodesNotMinimized.Add(node);
                        if (node.State == GraphNode.StateEnum.Minimized)
                        {
                            node.State = GraphNode.StateEnum.Idling;

                        }
                    }
                    else
                    {
                        if (node.State != GraphNode.StateEnum.Minimized
                            && node.State == GraphNode.StateEnum.Idling)
                        {
                            node.State = GraphNode.StateEnum.Minimized;

                            _edges
                            .Where(e => e.To == node || e.From == node)
                            .ForAll(n => n.State = GraphEdge.StateEnum.Minimized);
                        }
                    }
                }

                // Ensure edges that are between non-minimized nodes are set
                // to normal state.
                foreach (var edge in _edges)
                {
                    if (nodesNotMinimized.Contains(edge.To)
                        && nodesNotMinimized.Contains(edge.From))
                    {
                        edge.State = GraphEdge.StateEnum.Normal;
                    }
                }

                // Store.
                _interestVariables = variableNames.ToList();
            }
        }