Changeset 2330


Ignore:
Timestamp:
Jan 13, 2011, 5:50:25 PM (10 years ago)
Author:
nolte
Message:

Keysearcher-Statistic view update.

Location:
trunk/CrypPlugins/KeySearcher/Presentation/Controls
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml

    r2304 r2330  
    1111        <Controls:InformationToProgressConverter2 x:Key="InformationToProgressConverter2"/>
    1212        <Controls:MachineSumToProgressConverter x:Key="MachineSumToProgressConverter"/>
    13         <Controls:ChunkSumConverter x:Key="ChunkSumConverter"></Controls:ChunkSumConverter>
     13        <Controls:ChunkSumConverter x:Key="ChunkSumConverter"/>
     14        <Controls:StringLengthConverter x:Key="StringLengthConverter"/>
    1415        <g:WidthConverter x:Key="WidthConverter"></g:WidthConverter>
    1516        <AlternationConverter x:Key="TeamsBackgroundConverter">
     
    2223    <TabControl>
    2324        <TabItem Header="{Loc _Users_}">
    24             <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3">
    25                 <TreeView.ItemTemplate>
    26                     <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
    27                         <HierarchicalDataTemplate.ItemTemplate>
    28                             <DataTemplate>
    29                                 <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Date}">
    30                                     <Grid>
    31                                         <ProgressBar Foreground="{Binding RelativeSource={RelativeSource FindAncestor,  AncestorLevel=2, AncestorType={x:Type TreeViewItem}},Path=(ItemsControl.AlternationIndex),Converter={StaticResource ResourceKey=TeamsBackgroundConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
    32                                         <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    33                                             <TextBlock Text="Chunks: "/>
    34                                             <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
    35                                         </StackPanel>
    36                                     </Grid>
    37                                     <TextBlock Text="{Binding Path=Value.Hostname}" Grid.Column="3"/>
    38                                 </StackPanel>
    39                             </DataTemplate>
    40                         </HierarchicalDataTemplate.ItemTemplate>
     25            <Grid>
     26                <Grid.ColumnDefinitions>
     27                    <ColumnDefinition Width="120"/>
     28                    <ColumnDefinition/>
     29                </Grid.ColumnDefinitions>
     30                <Grid.RowDefinitions>
     31                    <RowDefinition Height="Auto"/>
     32                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
     33                </Grid.RowDefinitions>
     34                <TextBlock Text="User/Host " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center"/>
     35                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left"/>
     36                <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" >
     37                    <TreeView.ItemTemplate>
     38                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
     39                            <HierarchicalDataTemplate.ItemTemplate>
     40                                <DataTemplate>
     41                                    <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Date}">
     42                                        <Grid Width="70">
     43                                            <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
     44                                        </Grid>
     45                                        <Grid>
     46                                            <ProgressBar Foreground="{Binding RelativeSource={RelativeSource FindAncestor,  AncestorLevel=2, AncestorType={x:Type TreeViewItem}},Path=(ItemsControl.AlternationIndex),Converter={StaticResource ResourceKey=TeamsBackgroundConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
     47                                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
     48                                                <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
     49                                            </StackPanel>
     50                                        </Grid>
     51                                    </StackPanel>
     52                                </DataTemplate>
     53                            </HierarchicalDataTemplate.ItemTemplate>
    4154
    4255
    43                         <StackPanel Orientation="Horizontal" Margin="1">
    44                             <Grid>
    45                                 <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" />
    46                                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    47                                     <TextBlock Text="{Loc Chunks_}"/>
    48                                     <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
    49                                 </StackPanel>
    50                             </Grid>
    51                             <TextBlock Text="{Binding Path=Key}"/>
    52                         </StackPanel>
    53                     </HierarchicalDataTemplate>
    54                 </TreeView.ItemTemplate>
    55             </TreeView>
     56                            <StackPanel Orientation="Horizontal" Margin="1">
     57                                <Grid Width="70">
     58                                    <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Key}"/>
     59                                </Grid>
     60                                <Grid>
     61                                    <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" />
     62                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
     63                                        <TextBlock Text="{Loc Total_}"/>
     64                                        <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
     65                                    </StackPanel>
     66                                </Grid>
     67                            </StackPanel>
     68                        </HierarchicalDataTemplate>
     69                    </TreeView.ItemTemplate>
     70                </TreeView>
     71            </Grid>
     72           
     73
    5674        </TabItem>
    5775       
    5876        <TabItem Header="{Loc _Machines_}">
    59             <TreeView HorizontalAlignment="Stretch" Name="machineTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3">
    60                 <TreeView.ItemTemplate>
    61                     <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
    62                         <!--<HierarchicalDataTemplate.ItemTemplate>
     77            <Grid>
     78                <Grid.ColumnDefinitions>
     79                    <ColumnDefinition Width="120"/>
     80                    <ColumnDefinition/>
     81                </Grid.ColumnDefinitions>
     82                <Grid.RowDefinitions>
     83                    <RowDefinition Height="Auto"/>
     84                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
     85                </Grid.RowDefinitions>
     86                <TextBlock Text="Hostname " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center"/>
     87                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left"/>
     88                <TreeView HorizontalAlignment="Stretch" Name="machineTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
     89                    <TreeView.ItemTemplate>
     90                        <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
     91                            <!--<HierarchicalDataTemplate.ItemTemplate>
    6392                            <DataTemplate>
    6493                                <TextBlock Text="{Binding Path=Users}"/>
    6594                            </DataTemplate>
    6695                        </HierarchicalDataTemplate.ItemTemplate>-->
    67                        
    68                         <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Users}">
    69                             <Grid>
    70                                 <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
    71                                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    72                                     <TextBlock Text="{Loc Chunks_}"/>
    73                                     <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
    74                                 </StackPanel>
    75                             </Grid>
    76                             <TextBlock Text="{Binding Path=Value.Hostname}"/>
    77                         </StackPanel>
    78                     </HierarchicalDataTemplate>
    79                 </TreeView.ItemTemplate>
    80             </TreeView>
     96
     97                            <StackPanel Orientation="Horizontal" Margin="1" ToolTip="{Binding Path=Value.Users}">
     98                                <Grid Width="70">
     99                                    <TextBlock Text="{Binding Path=Value.Hostname, Converter={StaticResource ResourceKey=StringLengthConverter}}" HorizontalAlignment="Center" ToolTip="{Binding Path=Value.Hostname}"/>
     100                                </Grid>
     101                                <Grid>
     102                                    <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
     103                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
     104                                        <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
     105                                    </StackPanel>
     106                                </Grid>
     107                            </StackPanel>
     108                        </HierarchicalDataTemplate>
     109                    </TreeView.ItemTemplate>
     110                </TreeView>
     111            </Grid>
    81112        </TabItem>
    82113    </TabControl>
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml.cs

    r2304 r2330  
    3232            ((InformationToProgressConverter2)Resources["InformationToProgressConverter2"]).StatisticsPresentation = this;
    3333            ((ChunkSumConverter)Resources["ChunkSumConverter"]).StatisticsPresentation = this;
     34            ((StringLengthConverter)Resources["StringLengthConverter"]).StatisticsPresentation = this;
    3435            ((MachineSumToProgressConverter)Resources["MachineSumToProgressConverter"]).StatisticsPresentation = this;
    3536        }
     
    145146    }
    146147
     148    [ValueConversion(typeof(string), typeof(string))]
     149    class StringLengthConverter : IValueConverter
     150    {
     151        public StatisticsPresentation StatisticsPresentation { get; set; }
     152
     153        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     154        {
     155            if (StatisticsPresentation != null)
     156            {
     157                string name = (string)value;
     158               
     159                if(name.Length < 13)
     160                {
     161                    return name;
     162                }
     163                else
     164                {
     165                    return string.Format("{0}...", name.Substring(0, 9));
     166                }
     167            }
     168            else
     169            {
     170                return "";
     171            }
     172        }
     173
     174        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     175        {
     176            throw new NotImplementedException();
     177        }
     178    }
     179
    147180    [ValueConversion(typeof(Int32), typeof(Double))]
    148181    class InformationToProgressConverter2 : IValueConverter
Note: See TracChangeset for help on using the changeset viewer.