コード例 #1
0
        public void ApplyLabel(ILabeledObject graphElement, DebuggerOperations debuggerOperations, Identifier identifier)
        {
            var label = Regex.Replace(LabelTextExpression, @"{.*?}", delegate(Match match)
            {
                ThreadHelper.ThrowIfNotOnUIThread();
                string v = match.ToString();
                return(debuggerOperations.GetExpressionForIdentifier(v.Substring(1, v.Length - 2), identifier).Value);
            });

            if (FontSize.HasValue)
            {
                graphElement.Label.FontSize = FontSize.Value;
            }

            if (label.Equals(graphElement.Label.Text))
            {
                return;
            }

            graphElement.Label.Text = label;
            if (HighlightIfChanged)
            {
                graphElement.Label.FontColor = ColorToHighLight ?? Color.Red;
            }
        }
コード例 #2
0
 public void Apply(Edge edge, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     if (edge.Label == null)
     {
         edge.LabelText = "";
     }
     ApplyLabel(edge, debuggerOperations, identifier);
 }
コード例 #3
0
        private void InitializeDebuggerOperations()
        {
            Dispatcher.CurrentDispatcher.VerifyAccess();
            var dte = (DTE)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(DTE));

            _debugEvents = dte.Events.DebuggerEvents;
            _debugEvents.OnContextChanged +=
                Update;
            var debugger = dte.Debugger;

            EnvDTE.Window w = dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);
            w.Visible = true;
            OutputWindow ow = (OutputWindow)w.Object;
            var          outputWindowPane = ow.OutputWindowPanes.Add("Graph Visualization");

            outputWindowPane.Activate();
            _debuggerOperations = new DebuggerOperations(debugger, outputWindowPane);
        }
コード例 #4
0
 public void Apply(Node node, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     node.Attr.LineWidth = LineWidth;
 }
コード例 #5
0
 public void Apply(Node node, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     ApplyLabel(node, debuggerOperations, identifier);
 }
コード例 #6
0
 public void Apply(Node node, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     node.Attr.Shape = Shape;
 }
コード例 #7
0
 public void Apply(Node node, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     node.Attr.FillColor = Color;
 }
コード例 #8
0
 public void Apply(Node node, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     node.Attr.AddStyle(Style);
 }
コード例 #9
0
 public void Apply(Edge edge, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     edge.Attr.Color = Color;
 }
コード例 #10
0
 public void Apply(Edge edge, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     edge.Attr.LineWidth = LineWidth;
 }
コード例 #11
0
 public void Apply(Edge edge, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     edge.Attr.ArrowheadAtTarget = ArrowAtTarget ? ArrowStyle.Normal : ArrowStyle.None;
     edge.Attr.ArrowheadAtSource = ArrowAtSource ? ArrowStyle.Normal : ArrowStyle.None;
 }
コード例 #12
0
 public void Apply(Edge edge, DebuggerOperations debuggerOperations, Identifier identifier)
 {
     edge.Attr.AddStyle(Style);
 }