void LayoutGraph(ObjectGraph graph)
        {
            this.oldPosGraph = this.currentPosGraph;
            Log.Debug("Debugger visualizer: Calculating graph layout");
            var layoutDirection = layoutViewModel.SelectedEnumValue;

            this.currentPosGraph = new TreeLayout(layoutDirection).CalculateLayout(graph, expanded);
            Log.Debug("Debugger visualizer: Graph layout done");
            RegisterExpandCollapseEvents(this.currentPosGraph);

            var graphDiff = new GraphMatcher().MatchGraphs(oldPosGraph, currentPosGraph);

            Log.Debug("Debugger visualizer: starting graph animation");
            this.graphDrawer.StartAnimation(oldPosGraph, currentPosGraph, graphDiff);
        }
Example #2
0
        void layoutGraph(ObjectGraph graph)
        {
            if (this.oldPosGraph != null)
            {
                foreach (var oldNode in this.oldPosGraph.Nodes)
                {
                    // controls from old graph would be garbage collected, reuse them
                    NodeControlCache.Instance.ReturnForReuse(oldNode.NodeVisualControl);
                }
            }
            this.oldPosGraph = this.currentPosGraph;
            ICSharpCode.Core.LoggingService.Debug("Debugger visualizer: Calculating graph layout");
            this.currentPosGraph = this.layouter.CalculateLayout(graph, layoutViewModel.SelectedEnumValue, this.expanded);
            ICSharpCode.Core.LoggingService.Debug("Debugger visualizer: Graph layout done");
            registerExpandCollapseEvents(this.currentPosGraph);

            var graphDiff = new GraphMatcher().MatchGraphs(oldPosGraph, currentPosGraph);

            ICSharpCode.Core.LoggingService.Debug("Debugger visualizer: starting graph animation");
            this.graphDrawer.StartAnimation(oldPosGraph, currentPosGraph, graphDiff);
            //this.graphDrawer.Draw(this.currentPosGraph);	// buggy layout with NodeControlCache
        }
Example #3
0
        void LayoutGraph(ObjectGraph graph)
        {
            if (this.oldPosGraph != null)
            {
                foreach (var oldNode in this.oldPosGraph.Nodes)
                {
                    // controls from old graph would be garbage collected, reuse them
                    NodeControlCache.Instance.ReturnForReuse(oldNode.NodeVisualControl);
                }
            }
            this.oldPosGraph = this.currentPosGraph;
            Log.Debug("Debugger visualizer: Calculating graph layout");
            var layoutDirection = layoutViewModel.SelectedEnumValue;

            this.currentPosGraph = new TreeLayout(layoutDirection).CalculateLayout(graph, expanded);
            Log.Debug("Debugger visualizer: Graph layout done");
            RegisterExpandCollapseEvents(this.currentPosGraph);

            var graphDiff = new GraphMatcher().MatchGraphs(oldPosGraph, currentPosGraph);

            Log.Debug("Debugger visualizer: starting graph animation");
            this.graphDrawer.StartAnimation(oldPosGraph, currentPosGraph, graphDiff);
        }