public EdgeControl GetEdgeControl(TEdge edge) { EdgeControl ec; EdgeControls.TryGetValue(edge, out ec); return(ec); }
private void OnMutableGraphEdgeRemoved(TEdge edge) { if (EdgeControls.ContainsKey(edge)) { _edgesRemoved.Enqueue(edge); DoNotificationLayout(); } }
protected EdgeControl GetOrCreateEdgeControl(TEdge edge) { if (!EdgeControls.ContainsKey(edge)) { CreateEdgeControl(edge); } return(EdgeControls[edge]); }
public void RemoveSemiHighlightFromEdge(TEdge edge) { _semiHighlightedEdges.Remove(edge); EdgeControl ec; if (EdgeControls.TryGetValue(edge, out ec)) { GraphElementBehavior.SetIsSemiHighlighted(ec, false); GraphElementBehavior.SetSemiHighlightInfo(ec, null); } }
public void SemiHighlightEdge(TEdge edge, object semiHighlightInfo) { _semiHighlightedEdges[edge] = semiHighlightInfo; EdgeControl ec; if (EdgeControls.TryGetValue(edge, out ec)) { GraphElementBehavior.SetIsSemiHighlighted(ec, true); GraphElementBehavior.SetSemiHighlightInfo(ec, semiHighlightInfo); } }
public void HighlightEdge(TEdge edge, object highlightInfo) { _highlightedEdges[edge] = highlightInfo; EdgeControl ec; if (EdgeControls.TryGetValue(edge, out ec)) { GraphElementBehavior.SetIsHighlighted(ec, true); GraphElementBehavior.SetHighlightInfo(ec, highlightInfo); } }
protected void RemoveAllGraphElement() { foreach (var vertex in VertexControls.Keys.ToArray()) { RemoveVertexControl(vertex); } foreach (var edge in EdgeControls.Keys.ToArray()) { RemoveEdgeControl(edge); } VertexControls.Clear(); EdgeControls.Clear(); }
protected virtual void RemoveEdgeControl(TEdge edge) { RunDestructionTransition(EdgeControls[edge], false); EdgeControls.Remove(edge); }
/// <summary> /// If the graph has been changed, the elements will be regenerated. /// </summary> protected void RecreateGraphElements(bool tryKeepControls) { if (Graph == null) { RemoveAllGraphElement(); } else { if (tryKeepControls && !IsCompoundMode) { //remove the old graph elements foreach (var kvp in EdgeControls.ToList()) { bool remove = false; try { remove = !Graph.ContainsEdge(kvp.Key.Source, kvp.Key.Target) || !Graph.ContainsEdge(kvp.Key); } catch { } if (remove) { RemoveEdgeControl(kvp.Key); } } foreach (var kvp in VertexControls.ToList()) { if (!Graph.ContainsVertex(kvp.Key)) { RemoveVertexControl(kvp.Key); } } } else { RemoveAllGraphElement(); } // // Presenters for vertices // foreach (var vertex in Graph.Vertices) { if (!VertexControls.ContainsKey(vertex)) { CreateVertexControl(vertex); } } // // Presenters for edges // foreach (var edge in Graph.Edges) { if (!EdgeControls.ContainsKey(edge)) { CreateEdgeControl(edge); } } // // subscribe to events of the Graph mutations // if (!IsCompoundMode) { var mutableGraph = Graph as IMutableBidirectionalGraph <TVertex, TEdge>; if (mutableGraph != null) { mutableGraph.VertexAdded += OnMutableGraphVertexAdded; mutableGraph.VertexRemoved += OnMutableGraphVertexRemoved; mutableGraph.EdgeAdded += OnMutableGraphEdgeAdded; mutableGraph.EdgeRemoved += OnMutableGraphEdgeRemoved; } } } Sizes = null; }