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

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

o KeySearcher: small visualization fixes

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