source: trunk/CrypPlugins/KeySearcher/Presentation/Controls/P2PQuickWatchPresentation.xaml @ 1707

Last change on this file since 1707 was 1707, checked in by Paul Lelgemann, 11 years ago

o KeySearcher: more precise statistics in the new visualization of distributed search

File size: 16.7 KB
Line 
1<UserControl x:Class="KeySearcherPresentation.Controls.P2PQuickWatchPresentation" 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:Converter="clr-namespace:KeySearcherConverter" mc:Ignorable="d" x:Name="P2PQuickWatch" d:DesignHeight="440" d:DesignWidth="600">
2        <UserControl.Resources>
3                <Converter:TrueToVisibleOrCollapsedConverter x:Key="TrueToVisibleOrCollapsedConverter" />
4        <Converter:LongToSizeMetricString x:Key="LongToSizeMetricString" />
5        <Converter:DateTimeConverter x:Key="DateTimeConverter" />
6        <Converter:TimeSpanToStringConverter x:Key="TimeSpanToStringConverter" />
7        <RotateTransform x:Key="HeaderRotate" Angle="270" />
8        <Style x:Key="ValueRow1">
9            <Setter Property="Label.Margin" Value="90,0,0,0" />
10        </Style>
11        <Style x:Key="ValueRow2">
12            <Setter Property="Label.Margin" Value="110,0,0,0" />
13        </Style>
14        <Style x:Key="ValueRow3">
15            <Setter Property="Label.Margin" Value="90,0,0,0" />
16        </Style>
17    </UserControl.Resources>
18        <Viewbox>
19                <Grid Width="646" >
20            <StackPanel>
21                <Border BorderBrush="Silver" BorderThickness="2,2,2,0" Visibility="{Binding IsSearchingForReservedNodes, FallbackValue=Collapsed, Converter={StaticResource TrueToVisibleOrCollapsedConverter}}">
22                                        <Grid Height="36" Background="#C8D1E3FF">
23                                                <Label Content="Endgame mode" Height="28" HorizontalAlignment="Center" VerticalAlignment="Center" />
24                                        </Grid>
25                                </Border>
26                                <Border BorderBrush="Silver" BorderThickness="2,2,2,2">
27                                        <Grid Height="48" Background="#AFE2E2FF">
28                        <Grid.RowDefinitions>
29                            <RowDefinition Height="48" />
30                        </Grid.RowDefinitions>
31                                                <Grid.ColumnDefinitions>
32                            <ColumnDefinition Width="26" />
33                            <ColumnDefinition Width="180" />
34                                                        <ColumnDefinition Width="*" />
35                            <ColumnDefinition Width="*" />
36                                                </Grid.ColumnDefinitions>
37                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Grid.Column="0" Background="#FF5C5CFF">
38                            <Label Content="Static" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
39                        </Border>
40                        <Label Content="Total chunks:" VerticalAlignment="Center" Grid.Column="1" />
41                        <Label Content="-" Name="TotalAmountOfChunks" Style="{StaticResource ValueRow1}" VerticalAlignment="Center" Grid.Column="1" />
42                        <Label Content="Keys per chunk:" VerticalAlignment="Center" Grid.Column="2" />
43                        <Label Content="-" Name="KeysPerChunk" Style="{StaticResource ValueRow2}" VerticalAlignment="Center" Grid.Column="2" />
44                        <Label Content="Tested bits:" VerticalAlignment="Center" Grid.Column="3" />
45                        <Label Content="-" Name="TestedBits" Style="{StaticResource ValueRow3}" VerticalAlignment="Center" Grid.Column="3" />
46                                        </Grid>
47                                </Border>
48                                <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
49                    <Grid Height="52" Background="#AFAAE1E8">
50                                                <Grid.ColumnDefinitions>
51                            <ColumnDefinition Width="26" />
52                                                        <ColumnDefinition Width="180" />
53                                                        <ColumnDefinition Width="*" />
54                            <ColumnDefinition Width="*" />
55                                                </Grid.ColumnDefinitions>
56                        <Grid.RowDefinitions>
57                            <RowDefinition Height="26" />
58                            <RowDefinition Height="26" />
59                        </Grid.RowDefinitions>
60                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Background="#FF099BA7" Grid.Column="0" Grid.RowSpan="2">
61                            <Label Content="Global" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
62                        </Border>
63                                                <Label Content="Participants:" Grid.Column="1" />
64                        <Label Content="{Binding TotalAmountOfParticipants, FallbackValue=-}" Style="{StaticResource ValueRow1}" Grid.Column="1" />
65                        <Label Content="Start:" Grid.Column="2" />
66                        <Label Content="{Binding StartDate, FallbackValue=-, Converter={StaticResource DateTimeConverter}}" Style="{StaticResource ValueRow2}" Grid.Column="2" />
67                        <Label Content="End:" HorizontalAlignment="Left" Grid.Column="3" />
68                        <Label Content="{Binding EstimatedFinishDate, FallbackValue=-}" Style="{StaticResource ValueRow3}" Grid.Column="3" />
69                        <Label Content="Elapsed:" Grid.Column="2" Grid.Row="2" />
70                        <Label Content="{Binding ElapsedTime, FallbackValue=-, Converter={StaticResource TimeSpanToStringConverter}}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="2" />
71                        <Label Content="Remaining:" Grid.Column="3" Grid.Row="2" />
72                        <Label Content="{Binding RemainingTimeTotal, FallbackValue=-, Converter={StaticResource TimeSpanToStringConverter}}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="2" />
73                    </Grid>
74                                </Border>
75                                <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
76                    <Grid Height="78" Background="#AFFFD4C1">
77                                                <Grid.ColumnDefinitions>
78                            <ColumnDefinition Width="26" />
79                            <ColumnDefinition Width="180" />
80                            <ColumnDefinition Width="*" />
81                            <ColumnDefinition Width="*" />
82                                                </Grid.ColumnDefinitions>
83                                                <Grid.RowDefinitions>
84                                                        <RowDefinition Height="26" />
85                                                        <RowDefinition Height="26" />
86                            <RowDefinition Height="26" />
87                                                </Grid.RowDefinitions>
88                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Background="#FFE56B00" Grid.Column="0" Grid.RowSpan="3">
89                            <Label Content="Local" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
90                        </Border>
91                                                <Label Content="Finished chunks:" Grid.Column="1" Grid.Row="0" />
92                        <Label Content="{Binding LocalFinishedChunks, FallbackValue=-}" Style="{StaticResource ValueRow1}" Grid.Column="1" Grid.Row="0" />
93                        <Label Content="Keys / sec:" Grid.Column="2" Grid.Row="0" />
94                        <Label Content="{Binding KeysPerSecond, FallbackValue=-}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="0" />
95                        <Label Content="Current chunk:" Grid.Column="3" />
96                        <Label Content="{Binding CurrentChunk, FallbackValue=-}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="0" />
97                        <Grid  Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1">
98                            <ProgressBar Value="{Binding ProgressOfCurrentChunk, FallbackValue=0}" IsIndeterminate="{Binding IsCurrentProgressIndeterminate, FallbackValue=false}" Maximum="1" />
99                            <Viewbox>
100                                <Label Content="{Binding RemainingTime, Converter={StaticResource TimeSpanToStringConverter}}" HorizontalAlignment="Center" Grid.Column="2" Grid.Row="1" />
101                            </Viewbox>
102                        </Grid>
103                        <Label Content="{Binding CurrentOperation}" HorizontalAlignment="Center" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" FontWeight="Normal" />
104                    </Grid>
105                                </Border>
106                <Border BorderBrush="Silver" BorderThickness="2,0,2,2" Visibility="{Binding IsVerboseEnabled, ElementName=P2PQuickWatch, Converter={StaticResource TrueToVisibleOrCollapsedConverter}}">
107                    <Grid Height="78" Background="#AFF9C7FF">
108                        <Grid.ColumnDefinitions>
109                            <ColumnDefinition Width="26" />
110                            <ColumnDefinition Width="180" />
111                            <ColumnDefinition Width="*" />
112                            <ColumnDefinition Width="*" />
113                        </Grid.ColumnDefinitions>
114                        <Grid.RowDefinitions>
115                            <RowDefinition Height="26" />
116                            <RowDefinition Height="26" />
117                            <RowDefinition Height="26" />
118                        </Grid.RowDefinitions>
119                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Background="#FF8309A7" Grid.Column="0" Grid.RowSpan="3">
120                            <Label Content="Requests" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
121                        </Border>
122                        <Label Content="Store:" Grid.Column="1" Grid.Row="0" />
123                        <Label Content="{Binding StoreRequests, FallbackValue=-}" Style="{StaticResource ValueRow1}" Grid.Column="1" Grid.Row="0" />
124                        <Label Content="Retrieve:" Grid.Column="2" Grid.Row="0" />
125                        <Label Content="{Binding RetrieveRequests, FallbackValue=-}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="0" />
126                        <Label Content="Remove:" Grid.Column="3" Grid.Row="0" />
127                        <Label Content="{Binding RemoveRequests, FallbackValue=-}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="0" />
128                        <Label Content="Total:" Grid.Column="2" Grid.Row="1" />
129                        <Label Content="{Binding TotalDhtRequests, FallbackValue=-}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="1" />
130                        <Label Content="Per chunk:" Grid.Column="3" Grid.Row="1" />
131                        <Label Content="{Binding RequestsPerNode, FallbackValue=-}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="1" />
132                        <Label Content="Overhead (abs):" Grid.Column="2" Grid.Row="2" />
133                        <Label Content="{Binding DhtOverheadInReadableTime, FallbackValue=-, Converter={StaticResource TimeSpanToStringConverter}}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="2" />
134                        <Label Content="Overhead (%):" Grid.Column="3" Grid.Row="2" />
135                        <Label Content="{Binding DhtOverheadInPercent, FallbackValue=-}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="2" />
136                    </Grid>
137                </Border>
138                <Border BorderBrush="Silver" BorderThickness="2,0,2,2" Visibility="{Binding IsVerboseEnabled, ElementName=P2PQuickWatch, Converter={StaticResource TrueToVisibleOrCollapsedConverter}}">
139                                        <Grid Height="52" Background="#AFE2E2E2">
140                                                <Grid.ColumnDefinitions>
141                            <ColumnDefinition Width="26" />
142                            <ColumnDefinition Width="180" />
143                            <ColumnDefinition Width="*" />
144                            <ColumnDefinition Width="*" />
145                                                </Grid.ColumnDefinitions>
146                                                <Grid.RowDefinitions>
147                                                        <RowDefinition Height="26" />
148                            <RowDefinition Height="26" />
149                                                </Grid.RowDefinitions>
150                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Background="#FF525252" Grid.Column="0" Grid.RowSpan="3">
151                            <Label Content="Traffic" FontSize="11" HorizontalAlignment="Center" Foreground="White" />
152                        </Border>
153                        <Label Content="Sent (payload):" Grid.Column="1" Grid.Row="0" />
154                        <Label Content="{Binding StoredBytes, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow1}" Grid.Column="1" Grid.Row="0" />
155                        <Label Content="Received (payload):" Grid.Column="2" Grid.Row="0" />
156                        <Label Content="{Binding RetrievedBytes, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="0" />
157                        <Label Content="Total (payload):" Grid.Column="3" Grid.Row="0" />
158                        <Label Content="{Binding TotalBytes, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="0" />
159                        <Label Content="Sent (link):" Grid.Column="1" Grid.Row="1" />
160                        <Label Content="{Binding SentBytesByLinkManager, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow1}"  Grid.Column="1" Grid.Row="1" />
161                        <Label Content="Received (link):" Grid.Column="2" Grid.Row="2" />
162                        <Label Content="{Binding ReceivedBytesByLinkManager, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow2}" Grid.Column="2" Grid.Row="1" />
163                        <Label Content="Total (link):" Grid.Column="3" Grid.Row="2" />
164                        <Label Content="{Binding TotalBytesByLinkManager, FallbackValue=-, Converter={StaticResource LongToSizeMetricString}}" Style="{StaticResource ValueRow3}" Grid.Column="3" Grid.Row="1" />
165                    </Grid>
166                                </Border>
167                <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
168                    <Grid>
169                        <Grid.ColumnDefinitions>
170                            <ColumnDefinition Width="26" />
171                            <ColumnDefinition Width="*" />
172                        </Grid.ColumnDefinitions>
173                        <Border BorderThickness="1" BorderBrush="Black" LayoutTransform="{StaticResource HeaderRotate}" Background="#FF479308" Grid.Column="0">
174                            <Label Content="Top Ten" FontSize="11" HorizontalAlignment="Center" Foreground="White" Width="50" />
175                        </Border>
176                        <ListView Name="ToplistView" Background="#AFE2FFCE" ItemsSource="{Binding TopList}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"  Height="120" Grid.Column="1">
177                            <ListView.View>
178                                <GridView>
179                                    <GridViewColumn Header="#" DisplayMemberBinding="{Binding Path=Ranking}" Width="25">
180                                        <GridViewColumn.CellTemplate>
181                                            <DataTemplate>
182                                                <Label />
183                                            </DataTemplate>
184                                        </GridViewColumn.CellTemplate>
185                                    </GridViewColumn>
186                                    <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}">
187                                        <GridViewColumn.CellTemplate>
188                                            <DataTemplate>
189                                                <Label />
190                                            </DataTemplate>
191                                        </GridViewColumn.CellTemplate>
192                                    </GridViewColumn>
193                                    <GridViewColumn Header="Text" DisplayMemberBinding="{Binding Path=Text}">
194                                        <GridViewColumn.CellTemplate>
195                                            <DataTemplate>
196                                                <Label />
197                                            </DataTemplate>
198                                        </GridViewColumn.CellTemplate>
199                                    </GridViewColumn>
200                                    <GridViewColumn Header="Key" DisplayMemberBinding="{Binding Path=Key}">
201                                        <GridViewColumn.CellTemplate>
202                                            <DataTemplate>
203                                                <Label />
204                                            </DataTemplate>
205                                        </GridViewColumn.CellTemplate>
206                                    </GridViewColumn>
207                                </GridView>
208                            </ListView.View>
209                        </ListView>
210                    </Grid>
211                </Border>
212            </StackPanel>
213                </Grid>
214        </Viewbox>
215</UserControl>
Note: See TracBrowser for help on using the repository browser.