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

Last change on this file since 2506 was 2506, checked in by nolte, 11 years ago

Statistic Information Tab -> first stats added.

File size: 13.6 KB
Line 
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"
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"
8             d:DesignHeight="300" d:DesignWidth="300">
9    <UserControl.Resources>
10        <Controls:InformationToProgressConverter x:Key="InformationToProgressConverter"/>
11        <Controls:InformationToProgressConverter2 x:Key="InformationToProgressConverter2"/>
12        <Controls:MachineSumToProgressConverter x:Key="MachineSumToProgressConverter"/>
13        <Controls:ChunkSumConverter x:Key="ChunkSumConverter"/>
14        <Controls:StringLengthConverter x:Key="StringLengthConverter"/>
15        <Controls:ColorToDateConverter x:Key="ColorToDateConverter"></Controls:ColorToDateConverter>
16        <RotateTransform x:Key="HeaderRotate" Angle="270" />
17        <g:WidthConverter x:Key="WidthConverter"></g:WidthConverter>
18        <AlternationConverter x:Key="TeamsBackgroundConverter">
19            <SolidColorBrush>LimeGreen</SolidColorBrush>
20            <SolidColorBrush>Red</SolidColorBrush>
21            <SolidColorBrush>Blue</SolidColorBrush>
22        </AlternationConverter>
23
24        <Style x:Key="ItemStyle" TargetType="TreeViewItem">
25            <Setter x:Name="P" Property="IsExpanded" Value="True" />
26        </Style>
27
28        <Style x:Key="ItemStyle2" TargetType="TreeViewItem">
29            <Setter x:Name="P" Property="IsExpanded" Value="False" />
30        </Style>
31
32    </UserControl.Resources>
33   
34    <TabControl>
35        <TabItem Header="{Loc _Information_}">
36            <Viewbox>
37                <Grid Width="400">
38                    <StackPanel>
39                        <Border BorderBrush="Silver" BorderThickness="2,2,2,2">
40                            <Grid Height="175" Background="#AFE2E2FF">
41                                <Grid.RowDefinitions>
42                                    <RowDefinition Height="35" />
43                                    <RowDefinition Height="35" />
44                                    <RowDefinition Height="35" />
45                                    <RowDefinition Height="35" />
46                                    <RowDefinition Height="35" />
47                                </Grid.RowDefinitions>
48                                <Grid.ColumnDefinitions>
49                                    <ColumnDefinition Width="26" />
50                                    <ColumnDefinition Width="*" />
51                                </Grid.ColumnDefinitions>
52                                <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Grid.Column="0" Grid.RowSpan="5" Background="#FF5C5CFF">
53                                    <Label Content="{Loc Aggregate_Statistics_}" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
54                                </Border>
55                                <Label Content="{Loc Total__Blocks__to__Search_}" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" />
56                                <Label Content="-" Name="TotalAmountOfBlocks" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
57                                <Label Content="{Loc Total__Blocks__Tested_}" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" />
58                                <Label Content="-" Name="TotalBlocksTested" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
59                                <Label Content="{Loc Total__Keys__to_Search_}" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1" />
60                                <Label Content="-" Name="TotalAmountOfKeys" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
61                                <Label Content="{Loc Total__Keys__Tested_}" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1" />
62                                <Label Content="-" Name="TotalKeysTested" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
63                                <Label Content="{Loc Under__Construction_}" VerticalAlignment="Center" Grid.Row="4" Grid.Column="1" />
64                            </Grid>
65                        </Border>
66
67                        <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
68                            <Grid Height="160" Background="#AFAAE1E8">
69                                <Grid.RowDefinitions>
70                                    <RowDefinition Height="35" />
71                                    <RowDefinition Height="*" />
72                                </Grid.RowDefinitions>
73                                <Grid.ColumnDefinitions>
74                                    <ColumnDefinition Width="26" />
75                                    <ColumnDefinition Width="*" />
76                                </Grid.ColumnDefinitions>
77                                <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Grid.Column="0" Grid.RowSpan="4" Background="#FF099BA7">
78                                    <Label Content="{Loc Current__Information_}" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
79                                </Border>
80                                <Label Content="{Loc Under__Construction_}" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" />
81                            </Grid>
82                        </Border>
83                   </StackPanel>
84                </Grid>
85            </Viewbox>
86        </TabItem>
87        <TabItem Header="{Loc _Users_}">
88            <Grid>
89                <Grid.ColumnDefinitions>
90                    <ColumnDefinition Width="120"/>
91                    <ColumnDefinition/>
92                </Grid.ColumnDefinitions>
93                <Grid.RowDefinitions>
94                    <RowDefinition Height="Auto"/>
95                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
96                </Grid.RowDefinitions>
97                <StackPanel Orientation="Horizontal">
98                    <TextBlock Text="User/Host " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
99                </StackPanel>
100                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
101                <Button Content="Expand" Grid.Column="1" Grid.Row="0" Click="Button_Click" Width="50" HorizontalAlignment="Right"></Button>
102                <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" >
103                    <TreeView.ItemTemplate>
104                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
105                            <HierarchicalDataTemplate.ItemTemplate>
106                                <DataTemplate>
107                                    <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Date}">
108                                        <Grid Width="70">
109                                            <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
110                                        </Grid>
111                                        <Grid>
112                                            <ProgressBar Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Maximum="1">
113                                                <ProgressBar.Foreground>
114                                                    <MultiBinding Converter="{StaticResource ResourceKey=ColorToDateConverter}">
115                                                        <Binding Path="Value.Date" Mode="OneTime"></Binding>
116                                                        <Binding RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type TreeViewItem}}" Path="(ItemsControl.AlternationIndex)"></Binding>
117                                                    </MultiBinding>
118                                                </ProgressBar.Foreground>
119                                            </ProgressBar>
120                                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
121                                                <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
122                                            </StackPanel>
123                                        </Grid>
124                                    </StackPanel>
125                                </DataTemplate>
126                            </HierarchicalDataTemplate.ItemTemplate>
127
128
129                            <StackPanel Orientation="Horizontal" Margin="1">
130                                <Grid Width="70">
131                                    <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Key}"/>
132                                </Grid>
133                                <Grid>
134                                    <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" />
135                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
136                                        <TextBlock Text="{Loc Total_}"/>
137                                        <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
138                                    </StackPanel>
139                                </Grid>
140                            </StackPanel>
141                        </HierarchicalDataTemplate>
142                    </TreeView.ItemTemplate>
143                </TreeView>
144            </Grid>
145           
146
147        </TabItem>
148       
149        <TabItem Header="{Loc _Machines_}">
150            <Grid>
151                <Grid.ColumnDefinitions>
152                    <ColumnDefinition Width="120"/>
153                    <ColumnDefinition/>
154                </Grid.ColumnDefinitions>
155                <Grid.RowDefinitions>
156                    <RowDefinition Height="Auto"/>
157                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
158                </Grid.RowDefinitions>
159                <TextBlock Text="Hostname " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center"/>
160                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left"/>
161                <TreeView HorizontalAlignment="Stretch" Name="machineTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
162                    <TreeView.ItemTemplate>
163                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
164                            <!--<HierarchicalDataTemplate.ItemTemplate>
165                            <DataTemplate>
166                                <TextBlock Text="{Binding Path=Users}"/>
167                            </DataTemplate>
168                        </HierarchicalDataTemplate.ItemTemplate>-->
169
170                            <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Users}">
171                                <Grid Width="70">
172                                    <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
173                                </Grid>
174                                <Grid>
175                                    <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
176                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
177                                        <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
178                                    </StackPanel>
179                                </Grid>
180                            </StackPanel>
181                        </HierarchicalDataTemplate>
182                    </TreeView.ItemTemplate>
183                </TreeView>
184            </Grid>
185        </TabItem>
186    </TabControl>
187</UserControl>
Note: See TracBrowser for help on using the repository browser.