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

Last change on this file since 1705 was 1705, checked in by Paul Lelgemann, 12 years ago

o KeySearcher: improved visualization of local and distributed components

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