protected virtual void CreateEdgeControl(TEdge edge)
        {
            var edgeControl = new EdgeControl
            {
                Edge        = edge,
                DataContext = edge
            };

            //var edgeControl = _edgePool.GetObject();
            //edgeControl.Edge = edge;
            _edgeControls[edge] = edgeControl;

            //set the Source and the Target
            edgeControl.Source = _vertexControls[edge.Source];
            edgeControl.Target = _vertexControls[edge.Target];

            if (ActualLayoutMode == Algorithms.Layout.LayoutMode.Simple)
            {
                Children.Insert(0, edgeControl);
            }
            else
            {
                Children.Add(edgeControl);
            }
            SetHighlightProperties(edge, edgeControl);
            RunCreationTransition(edgeControl);
        }
        public EdgeControl GetEdgeControl(TEdge edge)
        {
            EdgeControl ec = null;

            _edgeControls.TryGetValue(edge, out ec);
            return(ec);
        }
        protected virtual EdgeControl CreateEdgeControl([NotNull] TEdge edge)
        {
            var edgeControl = new EdgeControl
            {
                Edge        = edge,
                DataContext = edge
            };

            EdgesControls[edge] = edgeControl;

            // Set the Source and the Target
            edgeControl.Source = VerticesControls[edge.Source];
            edgeControl.Target = VerticesControls[edge.Target];

            if (ActualLayoutMode == Algorithms.Layout.LayoutMode.Simple)
            {
                Children.Insert(0, edgeControl);
            }
            else
            {
                Children.Add(edgeControl);
            }
            SetHighlightProperties(edge, edgeControl);
            RunCreationTransition(edgeControl);

            return(edgeControl);
        }
        protected EdgeControl GetOrCreateEdgeControl([NotNull] TEdge edge)
        {
            EdgeControl edgeControl = GetEdgeControl(edge);

            if (edgeControl is null)
            {
                return(CreateEdgeControl(edge));
            }
            return(edgeControl);
        }
Example #5
0
        private void SetHighlightProperties(TEdge edge, EdgeControl edgeControl)
        {
            Debug.Assert(edge != null);
            Debug.Assert(edgeControl != null);

            if (IsHighlightedEdge(edge, out object highlightInfo))
            {
                GraphElementBehaviour.SetIsHighlighted(edgeControl, true);
                GraphElementBehaviour.SetHighlightInfo(edgeControl, highlightInfo);
            }

            if (IsSemiHighlightedEdge(edge, out object semiHighlightInfo))
            {
                GraphElementBehaviour.SetIsSemiHighlighted(edgeControl, true);
                GraphElementBehaviour.SetSemiHighlightInfo(edgeControl, semiHighlightInfo);
            }
        }
        private void SetHighlightProperties(TEdge edge, EdgeControl edgeControl)
        {
            object highlightInfo;

            if (IsHighlightedEdge(edge, out highlightInfo))
            {
                GraphElementBehaviour.SetIsHighlighted(edgeControl, true);
                GraphElementBehaviour.SetHighlightInfo(edgeControl, highlightInfo);
            }

            object semiHighlightInfo;

            if (IsSemiHighlightedEdge(edge, out semiHighlightInfo))
            {
                GraphElementBehaviour.SetIsSemiHighlighted(edgeControl, true);
                GraphElementBehaviour.SetSemiHighlightInfo(edgeControl, semiHighlightInfo);
            }
        }