Changeset 833


Ignore:
Timestamp:
Nov 9, 2009, 4:48:14 PM (12 years ago)
Author:
weyers
Message:

Transposition Presentation updated!

Location:
trunk/CrypPlugins/Transposition
Files:
3 edited

Legend:

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

    r831 r833  
    171171        public void Pause()
    172172        {
    173 
     173           
    174174        }
    175175
     
    197197        public void Stop()
    198198        {
    199 
     199            myPresentation.my_Stop(this, EventArgs.Empty);
    200200        }
    201201
  • trunk/CrypPlugins/Transposition/TranspositionPresentation.xaml

    r831 r833  
    44    Height="300" Width="800">
    55    <Grid>
    6         <Grid Name="myGrid" Height="300" Width="450">
     6    <Grid Name="mainGrid" Height="100" Width="420" VerticalAlignment="Top">
     7        <Grid HorizontalAlignment="Center" Name="myGrid" VerticalAlignment="Center" Height="100" Width="50" >
    78       
    89        </Grid>
    910        <TextBox  HorizontalAlignment="Left" Name="textBox1" Width="160"  IsEnabled="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" IsReadOnly="True" />
    1011        <TextBox  HorizontalAlignment="Right" Name="textBox2" Width="160"  IsEnabled="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" IsReadOnly="True"/>
     12       
     13    </Grid>
     14        <Slider Height="21" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,118,-10,0" Name="slider1"  Width="160"  Maximum="1000" Minimum="1" Value="1" />
    1115    </Grid>
    1216</UserControl>
  • trunk/CrypPlugins/Transposition/TranspositionPresentation.xaml.cs

    r831 r833  
    3434        private int nach;
    3535        private bool PaarSortiert;
    36         private int schleife=0;
     36        private int schleife = 0;
    3737        private int outcount;
    38         private bool onlyOnce ;
    39 
    40         public void main(char[,] read_in_matrix, char[,] permuted_matrix, int[] key, String keyword, String input, String output,int per, int rein,int reout)
    41         {
    42            
     38        private int outcount1;
     39        private bool onlyOnce;
     40        private bool Stop = false;
     41        private int rein;
     42        private int reout;
     43
     44        public void main(char[,] read_in_matrix, char[,] permuted_matrix, int[] key, String keyword, String input, String output, int per, int rein, int reout)
     45        {
     46
    4347            Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    4448            {
    45                 if (per == 1 && rein == 0 && reout == 1)
    46                 {
    47                     outcount = 0;
     49                if (per == 1  )
     50                {
     51                   
     52                    this.rein = rein;
     53                    this.reout = reout;
     54                    textBox2.Clear();
     55                    if (reout == 1)
     56                        outcount = 0;
     57                    if (reout == 0)
     58                        outcount = 2;
     59                   
     60                    if(rein == 1)
     61                        outcount1 = 0;
     62                    if(rein == 0)
     63                        outcount1 = 2;
    4864                    onlyOnce = true;
     65                    Stop = false;
     66                    if (keyword == null)
     67                        Stop = true;
    4968                    create(read_in_matrix, permuted_matrix, key, keyword, input, output);
     69
    5070                    schleife = 0;
    51                     sort(schleife);
     71                    textBox1.Text = input;
     72                    readIn(rein);
     73                    //sort(schleife);
    5274                }
    5375            }, null);
    5476        }
    5577
    56        
    57 
    58         public void readout(object sender, EventArgs e) 
     78
     79
     80        public void readout(object sender, EventArgs e)
    5981        {
    6082            DoubleAnimation myDoubleAnimation = new DoubleAnimation();
    6183            myDoubleAnimation.From = 1.0;
    6284            myDoubleAnimation.To = 0.0;
    63             myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1000));
     85            myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001-slider1.Value));
    6486
    6587            if (teba != null)
    66                
    67                 for (int i = 0; i < teba.GetLength(1); i++)
    68                 {
    69                    
    70                    
    71                     if (i == teba.GetLength(1) - 1 && outcount<teba.GetLength(0)-1)
    72                     {
    73                         myDoubleAnimation.Completed += new EventHandler(my_Help1);
    74                     }
    75                     teba[outcount, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    76                     if (i > 1)
    77                     {
    78                         textBox2.Text += teba[outcount, i].Text.ToString();
    79                     }
    80                 }
     88            {
     89                if (reout == 1)
     90                    for (int i = 2; i < teba.GetLength(1); i++)
     91                    {
     92
     93
     94                        if (i == teba.GetLength(1) - 1 && outcount < teba.GetLength(0) - 1 && !Stop)
     95                        {
     96                            myDoubleAnimation.Completed += new EventHandler(my_Help1);
     97                        }
     98                        teba[outcount, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     99                        if (i > 1)
     100                        {
     101                            textBox2.Text += teba[outcount, i].Text.ToString();
     102                        }
     103                    }
     104
     105
     106                else
     107                {
     108                    for (int i = 0; i < teba.GetLength(0); i++)
     109                    {
     110
     111
     112                        if (i == teba.GetLength(0) - 1 && outcount < teba.GetLength(1) - 1 && !Stop)
     113                        {
     114                            myDoubleAnimation.Completed += new EventHandler(my_Help1);
     115                        }
     116                        teba[i,outcount].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     117                        if (outcount > 1)
     118                        {
     119                            textBox2.Text += teba[i,outcount].Text.ToString();
     120                        }
     121                    }
     122                }
     123            }
    81124        }
    82125
     
    92135                        PaarSortiert = false;
    93136                    }
    94                     else 
    95                         {
    96                             schleife++;
    97                             sort(schleife);
    98                         }
     137                    else
     138                    {
     139                        schleife++;
     140                        sort(schleife);
     141                    }
    99142                }
    100143                else if (!PaarSortiert)
     
    105148                }
    106149
    107                 if (PaarSortiert && onlyOnce) { readout(this, EventArgs.Empty); onlyOnce = false; }
     150                if (PaarSortiert && onlyOnce && !Stop) { readout(this, EventArgs.Empty); onlyOnce = false; }
    108151            }
    109            
    110         }
    111         private void my_Help1(object sender, EventArgs e)
    112         {
     152
     153        }
     154
     155        public void my_Stop(object sender, EventArgs e)
     156        {
     157            myGrid.Children.Clear();
     158            myGrid.ColumnDefinitions.Clear();
     159            myGrid.RowDefinitions.Clear();
     160            outcount = 0;
     161            onlyOnce = true;
     162            schleife = 0;
     163            textBox1.Clear();
     164            textBox2.Clear();
     165            Stop = true;
     166        }
     167
     168        private void my_Help1(object sender, EventArgs e)
     169        {
    113170            outcount++;
    114             readout(this, EventArgs.Empty);
    115            
    116         }
     171            if (!Stop)
     172                readout(this, EventArgs.Empty);
     173
     174        }
     175
     176        private void my_Help2(object sender, EventArgs e)
     177        {
     178            outcount1++;
     179            if (!Stop)
     180                readIn(rein);
     181
     182        }
     183
    117184        private void my_Help(object sender, EventArgs e)
    118185        {
    119186            schleife++;
    120             sort(schleife);
    121         }
    122        
     187            if (!Stop)
     188                sort(schleife);
     189        }
     190
    123191        private void my_Completed(object sender, EventArgs e)
    124192        {
     
    133201                        teba[nach, i].Text = teba[von, i].Text.ToString();
    134202                        teba[von, i].Text = help;
    135                         textBox1.Text += i;
    136                     }
    137                 }
    138                 textBox1.Text += "feuer";
     203
     204                        TextBlock help1 = new TextBlock();
     205                        help1.Background = teba[nach, i].Background;
     206                        teba[nach, i].Background = teba[von, i].Background;
     207                        teba[von, i].Background = help1.Background;
     208
     209                        // textBox1.Text += i;
     210                    }
     211                }
     212                // textBox1.Text += "feuer";
    139213                DoubleAnimation myFadein = new DoubleAnimation();
    140214                myFadein.From = 0.0;
    141215                myFadein.To = 1.0;
    142                 myFadein.Duration = new Duration(TimeSpan.FromMilliseconds(1000));
    143                
     216                myFadein.Duration = new Duration(TimeSpan.FromMilliseconds(1001-slider1.Value));
     217
    144218
    145219                if (teba != null)
     
    147221                    {
    148222                        teba[von, i].BeginAnimation(TextBlock.OpacityProperty, myFadein);
    149                         if (i == teba.GetLength(1)-1)
     223                        if (i == teba.GetLength(1) - 1 && !Stop)
    150224                        {
    151225                            myFadein.Completed += new EventHandler(my_Help);
    152                         } 
    153                        
     226                        }
     227
    154228                        teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myFadein);
    155229                    }
    156                
     230
    157231            }, null);
    158232        }
     
    163237            myDoubleAnimation.From = 1.0;
    164238            myDoubleAnimation.To = 0.0;
    165             myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1000));
     239            myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001-slider1.Value));
    166240
    167241            this.von = von;
    168242            this.nach = nach;
    169            
    170             if(teba!=null)
    171             for (int i=0; i < teba.GetLength(1); i++)
    172             {
    173                
    174                 teba[von, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    175                 if (i == teba.GetLength(1)- 1)
    176                 {
    177                     myDoubleAnimation.Completed += new EventHandler(my_Completed);
    178                 }
    179                 teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);   
     243
     244            if (teba != null)
     245                for (int i = 0; i < teba.GetLength(1); i++)
     246                {
     247
     248                    teba[von, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     249                    if (i == teba.GetLength(1) - 1 && !Stop)
     250                    {
     251                        myDoubleAnimation.Completed += new EventHandler(my_Completed);
     252                    }
     253                    teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     254                }
     255        }
     256
     257        public void readIn(int rein)
     258        {
     259
     260
     261
     262            DoubleAnimation myDoubleAnimation = new DoubleAnimation();
     263            myDoubleAnimation.From = 0.0;
     264            myDoubleAnimation.To = 1.0;
     265            myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001-slider1.Value));
     266
     267            if (teba != null)
     268            {
     269                if (rein == 0)
     270                {
     271                    for (int i = 0; i < teba.GetLength(0); i++)
     272                    {
     273
     274
     275                        if (i == teba.GetLength(0) - 1 && outcount1 < teba.GetLength(1) - 1 && !Stop)
     276                        {
     277                            myDoubleAnimation.Completed += new EventHandler(my_Help2);
     278                        }
     279                        teba[i, outcount1].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     280
     281                        try
     282                        {
     283                            textBox1.Text = textBox1.Text.Remove(0, 1);
     284                        }
     285
     286                        catch (ArgumentOutOfRangeException) { }
     287
     288                        if (i == teba.GetLength(0) - 1 && outcount1 == teba.GetLength(1) - 1 && !Stop)
     289                        { sort(schleife); }
     290
     291                    }
     292                }
     293
     294                else
     295                {
     296                    for (int i = 2; i < teba.GetLength(1); i++)
     297                    {
     298
     299
     300                        if (i == teba.GetLength(1) - 1 && outcount1 < teba.GetLength(0) - 1 && !Stop)
     301                        {
     302                            myDoubleAnimation.Completed += new EventHandler(my_Help2);
     303                        }
     304                        teba[outcount1,i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     305
     306                        try
     307                        {
     308                            textBox1.Text = textBox1.Text.Remove(0, 1);
     309                        }
     310
     311                        catch (ArgumentOutOfRangeException) { }
     312
     313                        if (i == teba.GetLength(1) - 1 && outcount1 == teba.GetLength(0) - 1 && !Stop)
     314                        { sort(schleife); }
     315
     316                    }
     317                }
    180318            }
    181319        }
     
    183321        public void create(char[,] read_in_matrix, char[,] permuted_matrix, int[] key, String keyword, String input, String output)
    184322        {
    185            
     323
    186324            Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    187325            {
     
    193331                    textBox1.Clear();
    194332                    textBox2.Clear();
     333
    195334                   
    196                     myGrid.ShowGridLines = true;
    197 
    198                     teba = new TextBlock[read_in_matrix.GetLength(0), read_in_matrix.GetLength(1)+2];
     335
     336                    mainGrid.Height = 100;
     337                    mainGrid.Width = 420;
     338
     339                    myGrid.Width = 50;
     340                    myGrid.Height = 100;
     341                    myGrid.ShowGridLines = false;
     342
     343                    teba = new TextBlock[read_in_matrix.GetLength(0), read_in_matrix.GetLength(1) + 2];
     344                   
    199345                    myGrid.RowDefinitions.Add(new RowDefinition());
    200 
    201346                    for (int i = 0; i < key.Length; i++)
    202347                    {
     348                        if (mainGrid.Width < 800)
     349                        {
     350                            myGrid.Width += 12;
     351                            mainGrid.Width += 12;
     352                        }
    203353                        myGrid.ColumnDefinitions.Add(new ColumnDefinition());
    204354                        TextBlock txt = new TextBlock();
     
    213363                        myGrid.Children.Add(txt);
    214364                        teba[i, 0] = txt;
     365
     366                    }
     367
     368                    myGrid.RowDefinitions.Add(new RowDefinition());
     369                    if (keyword != null)
     370                    {
    215371                       
    216                     }
    217                     myGrid.RowDefinitions.Add(new RowDefinition());
    218                     char[] ch = keyword.ToCharArray();
    219 
    220                     for (int i = 0; i < key.Length; i++)
    221                     {
    222 
    223                         TextBlock txt = new TextBlock();
    224                         txt.VerticalAlignment = VerticalAlignment.Center;
    225                         txt.Text = ch[i].ToString();
    226                         txt.FontSize = 12;
    227                         txt.FontWeight = FontWeights.ExtraBold;
    228                         txt.TextAlignment = TextAlignment.Center;
    229                         Grid.SetRow(txt, 1);
    230                         Grid.SetColumn(txt, i);
    231                         myGrid.Children.Add(txt);
    232                         teba[i, 1] = txt;
    233                     }
    234 
    235                     for (int i = 0; i < read_in_matrix.GetLength(1); i++)
    236                     {
    237                         myGrid.RowDefinitions.Add(new RowDefinition());
    238                         for (int ix = 0; ix < read_in_matrix.GetLength(0); ix++)
    239                         {
     372                        char[] ch = keyword.ToCharArray();
     373
     374                        for (int i = 0; i < key.Length; i++)
     375                        {
     376
    240377                            TextBlock txt = new TextBlock();
    241378                            txt.VerticalAlignment = VerticalAlignment.Center;
    242                             txt.Text = read_in_matrix[ix, i].ToString();
     379                            txt.Text = ch[i].ToString();
    243380                            txt.FontSize = 12;
     381                            txt.FontWeight = FontWeights.ExtraBold;
     382                            txt.TextAlignment = TextAlignment.Center;
     383                            Grid.SetRow(txt, 1);
     384                            Grid.SetColumn(txt, i);
     385                            myGrid.Children.Add(txt);
     386                            teba[i, 1] = txt;
     387                        }
     388                    }
     389
     390                    for (int i = 0; i < read_in_matrix.GetLength(1); i++)
     391                    {
     392                        if (mainGrid.Height < 280)
     393                        {
     394                            mainGrid.Height += 12;
     395                            myGrid.Height += 12;
     396                        }
     397
     398
     399                        int x = 0;
     400                        myGrid.RowDefinitions.Add(new RowDefinition());
     401                        if (i % 2 == 0)
     402                            x = 1;
     403                        for (int ix = 0; ix < read_in_matrix.GetLength(0); ix++)
     404                        {
     405
     406                            TextBlock txt = new TextBlock();
     407                            txt.VerticalAlignment = VerticalAlignment.Center;
     408                            if (char.GetUnicodeCategory(read_in_matrix[ix, i]).ToString() != "Control")
     409                                txt.Text = read_in_matrix[ix, i].ToString();
     410                            else
     411                                txt.Text = "";
     412                            if (ix % 2 == x)
     413                                txt.Background = Brushes.AliceBlue;
     414                            else
     415                                txt.Background = Brushes.LawnGreen;
     416                            txt.FontSize = 12;
     417                            txt.Opacity = 0.0;
    244418                            txt.FontWeight = FontWeights.ExtraBold;
    245419                            txt.TextAlignment = TextAlignment.Center;
     
    247421                            Grid.SetColumn(txt, ix);
    248422                            myGrid.Children.Add(txt);
    249                             teba[ix, i+2] = txt;
    250                         }
    251                     }
    252                    
    253                 }
    254              
     423                            teba[ix, i + 2] = txt;
     424                        }
     425                    }
     426
     427                }
     428
    255429            }
    256430         , null);
    257431        }
    258        
     432
    259433    }
    260434
Note: See TracChangeset for help on using the changeset viewer.