Ejemplo n.º 1
0
 /** For every event, we track in overall list and in self's
  *  event list so that each template has a list of events used to
  *  create it.  If EvalTemplateEvent, store in parent's
  *  childEvalTemplateEvents list for STViz tree view.
  */
 protected void TrackDebugEvent(TemplateFrame frame, InterpEvent e)
 {
     //		System.out.println(e);
     this.events.Add(e);
     //		if ( self.debugState==null ) self.debugState = new ST.DebugState();
     //		self.debugState.events.add(e);
     frame.GetDebugState().Events.Add(e);
     if (e is EvalTemplateEvent)
     {
         //ST parent = getDebugState(self).interpEnclosingInstance;
         TemplateFrame parent = frame.Parent;
         if (parent != null)
         {
             // System.out.println("add eval "+e.self.getName()+" to children of "+parent.getName());
             //				if ( parent.debugState==null ) parent.debugState = new ST.DebugState();
             //				parent.debugState.childEvalTemplateEvents.add((EvalTemplateEvent)e);
             parent.GetDebugState().ChildEvalTemplateEvents.Add((EvalTemplateEvent)e);
         }
     }
 }
        protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            if (e.Property == DataContextProperty)
            {
                var viewModel = ViewModel;
                if (viewModel == null)
                    return;

                _currentEvent = null;
                _currentFrame = viewModel.Visualizer.RootTemplate;
                OutputTextBox.Document = new FlowDocument(new Paragraph(new Run(viewModel.Output)
                {
                    FontFamily = new FontFamily("Consolas")
                }));
                UpdateCurrentTemplate();
            }

            base.OnPropertyChanged(e);
        }
 private void HandleErrorsListBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     int minIndex = ErrorsListBox.SelectedIndex;
     TemplateMessage message = ErrorsListBox.SelectedItem as TemplateMessage;
     TemplateRuntimeMessage runtimeMessage = message as TemplateRuntimeMessage;
     if (runtimeMessage != null)
     {
         Interval interval = runtimeMessage.SourceInterval;
         _currentEvent = null;
         _currentFrame = runtimeMessage.Frame;
         UpdateCurrentTemplate();
         Highlight(TemplateTextBox.Document, interval);
     }
 }
        private void HandleOutputTextBoxSelectionChanged(object sender, RoutedEventArgs e)
        {
            _currentEvent = FindEventAtOutputLocation(ViewModel.AllEvents, OutputTextBox.Document.GetCharOffsetToPosition(OutputTextBox.CaretPosition));
            if (_currentEvent == null)
                _currentFrame = ViewModel.Visualizer.RootTemplate;
            else
                _currentFrame = _currentEvent.Frame;

            SetSelectionPath(ViewModel.TemplateCallHierarchy[0], _currentFrame.GetEvalTemplateEventStack(true));
            UpdateCurrentTemplate();
        }
 private void HandleCallHierarchyTreeViewSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
 {
     TemplateCallHierarchyViewModel selected = CallHierarchyTreeView.SelectedItem as TemplateCallHierarchyViewModel;
     if (selected != null && _currentFrame != selected.Frame)
     {
         _currentEvent = selected.Event;
         _currentFrame = selected.Frame;
         UpdateCurrentTemplate();
     }
 }