/** 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(); } }