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()); } } }
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()); } } }