Changeset 1030


Ignore:
Timestamp:
Dec 17, 2009, 4:13:02 PM (12 years ago)
Author:
kopal
Message:
  • KeySearcher Presentation improved a little
Location:
trunk/CrypPlugins/KeySearcher
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r1027 r1030  
    499499        private void showProgress(LinkedList<ValueKey> costList, BigInteger size, BigInteger keycounter, BigInteger doneKeys)
    500500        {
     501            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
     502
    501503            LinkedListNode<ValueKey> linkedListNode;
    502504            ProgressChanged(Math.Pow(10, keycounter.log(10) - size.log(10)), 1.0);
     
    548550                    }
    549551
    550                     ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).listbox.Items.Clear();
     552                    ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).entries.Clear();
    551553                    linkedListNode = costList.First;
    552                     System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
     554                   
    553555                    int i = 0;
    554556                    while (linkedListNode != null)
    555557                    {
    556558                        i++;
    557                         ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).listbox.Items.Add(i + ") " + Math.Round(linkedListNode.Value.value, 4) + " = " + linkedListNode.Value.key + " : \"" +
    558                             enc.GetString(linkedListNode.Value.decryption).Replace("\n", "").Replace("\r", "").Replace("\t", "") + "\"");
     559
     560                        ResultEntry entry = new ResultEntry();
     561                        entry.Ranking = "" + i;
     562                        entry.Value = "" + Math.Round(linkedListNode.Value.value,3);
     563                        entry.Key = linkedListNode.Value.key;
     564                        entry.Text = enc.GetString(linkedListNode.Value.decryption);
     565
     566                        ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).entries.Add(entry);
    559567                        linkedListNode = linkedListNode.Next;
    560568                    }
     
    569577                ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    570578                {
    571                     ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).listbox.Items.Clear();
    572                     linkedListNode = costList.First;
    573                     System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
     579                    ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).entries.Clear();
     580                    linkedListNode = costList.First;                   
    574581                    int i = 0;
     582
    575583                    while (linkedListNode != null)
    576584                    {
    577585                        i++;
    578                         ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).listbox.Items.Add(i + ") " + Math.Round(linkedListNode.Value.value, 4) + " = " + linkedListNode.Value.key + " : \"" +
    579                             enc.GetString(linkedListNode.Value.decryption).Replace("\n", "").Replace("\r", "").Replace("\t", "") + "\"");
     586
     587                        ResultEntry entry = new ResultEntry();
     588                        entry.Ranking = "" + i;
     589                        entry.Value = "" + Math.Round(linkedListNode.Value.value, 3);
     590                        entry.Key = linkedListNode.Value.key;
     591                        entry.Text = enc.GetString(linkedListNode.Value.decryption);
     592
     593                        ((KeySearcherQuickWatchPresentation)QuickWatchPresentation).entries.Add(entry);
    580594                        linkedListNode = linkedListNode.Next;
    581595                    }
     
    755769        };
    756770    }
     771
     772    /// <summary>
     773    /// Represents one entry in our result list
     774    /// </summary>
     775    public class ResultEntry
     776    {
     777        public string Ranking { get; set; }
     778        public string Value { get; set; }
     779        public string Key { get; set; }
     780        public string Text { get; set; }
     781
     782    }
    757783}
  • trunk/CrypPlugins/KeySearcher/KeySearcher.csproj

    r1027 r1030  
    5656      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    5757    </Reference>
     58    <Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    5859  </ItemGroup>
    5960  <ItemGroup>
  • trunk/CrypPlugins/KeySearcher/KeySearcherQuickWatchPresentation.xaml

    r1026 r1030  
    55    VerticalAlignment="Stretch"
    66    Background="White">
    7     <Canvas Name="Canvas">
    8     <Grid Background="White" Width="300" Name="Grid">
    9         <Grid.RowDefinitions>
    10             <RowDefinition/>
    11             <RowDefinition/>
    12             <RowDefinition/>
    13             <RowDefinition Height="80pt"/>           
    14         </Grid.RowDefinitions>
    15         <Grid.ColumnDefinitions>
    16             <ColumnDefinition/>
    17             <ColumnDefinition/>
    18         </Grid.ColumnDefinitions>
     7    <Canvas>
     8    <Grid>
     9            <Grid.RowDefinitions>
     10                <RowDefinition Height="80"/>
     11                <RowDefinition Height="*"/>
     12            </Grid.RowDefinitions>
     13            <Grid.ColumnDefinitions>
     14                <ColumnDefinition/>
     15            </Grid.ColumnDefinitions>
     16       
     17            <Canvas>
     18            <Grid Background="White" Width="300" Name="Grid" Grid.Row="0" Grid.Column="0">
     19                <Grid.RowDefinitions>
     20                    <RowDefinition/>
     21                    <RowDefinition/>
     22                    <RowDefinition/>
     23                </Grid.RowDefinitions>
     24                <Grid.ColumnDefinitions>
     25                    <ColumnDefinition/>
     26                    <ColumnDefinition/>
     27                </Grid.ColumnDefinitions>
    1928
    20         <Label Grid.Row="0" Grid.Column="0" FontSize="12" Background="White" VerticalAlignment="Top" Height="28" Width="AUTO" BorderBrush="AliceBlue">Probable time left :</Label>
    21         <Label Grid.Row="0" Grid.Column="1" FontSize="12" Background="White" VerticalAlignment="Top" Height="28" Width="AUTO" BorderBrush="AliceBlue">Estimated end time :</Label>
     29                <Label Grid.Row="0" Grid.Column="0" FontSize="12" Background="White" VerticalAlignment="Top" Height="28" Width="AUTO">Probable time left :</Label>
     30                <Label Grid.Row="0" Grid.Column="1" FontSize="12" Background="White" VerticalAlignment="Top" Height="28" Width="AUTO">Estimated end time :</Label>
    2231
    23         <TextBox Name="timeLeft" Grid.Row="1" Grid.Column="0"
    24                  TextAlignment="Center" IsReadOnly="True" TextWrapping="WrapWithOverflow" VerticalAlignment="Top" Height="28" FontSize="10" BorderThickness="1" BorderBrush="AliceBlue" />
    25         <TextBox Name="endTime" Grid.Row="1" Grid.Column="1"
    26                  TextAlignment="Center" IsReadOnly="True" TextWrapping="WrapWithOverflow" VerticalAlignment="Top" Height="28" FontSize="10" BorderThickness="1" BorderBrush="AliceBlue" />
     32                <TextBox Name="timeLeft" Grid.Row="1" Grid.Column="0"
     33                     TextAlignment="Center" IsReadOnly="True" TextWrapping="WrapWithOverflow" VerticalAlignment="Top" Height="28" FontSize="10" BorderThickness="1" />
     34                <TextBox Name="endTime" Grid.Row="1" Grid.Column="1"
     35                     TextAlignment="Center" IsReadOnly="True" TextWrapping="WrapWithOverflow" VerticalAlignment="Top" Height="28" FontSize="10" BorderThickness="1" />
    2736
    28         <Label Grid.Row="2" Grid.Column="0" FontSize="12" Grid.ColumnSpan="1" Background="White" Width="AUTO" BorderBrush="AliceBlue">Keys per second :</Label>
     37                <Label Grid.Row="2" Grid.Column="0" FontSize="12" Grid.ColumnSpan="1" Background="White" Width="AUTO">Keys per second :</Label>
    2938
    30         <TextBox x:Name="keysPerSecond" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"
    31                  TextAlignment="Left"  IsReadOnly="True" TextWrapping="WrapWithOverflow" FontSize="10" BorderThickness="1" HorizontalContentAlignment="Center" BorderBrush="AliceBlue" />
    32         <ListBox Name="listbox" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="3" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" FontSize="10" BorderBrush="AliceBlue" />
    33     </Grid>       
     39                <TextBox x:Name="keysPerSecond" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"
     40                     TextAlignment="Left"  IsReadOnly="True" TextWrapping="WrapWithOverflow" FontSize="10" BorderThickness="1" HorizontalContentAlignment="Center" />
     41            </Grid>
     42            </Canvas>
     43            <ListView Name="ListView" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" FontSize="10" Grid.Row="1" Grid.Column="0">
     44                <ListView.View>
     45                    <GridView>
     46                        <GridViewColumn Header="Ranking" DisplayMemberBinding="{Binding Path=Ranking}">
     47                            <GridViewColumn.CellTemplate>
     48                                <DataTemplate>
     49                                    <Label/>
     50                                </DataTemplate>
     51                            </GridViewColumn.CellTemplate>
     52                        </GridViewColumn>
     53                        <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}">
     54                            <GridViewColumn.CellTemplate>
     55                                <DataTemplate>
     56                                    <Label/>
     57                                </DataTemplate>
     58                            </GridViewColumn.CellTemplate>
     59                        </GridViewColumn>
     60                        <GridViewColumn Header="Key" DisplayMemberBinding="{Binding Path=Key}">
     61                            <GridViewColumn.CellTemplate>
     62                                <DataTemplate>
     63                                    <Label/>
     64                                </DataTemplate>
     65                            </GridViewColumn.CellTemplate>
     66                        </GridViewColumn>
     67                        <GridViewColumn Header="Text" DisplayMemberBinding="{Binding Path=Text}">
     68                            <GridViewColumn.CellTemplate>
     69                                <DataTemplate>
     70                                    <Label/>
     71                                </DataTemplate>
     72                            </GridViewColumn.CellTemplate>
     73                        </GridViewColumn>
     74                    </GridView>
     75                </ListView.View>
     76            </ListView>
     77        </Grid>
    3478    </Canvas>
    3579</UserControl>
  • trunk/CrypPlugins/KeySearcher/KeySearcherQuickWatchPresentation.xaml.cs

    r902 r1030  
    1212using System.Windows.Navigation;
    1313using System.Windows.Shapes;
     14using System.Collections.ObjectModel;
    1415
    1516namespace KeySearcher
    1617{
     18   
    1719    /// <summary>
    1820    /// Interaktionslogik für KeySearcherQuickWatchPresentation.xaml
     
    2022    public partial class KeySearcherQuickWatchPresentation : UserControl
    2123    {
     24        public ObservableCollection<ResultEntry> entries = new ObservableCollection<ResultEntry>();
    2225
    2326        public KeySearcherQuickWatchPresentation()
     
    2528            InitializeComponent();
    2629            SizeChanged += sizeChanged;
     30            this.DataContext = entries;
    2731        }
    2832
    2933        public void sizeChanged(Object sender, EventArgs eventArgs)
    3034        {
    31             this.Grid.RenderTransform = new ScaleTransform(this.ActualWidth / this.Grid.ActualWidth,
    32                                                        this.ActualHeight / this.Grid.ActualHeight);
     35            double height = this.ActualHeight - this.Grid.ActualHeight;
     36            if(height<0){
     37                height=0;
     38            }
     39            this.ListView.Height = height;
     40            this.ListView.Width = this.ActualWidth;
     41
     42            double heightTransform = (this.ActualHeight - height) / this.Grid.ActualHeight;
     43            double widthTransform = this.ActualWidth / this.Grid.ActualWidth;
     44
     45            if (widthTransform > heightTransform)
     46            {
     47                widthTransform = heightTransform;
     48            }
     49               
     50
     51            this.Grid.RenderTransform = new ScaleTransform(widthTransform, heightTransform);
    3352        }
    3453    }
Note: See TracChangeset for help on using the changeset viewer.