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

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

Added more Information to the Information-Statistic Tab

File size: 15.1 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="180" Background="#AFE2E2FF">
41                                <Grid.RowDefinitions>
42                                    <RowDefinition Height="30" />
43                                    <RowDefinition Height="30" />
44                                    <RowDefinition Height="30" />
45                                    <RowDefinition Height="30" />
46                                    <RowDefinition Height="30" />
47                                    <RowDefinition Height="30" />
48                                </Grid.RowDefinitions>
49                                <Grid.ColumnDefinitions>
50                                    <ColumnDefinition Width="26" />
51                                    <ColumnDefinition Width="*" />
52                                </Grid.ColumnDefinitions>
53                                <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Grid.Column="0" Grid.RowSpan="6" Background="#FF5C5CFF">
54                                    <Label Content="{Loc Aggregate_Statistics_}" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
55                                </Border>
56                                <Label Content="{Loc Total__Blocks__to__Search_}" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" />
57                                <Label Content="-" Name="TotalAmountOfBlocks" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
58                                <Label Content="{Loc Total__Blocks__Tested_}" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" />
59                                <Label Content="-" Name="TotalBlocksTested" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
60                                <Label Content="{Loc Total__Keys__to_Search_}" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1" />
61                                <Label Content="-" Name="TotalAmountOfKeys" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
62                                <Label Content="{Loc Total__Keys__Tested_}" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1" />
63                                <Label Content="-" Name="TotalKeysTested" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
64                                <Label Content="{Loc Working__Days_}" VerticalAlignment="Center" Grid.Row="4" Grid.Column="1" />
65                                <Label Content="- Days" Name="WorkingDays" VerticalAlignment="Center" Grid.Row="4" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
66                                <Label Content="{Loc Percent__Complete_}" VerticalAlignment="Center" Grid.Row="5" Grid.Column="1" />
67                                <Label Content="- %" Name="PercentsComplete" VerticalAlignment="Center" Grid.Row="5" Grid.Column="1" HorizontalContentAlignment="Right" Padding="5,5,20,5" />
68
69                            </Grid>
70                        </Border>
71
72                        <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
73                            <Grid Height="160" Background="#AFAAE1E8">
74                                <Grid.RowDefinitions>
75                                    <RowDefinition Height="40" />
76                                    <RowDefinition Height="25" />
77                                    <RowDefinition Height="40" />
78                                    <RowDefinition Height="25" />
79                                    <RowDefinition Height="30" />   
80                                </Grid.RowDefinitions>
81                                <Grid.ColumnDefinitions>
82                                    <ColumnDefinition Width="26" />
83                                    <ColumnDefinition Width="*" />
84                                </Grid.ColumnDefinitions>
85                                <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Grid.Column="0" Grid.RowSpan="5" Background="#FF099BA7">
86                                    <Label Content="{Loc AdditionalInformation_}" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
87                                </Border>
88                                <Label Content=" Average rate: - key/sec" Name="Rate" VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" HorizontalContentAlignment="Center" Padding="5,5,20,5" />
89                                <Label Content=" Top user: -" Name="BestUser" VerticalAlignment="Bottom" Grid.Row="1" Grid.Column="1" HorizontalContentAlignment="Center" Padding="5,5,20,5" />
90                                <Label Content=" - users are working on this job." Name="UserCount" VerticalAlignment="Top"  Grid.Row="2" Grid.Column="1" HorizontalContentAlignment="Center" Padding="5,5,20,5" />
91                                <Label Content=" Top machine: -" Name="BestMachine" VerticalAlignment="Bottom" Grid.Row="3" Grid.Column="1" HorizontalContentAlignment="Center" Padding="5,5,20,5" />
92                                <Label Content=" - machines are working on this job." Name="MachineCount" VerticalAlignment="Top"  Grid.Row="4" Grid.Column="1" HorizontalContentAlignment="Center" Padding="5,5,20,5" />                               
93                            </Grid>
94                        </Border>
95                   </StackPanel>
96                </Grid>
97            </Viewbox>
98        </TabItem>
99        <TabItem Header="{Loc _Users_}">
100            <Grid>
101                <Grid.ColumnDefinitions>
102                    <ColumnDefinition Width="120"/>
103                    <ColumnDefinition/>
104                </Grid.ColumnDefinitions>
105                <Grid.RowDefinitions>
106                    <RowDefinition Height="Auto"/>
107                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
108                </Grid.RowDefinitions>
109                <StackPanel Orientation="Horizontal">
110                    <TextBlock Text="User/Host " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
111                </StackPanel>
112                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
113                <Button Content="Expand" Grid.Column="1" Grid.Row="0" Click="Button_Click" Width="50" HorizontalAlignment="Right"></Button>
114                <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" >
115                    <TreeView.ItemTemplate>
116                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
117                            <HierarchicalDataTemplate.ItemTemplate>
118                                <DataTemplate>
119                                    <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Date}">
120                                        <Grid Width="70">
121                                            <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
122                                        </Grid>
123                                        <Grid>
124                                            <ProgressBar Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Maximum="1">
125                                                <ProgressBar.Foreground>
126                                                    <MultiBinding Converter="{StaticResource ResourceKey=ColorToDateConverter}">
127                                                        <Binding Path="Value.Date" Mode="OneTime"></Binding>
128                                                        <Binding RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type TreeViewItem}}" Path="(ItemsControl.AlternationIndex)"></Binding>
129                                                    </MultiBinding>
130                                                </ProgressBar.Foreground>
131                                            </ProgressBar>
132                                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
133                                                <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
134                                            </StackPanel>
135                                        </Grid>
136                                    </StackPanel>
137                                </DataTemplate>
138                            </HierarchicalDataTemplate.ItemTemplate>
139
140
141                            <StackPanel Orientation="Horizontal" Margin="1">
142                                <Grid Width="70">
143                                    <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Key}"/>
144                                </Grid>
145                                <Grid>
146                                    <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" />
147                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
148                                        <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
149                                    </StackPanel>
150                                </Grid>
151                            </StackPanel>
152                        </HierarchicalDataTemplate>
153                    </TreeView.ItemTemplate>
154                </TreeView>
155            </Grid>
156           
157
158        </TabItem>
159       
160        <TabItem Header="{Loc _Machines_}">
161            <Grid>
162                <Grid.ColumnDefinitions>
163                    <ColumnDefinition Width="120"/>
164                    <ColumnDefinition/>
165                </Grid.ColumnDefinitions>
166                <Grid.RowDefinitions>
167                    <RowDefinition Height="Auto"/>
168                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
169                </Grid.RowDefinitions>
170                <TextBlock Text="Hostname " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center"/>
171                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left"/>
172                <TreeView HorizontalAlignment="Stretch" Name="machineTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
173                    <TreeView.ItemTemplate>
174                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
175                            <!--<HierarchicalDataTemplate.ItemTemplate>
176                            <DataTemplate>
177                                <TextBlock Text="{Binding Path=Users}"/>
178                            </DataTemplate>
179                        </HierarchicalDataTemplate.ItemTemplate>-->
180
181                            <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Users}">
182                                <Grid Width="70">
183                                    <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
184                                </Grid>
185                                <Grid>
186                                    <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
187                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
188                                        <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
189                                    </StackPanel>
190                                </Grid>
191                            </StackPanel>
192                        </HierarchicalDataTemplate>
193                    </TreeView.ItemTemplate>
194                </TreeView>
195            </Grid>
196        </TabItem>
197    </TabControl>
198</UserControl>
Note: See TracBrowser for help on using the repository browser.