|
|
|
@ -2,58 +2,129 @@ |
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
|
|
xmlns:vm="clr-namespace:Avalonia.Diagnostics.ViewModels" |
|
|
|
xmlns:conv="clr-namespace:Avalonia.Diagnostics.Converters" |
|
|
|
x:Class="Avalonia.Diagnostics.Views.EventsPageView"> |
|
|
|
<UserControl.Resources> |
|
|
|
<conv:BoolToBrushConverter x:Key="boolToBrush" Brush="#d9ffdc"/> |
|
|
|
</UserControl.Resources> |
|
|
|
<Grid ColumnDefinitions="*,4,3*"> |
|
|
|
<TreeView Name="tree" Items="{Binding Nodes}" SelectedItem="{Binding SelectedNode, Mode=TwoWay}" |
|
|
|
Grid.RowSpan="2"> |
|
|
|
<TreeView.DataTemplates> |
|
|
|
<TreeDataTemplate DataType="vm:EventTreeNodeBase" |
|
|
|
ItemsSource="{Binding Children}"> |
|
|
|
<CheckBox Content="{Binding Text}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" /> |
|
|
|
</TreeDataTemplate> |
|
|
|
</TreeView.DataTemplates> |
|
|
|
<TreeView.Styles> |
|
|
|
<Style Selector="TreeViewItem"> |
|
|
|
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> |
|
|
|
</Style> |
|
|
|
</TreeView.Styles> |
|
|
|
</TreeView> |
|
|
|
x:Class="Avalonia.Diagnostics.Views.EventsPageView" |
|
|
|
Margin="2"> |
|
|
|
<UserControl.Styles> |
|
|
|
<Style Selector="TextBlock.nav" > |
|
|
|
<Setter Property="TextDecorations"> |
|
|
|
<TextDecorationCollection> |
|
|
|
<TextDecoration Location="Underline" Stroke="Black" StrokeThickness="1" StrokeDashArray="2,2"/> |
|
|
|
</TextDecorationCollection> |
|
|
|
</Setter> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style Selector="TextBlock.nav:pointerover" > |
|
|
|
<Setter Property="Foreground" Value="{DynamicResource ThemeAccentBrush}" /> |
|
|
|
<Setter Property="Cursor" Value="Help" /> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style Selector="ListBoxItem" > |
|
|
|
<Setter Property="BorderThickness" Value="1" /> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style Selector="ListBoxItem:selected /template/ ContentPresenter" > |
|
|
|
<Setter Property="BorderBrush" Value="Black" /> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style Selector="ListBoxItem.handled" > |
|
|
|
<Setter Property="Background" Value="#d9ffdc" /> |
|
|
|
</Style> |
|
|
|
</UserControl.Styles> |
|
|
|
|
|
|
|
<Grid ColumnDefinitions="1.1*,4,3*"> |
|
|
|
|
|
|
|
<Grid Grid.Column="0" RowDefinitions="Auto,*,Auto"> |
|
|
|
|
|
|
|
<TextBox Classes="clearButton" Grid.Row="0" Margin="0,0,0,2" Text="{Binding EventTypeFilter}" Watermark="Search event types" /> |
|
|
|
|
|
|
|
<TreeView Grid.Row="1" Items="{Binding Nodes}" SelectedItem="{Binding SelectedNode, Mode=TwoWay}" > |
|
|
|
<TreeView.DataTemplates> |
|
|
|
<TreeDataTemplate DataType="vm:EventTreeNodeBase" |
|
|
|
ItemsSource="{Binding Children}"> |
|
|
|
<CheckBox Content="{Binding Text}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" /> |
|
|
|
</TreeDataTemplate> |
|
|
|
</TreeView.DataTemplates> |
|
|
|
<TreeView.Styles> |
|
|
|
<Style Selector="TreeViewItem"> |
|
|
|
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> |
|
|
|
<Setter Property="IsVisible" Value="{Binding IsVisible}" /> |
|
|
|
</Style> |
|
|
|
</TreeView.Styles> |
|
|
|
</TreeView> |
|
|
|
|
|
|
|
<StackPanel Grid.Row="2" Margin="0,2" Orientation="Horizontal" Spacing="2"> |
|
|
|
<Button Content="Disable all" Command="{Binding DisableAll}" /> |
|
|
|
<Button Content="Enable default" Command="{Binding EnableDefault}" /> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
|
|
|
|
<GridSplitter Width="4" Grid.Column="1" /> |
|
|
|
|
|
|
|
<Grid RowDefinitions="*,4,2*,Auto" Grid.Column="2"> |
|
|
|
<ListBox Name="eventsList" Items="{Binding RecordedEvents}" |
|
|
|
|
|
|
|
<ListBox Name="EventsList" Items="{Binding RecordedEvents}" |
|
|
|
SelectedItem="{Binding SelectedEvent, Mode=TwoWay}"> |
|
|
|
|
|
|
|
<ListBox.ItemTemplate> |
|
|
|
<DataTemplate> |
|
|
|
<TextBlock Background="{Binding IsHandled, Converter={StaticResource boolToBrush}}" |
|
|
|
Text="{Binding DisplayText}" /> |
|
|
|
<ListBoxItem Classes.handled="{Binding IsHandled}"> |
|
|
|
<Grid ColumnDefinitions="Auto,Auto,*,Auto"> |
|
|
|
|
|
|
|
<StackPanel Grid.Column="0" Spacing="2" Orientation="Horizontal" > |
|
|
|
<TextBlock Tag="{Binding Event}" DoubleTapped="NavigateTo" Text="{Binding Event.Name}" FontWeight="Bold" Classes="nav" /> |
|
|
|
<TextBlock Text="on" /> |
|
|
|
<TextBlock Tag="{Binding Originator}" DoubleTapped="NavigateTo" Text="{Binding Originator.HandlerName}" Classes="nav" /> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
<StackPanel Margin="2,0,0,0" Grid.Column="1" Spacing="2" Orientation="Horizontal" IsVisible="{Binding IsHandled}" > |
|
|
|
<TextBlock Text="::" /> |
|
|
|
<TextBlock Text="Handled by" /> |
|
|
|
<TextBlock Tag="{Binding HandledBy}" DoubleTapped="NavigateTo" Text="{Binding HandledBy.HandlerName}" Classes="nav" /> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
<StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right"> |
|
|
|
<TextBlock Text="Routing (" /> |
|
|
|
<TextBlock Text="{Binding Event.RoutingStrategies}"/> |
|
|
|
<TextBlock Text=")"/> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
</ListBoxItem> |
|
|
|
</DataTemplate> |
|
|
|
</ListBox.ItemTemplate> |
|
|
|
</ListBox> |
|
|
|
|
|
|
|
<GridSplitter Height="4" Grid.Row="1" /> |
|
|
|
|
|
|
|
<DockPanel Grid.Row="2" LastChildFill="True"> |
|
|
|
<TextBlock DockPanel.Dock="Top" FontSize="16" Text="Event chain:" /> |
|
|
|
|
|
|
|
<ListBox Items="{Binding SelectedEvent.EventChain}"> |
|
|
|
<ListBox.ItemTemplate> |
|
|
|
<DataTemplate> |
|
|
|
<StackPanel Orientation="Horizontal" |
|
|
|
Background="{Binding Handled, Converter={StaticResource boolToBrush}}"> |
|
|
|
<TextBlock Text="{Binding Route}" /> |
|
|
|
<TextBlock Text=": " /> |
|
|
|
<TextBlock Text="{Binding HandlerName}" /> |
|
|
|
<TextBlock Text=" handled: " /> |
|
|
|
<TextBlock Text="{Binding Handled}" /> |
|
|
|
</StackPanel> |
|
|
|
<ListBoxItem Classes.handled="{Binding Handled}"> |
|
|
|
<StackPanel Orientation="Vertical"> |
|
|
|
|
|
|
|
<Rectangle IsVisible="{Binding BeginsNewRoute}" StrokeDashArray="2,2" StrokeThickness="1" Stroke="Gray" /> |
|
|
|
|
|
|
|
<StackPanel Orientation="Horizontal" Spacing="2"> |
|
|
|
<TextBlock Text="{Binding Route}" FontWeight="Bold" /> |
|
|
|
<TextBlock Tag="{Binding}" DoubleTapped="NavigateTo" Text="{Binding HandlerName}" Classes="nav" /> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
</ListBoxItem> |
|
|
|
</DataTemplate> |
|
|
|
</ListBox.ItemTemplate> |
|
|
|
</ListBox> |
|
|
|
|
|
|
|
</DockPanel> |
|
|
|
<StackPanel Orientation="Horizontal" Grid.Row="3"> |
|
|
|
<Button Content="Clear" Margin="3" Command="{Binding Clear}" /> |
|
|
|
|
|
|
|
<StackPanel Orientation="Horizontal" Grid.Row="3" Spacing="2" Margin="0,2"> |
|
|
|
<Button Content="Clear" Command="{Binding Clear}" /> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
</Grid> |
|
|
|
</UserControl> |
|
|
|
|