Exemple #1
0
        private void OnHoveredItemChanged(object sender, HoveredItemChangedEventArgs e)
        {
            // first remove previous highlights
            graphControl.HighlightIndicatorManager.ClearHighlights();
            // then see where we are hovering over, now
            var newItem = e.Item;

            if (newItem != null)
            {
                // we highlight the item itself
                var node = newItem as INode;
                var edge = newItem as IEdge;
                if (node != null && aggregationHelper.IsOriginalNodeOrPlaceHolder(node))
                {
                    AddHighlight(node);
                    // and if it's a node, we highlight all adjacent edges, too
                    foreach (var adjacentEdge in graphControl.Graph.EdgesAt(node))
                    {
                        if (aggregationHelper.IsHierarchyEdge(adjacentEdge))
                        {
                            continue;
                        }
                        AddHighlight(adjacentEdge);
                        AddHighlight((INode)adjacentEdge.Opposite(node));
                    }
                }
                else if (edge != null && !aggregationHelper.IsHierarchyEdge(edge))
                {
                    AddHighlight(edge);
                    // if it's an edge - we highlight the adjacent nodes
                    AddHighlight(edge.GetSourceNode());
                    AddHighlight(edge.GetTargetNode());
                }
            }
        }
Exemple #2
0
        private void OnHoveredItemChanged(object sender, HoveredItemChangedEventArgs e)
        {
            // we use the highlight manager of the GraphComponent to highlight related items
            var manager = graphControl.HighlightIndicatorManager;

            // first remove previous highlights
            manager.ClearHighlights();
            // then see where we are hovering over, now
            var newItem = e.Item;

            if (newItem != null)
            {
                // we highlight the item itself
                manager.AddHighlight(newItem);
                var node = newItem as INode;
                var edge = newItem as IEdge;
                if (node != null)
                {
                    // and if it's a node, we highlight all adjacent edges, too
                    foreach (var adjacentEdge in graphControl.Graph.EdgesAt(node))
                    {
                        manager.AddHighlight(adjacentEdge);
                    }
                }
                else if (edge != null)
                {
                    // if it's an edge - we highlight the adjacent nodes
                    manager.AddHighlight(edge.GetSourceNode());
                    manager.AddHighlight(edge.GetTargetNode());
                }
            }
        }