Changeset 2393


Ignore:
Timestamp:
Jan 19, 2011, 6:06:27 PM (10 years ago)
Author:
matkovic
Message:

-added collapse all / expand all button
-added aging in indicated by the ProgressBar color

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

Legend:

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

    r2330 r2393  
    1313        <Controls:ChunkSumConverter x:Key="ChunkSumConverter"/>
    1414        <Controls:StringLengthConverter x:Key="StringLengthConverter"/>
     15        <Controls:ColorToDateConverter x:Key="ColorToDateConverter"></Controls:ColorToDateConverter>
    1516        <g:WidthConverter x:Key="WidthConverter"></g:WidthConverter>
    1617        <AlternationConverter x:Key="TeamsBackgroundConverter">
     
    1920            <SolidColorBrush>Blue</SolidColorBrush>
    2021        </AlternationConverter>
     22
     23        <Style x:Key="ItemStyle" TargetType="TreeViewItem">
     24            <Setter x:Name="P" Property="IsExpanded" Value="True" />
     25        </Style>
     26
     27        <Style x:Key="ItemStyle2" TargetType="TreeViewItem">
     28            <Setter x:Name="P" Property="IsExpanded" Value="False" />
     29        </Style>
     30
    2131    </UserControl.Resources>
    2232   
     
    3242                    <RowDefinition ScrollViewer.VerticalScrollBarVisibility="Auto"/>
    3343                </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"/>
     44                <StackPanel Orientation="Horizontal">
     45                    <TextBlock Text="User/Host " Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
     46                </StackPanel>
     47                <TextBlock Text="Calculated Chunks" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
     48                <Button Content="Expand" Grid.Column="1" Grid.Row="0" Click="Button_Click" Width="50" HorizontalAlignment="Right"></Button>
    3649                <TreeView HorizontalAlignment="Stretch" Name="statisticsTree" VerticalAlignment="Stretch" ItemsSource="{Binding}" AlternationCount="3" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" >
    3750                    <TreeView.ItemTemplate>
     
    4457                                        </Grid>
    4558                                        <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" />
     59                                            <ProgressBar Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Value="{Binding Path=Value.Count, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter2}}" Maximum="1">
     60                                                <ProgressBar.Foreground>
     61                                                    <MultiBinding Converter="{StaticResource ResourceKey=ColorToDateConverter}">
     62                                                        <Binding Path="Value.Date" Mode="OneTime"></Binding>
     63                                                        <Binding RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type TreeViewItem}}" Path="(ItemsControl.AlternationIndex)"></Binding>
     64                                                    </MultiBinding>
     65                                                </ProgressBar.Foreground>
     66                                            </ProgressBar>
    4767                                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    4868                                                <TextBlock Text="{Binding Path=Value.Count, StringFormat=\{0\,-5\}}"/>
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml.cs

    r2330 r2393  
    6868            }
    6969        }
     70
     71        private void Button_Click(object sender, RoutedEventArgs e)
     72        {
     73            Button b = sender as Button;
     74
     75            if(statisticsTree.ItemContainerStyle == null)
     76            {
     77                b.Content = "Expand";
     78                statisticsTree.ItemContainerStyle = this.Resources["ItemStyle2"] as Style;
     79            }
     80
     81            if (statisticsTree.ItemContainerStyle.Equals(this.Resources["ItemStyle"] as Style))
     82            {
     83                b.Content = "Expand";
     84                statisticsTree.ItemContainerStyle = this.Resources["ItemStyle2"] as Style;
     85                return;
     86            }
     87
     88            if (statisticsTree.ItemContainerStyle.Equals(this.Resources["ItemStyle2"] as Style))
     89            {
     90                b.Content = "Collapse";
     91                statisticsTree.ItemContainerStyle = this.Resources["ItemStyle"] as Style;
     92                return;
     93            }
     94        }
    7095    }
    7196
     
    201226        }
    202227    }
     228
     229    public class ColorToDateConverter : IMultiValueConverter
     230    {
     231        public static SolidColorBrush[] AlternationColors = {Brushes.LimeGreen, Brushes.Red, Brushes.Blue};
     232
     233        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
     234        {
     235            DateTime date = (DateTime) values[0];
     236            SolidColorBrush brush = ColorToDateConverter.AlternationColors[(int) values[1]].Clone();
     237            TimeSpan diff = DateTime.UtcNow.Subtract(date);
     238
     239            Color color;
     240            if (diff >= TimeSpan.FromDays(4))
     241            {
     242                color = Color.FromArgb(
     243                    (byte)50,
     244                    brush.Color.R,
     245                    brush.Color.G,
     246                    brush.Color.B);
     247
     248                brush.Color = color;
     249                return brush;
     250            }
     251
     252            if (diff >= TimeSpan.FromDays(3))
     253            {
     254                 color = Color.FromArgb(
     255                    (byte)100,
     256                    brush.Color.R,
     257                    brush.Color.G,
     258                    brush.Color.B);
     259
     260                brush.Color = color;
     261                return brush;
     262            }
     263
     264            if (diff >= TimeSpan.FromDays(2))
     265            {
     266                 color = Color.FromArgb(
     267                    (byte)150,
     268                    brush.Color.R,
     269                    brush.Color.G,
     270                    brush.Color.B);
     271
     272                brush.Color = color;
     273                return brush;
     274            }
     275
     276            if (diff >= TimeSpan.FromDays(1))
     277            {
     278                color = Color.FromArgb(
     279                    (byte)200,
     280                    brush.Color.R,
     281                    brush.Color.G,
     282                    brush.Color.B);
     283
     284                brush.Color = color;
     285                return brush;
     286            }
     287
     288            if (diff >= TimeSpan.FromDays(0))
     289            {
     290
     291                color = Color.FromArgb(
     292                    (byte)255,
     293                    brush.Color.R,
     294                    brush.Color.G,
     295                    brush.Color.B);
     296
     297                brush.Color = color;
     298                return brush;
     299            }
     300            return Brushes.AntiqueWhite;
     301        }
     302
     303        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
     304        {
     305            throw new NotImplementedException();
     306        }
     307    }
    203308    #endregion
    204309
Note: See TracChangeset for help on using the changeset viewer.