Beispiel #1
0
        protected virtual void OnNodeAdded(GleeVertexEventArgs <TVertex> e)
        {
            GleeVertexNodeEventHandler <TVertex> eh = this.NodeAdded;

            if (eh != null)
            {
                eh(this, e);
            }
        }
Beispiel #2
0
        public static Microsoft.Glee.Drawing.Graph ToGleeGraph <TVertex, TEdge>(
#if !NET20
            this
#endif
            IEdgeListGraph <TVertex, TEdge> visitedGraph,
            GleeVertexNodeEventHandler <TVertex> nodeAdded,
            GleeEdgeEventHandler <TVertex, TEdge> edgeAdded
            )
            where TEdge : IEdge <TVertex>
        {
            if (visitedGraph == null)
            {
                throw new ArgumentNullException("visitedGraph");
            }

            var populator = CreateGleePopulator(visitedGraph);

            try
            {
                if (nodeAdded != null)
                {
                    populator.NodeAdded += nodeAdded;
                }
                if (edgeAdded != null)
                {
                    populator.EdgeAdded += edgeAdded;
                }

                populator.Compute();
                return(populator.GleeGraph);
            }
            finally
            {
                if (nodeAdded != null)
                {
                    populator.NodeAdded -= nodeAdded;
                }
                if (edgeAdded != null)
                {
                    populator.EdgeAdded -= edgeAdded;
                }
            }
        }
Beispiel #3
0
        public static Microsoft.Glee.Drawing.Graph ToIdentifiableGleeGraph <TVertex, TEdge>(
#if !NET20
            this
#endif
            IEdgeListGraph <TVertex, TEdge> visitedGraph,
            VertexIdentity <TVertex> vertexIdentities,
            GleeVertexNodeEventHandler <TVertex> nodeAdded,
            GleeEdgeEventHandler <TVertex, TEdge> edgeAdded
            )
            where TEdge : IEdge <TVertex>
        {
            Contract.Requires(visitedGraph != null);
            Contract.Requires(vertexIdentities != null);

            var populator = CreateIdentifiableGleePopulator(visitedGraph, vertexIdentities);

            try
            {
                if (nodeAdded != null)
                {
                    populator.NodeAdded += nodeAdded;
                }
                if (edgeAdded != null)
                {
                    populator.EdgeAdded += edgeAdded;
                }

                populator.Compute();
                return(populator.GleeGraph);
            }
            finally
            {
                if (nodeAdded != null)
                {
                    populator.NodeAdded -= nodeAdded;
                }
                if (edgeAdded != null)
                {
                    populator.EdgeAdded -= edgeAdded;
                }
            }
        }