source: trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml @ 2393

Last change on this file since 2393 was 2393, checked in by matkovic, 11 years ago

-added collapse all / expand all button
-added aging in indicated by the ProgressBar color

File size: 9.4 KB
RevLine 
[2235]1<UserControl x:Class="KeySearcherPresentation.Controls.StatisticsPresentation"
2             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
[2285]5             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6             xmlns:g="clr-namespace:KeySearcher.P2P.Helper"
7             xmlns:Controls="clr-namespace:KeySearcherPresentation.Controls" xmlns:System="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
[2235]8             d:DesignHeight="300" d:DesignWidth="300">
[2260]9    <UserControl.Resources>
10        <Controls:InformationToProgressConverter x:Key="InformationToProgressConverter"/>
11        <Controls:InformationToProgressConverter2 x:Key="InformationToProgressConverter2"/>
[2293]12        <Controls:MachineSumToProgressConverter x:Key="MachineSumToProgressConverter"/>
[2330]13        <Controls:ChunkSumConverter x:Key="ChunkSumConverter"/>
14        <Controls:StringLengthConverter x:Key="StringLengthConverter"/>
[2393]15        <Controls:ColorToDateConverter x:Key="ColorToDateConverter"></Controls:ColorToDateConverter>
[2285]16        <g:WidthConverter x:Key="WidthConverter"></g:WidthConverter>
17        <AlternationConverter x:Key="TeamsBackgroundConverter">
18            <SolidColorBrush>LimeGreen</SolidColorBrush>
19            <SolidColorBrush>Red</SolidColorBrush>
20            <SolidColorBrush>Blue</SolidColorBrush>
21        </AlternationConverter>
[2393]22
23        <Style x:Key="ItemStyle" TargetType="TreeViewItem">
24            <Setter x:Name="P" Property="IsExpanded" Value="True" />
25        </Style>
26
27        <Style x:Key="ItemStyle2" TargetType="TreeViewItem">
28            <Setter x:Name="P" Property="IsExpanded" Value="False" />
29        </Style>
30
[2260]31    </UserControl.Resources>
32   
[2293]33    <TabControl>
[2295]34        <TabItem Header="{Loc _Users_}">
[2330]35            <Grid>
36                <Grid.ColumnDefinitions>
37                    <ColumnDefinition Width="120"/>
38                    <ColumnDefinition/>
39                </Grid.ColumnDefinitions>
40                <Grid.RowDefinitions>
41                    <RowDefinition Height="Auto"/>
42                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
43                </Grid.RowDefinitions>
[2393]44                <StackPanel Orientation="Horizontal">
45                    <TextBlock Text="User/Host " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
46                </StackPanel>
47                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
48                <Button Content="Expand" Grid.Column="1" Grid.Row="0" Click="Button_Click" Width="50" HorizontalAlignment="Right"></Button>
[2330]49                <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" >
50                    <TreeView.ItemTemplate>
51                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
52                            <HierarchicalDataTemplate.ItemTemplate>
53                                <DataTemplate>
54                                    <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Date}">
55                                        <Grid Width="70">
56                                            <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
57                                        </Grid>
58                                        <Grid>
[2393]59                                            <ProgressBar Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Maximum="1">
60                                                <ProgressBar.Foreground>
61                                                    <MultiBinding Converter="{StaticResource ResourceKey=ColorToDateConverter}">
62                                                        <Binding Path="Value.Date" Mode="OneTime"></Binding>
63                                                        <Binding RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type TreeViewItem}}" Path="(ItemsControl.AlternationIndex)"></Binding>
64                                                    </MultiBinding>
65                                                </ProgressBar.Foreground>
66                                            </ProgressBar>
[2330]67                                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
68                                                <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
69                                            </StackPanel>
70                                        </Grid>
71                                    </StackPanel>
72                                </DataTemplate>
73                            </HierarchicalDataTemplate.ItemTemplate>
[2285]74
75
[2330]76                            <StackPanel Orientation="Horizontal" Margin="1">
77                                <Grid Width="70">
78                                    <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Key}"/>
79                                </Grid>
80                                <Grid>
81                                    <ProgressBar x:Name="Bar" Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}},Path=(ItemsControl.AlternationIndex),Converter={StaticResource ResourceKey=TeamsBackgroundConverter}}" Value="{Binding Path=Value, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter}}" Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
82                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
83                                        <TextBlock Text="{Loc Total_}"/>
84                                        <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
85                                    </StackPanel>
86                                </Grid>
87                            </StackPanel>
88                        </HierarchicalDataTemplate>
89                    </TreeView.ItemTemplate>
90                </TreeView>
91            </Grid>
92           
93
[2293]94        </TabItem>
95       
[2295]96        <TabItem Header="{Loc _Machines_}">
[2330]97            <Grid>
98                <Grid.ColumnDefinitions>
99                    <ColumnDefinition Width="120"/>
100                    <ColumnDefinition/>
101                </Grid.ColumnDefinitions>
102                <Grid.RowDefinitions>
103                    <RowDefinition Height="Auto"/>
104                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
105                </Grid.RowDefinitions>
106                <TextBlock Text="Hostname " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center"/>
107                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left"/>
108                <TreeView HorizontalAlignment="Stretch" Name="machineTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
109                    <TreeView.ItemTemplate>
110                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
111                            <!--<HierarchicalDataTemplate.ItemTemplate>
[2293]112                            <DataTemplate>
113                                <TextBlock Text="{Binding Path=Users}"/>
114                            </DataTemplate>
115                        </HierarchicalDataTemplate.ItemTemplate>-->
[2330]116
117                            <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Users}">
118                                <Grid Width="70">
119                                    <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
120                                </Grid>
121                                <Grid>
122                                    <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
123                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
124                                        <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
125                                    </StackPanel>
126                                </Grid>
127                            </StackPanel>
128                        </HierarchicalDataTemplate>
129                    </TreeView.ItemTemplate>
130                </TreeView>
131            </Grid>
[2293]132        </TabItem>
133    </TabControl>
[2235]134</UserControl>
Note: See TracBrowser for help on using the repository browser.