src/StructuredLogViewer/Controls/BuildControl.xaml (128 lines of code) (raw):

<UserControl x:Class="StructuredLogViewer.Controls.BuildControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:StructuredLogViewer.Controls" xmlns:structuredLogViewer="clr-namespace:StructuredLogViewer" xmlns:structuredLogger="clr-namespace:Microsoft.Build.Logging.StructuredLogger;assembly=StructuredLogger" mc:Ignorable="d" d:DataContext="{d:DesignInstance structuredLogger:Build}" d:DesignHeight="300" d:DesignWidth="300"> <local:SplitterPanel Orientation="Vertical" FirstChildRelativeSize="*" SecondChildRelativeSize="50"> <local:SplitterPanel.FirstChild> <local:SplitterPanel FirstChildRelativeSize="1*" SecondChildRelativeSize="3*"> <local:SplitterPanel.FirstChild> <TabControl x:Name="leftPaneTabControl" TabStripPlacement="Bottom" Margin="0" Padding="0"> <TabItem x:Name="searchLogTab" Header="Search Log"> <local:SearchAndResultsControl x:Name="searchLogControl"></local:SearchAndResultsControl> </TabItem> <TabItem x:Name="propertiesAndItemsTab" Header="Properties and items"> <DockPanel> <Border DockPanel.Dock="Top" BorderThickness="0,0,0,1" Background="{DynamicResource Theme_InfoBarBackground}" BorderBrush="Gray" x:Name="projectContextBorder" Visibility="Collapsed" Padding="4,2,4,2" MinHeight="27"> <DockPanel> <TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" Text="Project: " /> <ContentControl Focusable="false" DockPanel.Dock="Top" VerticalAlignment="Center" x:Name="propertiesAndItemsContext" /> </DockPanel> </Border> <local:SearchAndResultsControl x:Name="propertiesAndItemsControl"></local:SearchAndResultsControl> </DockPanel> </TabItem> <TabItem x:Name="filesTab" Header="Files" Visibility="Collapsed"> <local:SearchAndResultsControl x:Name="filesTree"></local:SearchAndResultsControl> </TabItem> <TabItem x:Name="findInFilesTab" Header="Find in Files" Visibility="Collapsed"> <local:SearchAndResultsControl x:Name="findInFilesControl" WatermarkContent="Search in files"></local:SearchAndResultsControl> </TabItem> </TabControl> </local:SplitterPanel.FirstChild> <local:SplitterPanel.SecondChild> <local:SplitterPanel> <local:SplitterPanel.FirstChild> <TabControl x:Name="centralTabControl" TabStripPlacement="Bottom" SelectedIndex="0" MinWidth="10"> <TabItem x:Name="mainTreeTab" Header="Log"> <TreeView x:Name="treeView" BorderBrush="Transparent" BorderThickness="0" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling" TreeViewItem.Selected="TreeViewItem_Selected" ItemsSource="{Binding Children}" structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" /> </TabItem> <TabItem x:Name="timelineTab" Header="Timeline"> <Grid> <TextBlock x:Name="timelineWatermark" HorizontalAlignment="Center" VerticalAlignment="Center">Rendering timeline...</TextBlock> <local:TimelineControl x:Name="timeline" Visibility="Hidden" structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" /> </Grid> </TabItem> <TabItem x:Name="tracingTab" Header="Tracing"> <Grid> <TextBlock x:Name="tracingWatermark" HorizontalAlignment="Center" VerticalAlignment="Center">Rendering Trace...</TextBlock> <local:TracingControl x:Name="tracing" Visibility="Hidden" structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" /> </Grid> </TabItem> <TabItem x:Name="projectGraphTab" Header="Project Graph"> <Grid> <TextBlock x:Name="projectGraphWatermark" HorizontalAlignment="Center" VerticalAlignment="Center">Rendering graph...</TextBlock> <local:ProjectGraphControl x:Name="projectGraphControl" Visibility="Hidden"/> </Grid> </TabItem> </TabControl> </local:SplitterPanel.FirstChild> <local:SplitterPanel.SecondChild> <local:DocumentWell x:Name="documentWell" Visibility="Collapsed"></local:DocumentWell> </local:SplitterPanel.SecondChild> </local:SplitterPanel> </local:SplitterPanel.SecondChild> </local:SplitterPanel> </local:SplitterPanel.FirstChild> <local:SplitterPanel.SecondChild> <Border BorderBrush="Gray" BorderThickness="1"> <ScrollViewer> <ListBox x:Name="breadCrumb" BorderThickness="0" BorderBrush="Transparent" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="False" Background="{DynamicResource Theme_InfoBarBackground}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel IsItemsHost="True"/> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.Resources> <Style TargetType="Separator"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Polygon Points="0,0 3,3, 0,6" Stroke="{DynamicResource {x:Static SystemColors.InfoTextBrushKey}}" Fill="{DynamicResource {x:Static SystemColors.InfoTextBrushKey}}" /> </ControlTemplate> </Setter.Value> </Setter> </Style> </ListBox.Resources> </ListBox> </ScrollViewer> </Border> </local:SplitterPanel.SecondChild> </local:SplitterPanel> </UserControl>