Changeset 901


Ignore:
Timestamp:
Nov 25, 2009, 5:23:43 PM (12 years ago)
Author:
wiefels
Message:

presentation got cleaned up
comments added

File:
1 edited

Legend:

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

    r898 r901  
    2222    /// </summary>
    2323    public partial class TranspositionPresentation : UserControl
    24     {
     24    {   
     25        /// <summary>
     26        /// Visualisationmodul for Transposition.c
     27        /// </summary>
    2528        public TranspositionPresentation()
    2629        {
     
    5760        private DoubleAnimation fadeOut;
    5861
    59 
     62        /// <summary>
     63        /// Getter of the Speed the Visualisation is running
     64        /// </summary>
     65        /// <param name="speed"></param>
    6066        public void UpdateSpeed(int speed)
    6167        {
     
    6369        }
    6470
     71        /// <summary>
     72        /// Initialisation of all Params the Visualisation needs from the Caller
     73        /// </summary>
     74        /// <param name="read_in_matrix"></param>
     75        /// <param name="permuted_matrix"></param>
     76        /// <param name="keyword"></param>
     77        /// <param name="per"></param>
     78        /// <param name="rein"></param>
     79        /// <param name="reout"></param>
    6580        private void init(byte[,] read_in_matrix, byte[,] permuted_matrix, String keyword, int per, int rein, int reout)
    6681        {
     
    101116                    if (reout == 1)
    102117                        outcount = 0;
    103                     if (reout == 0)
     118                    else
    104119                        outcount = 2;
    105120
    106121                    if (reout == 1)
    107122                        outcount4 = 0;
    108                     if (reout == 0)
     123                    else
    109124                        outcount4 = 2;
    110125                   
    111126                    if(rein == 1)
    112127                        outcount1 = 0;
    113                    
    114                     if(rein == 0)
     128                    else
    115129                        outcount1 = 2;
    116130
     
    118132                        outcount3 = 0;
    119133
    120                     if (rein == 0)
     134                    else
    121135                        outcount3 = 2;
    122                    
    123                    
    124136                }
    125137            else
     
    128140                    colper = 0;
    129141
    130                    
    131142                    if (reout == 1)
    132143                        outcount = 2;
    133                     if (reout == 0)
     144                    else
    134145                        outcount = 0;
    135146
    136147                    if (reout == 1)
    137148                        outcount4 = 2;
    138                     if (reout == 0)
     149                    else
    139150                        outcount4 = 0;
    140151
    141152                    if (rein == 1)
    142153                        outcount1 = 2;
    143                     if (rein == 0)
     154                    else
    144155                        outcount1 = 0;
    145                    
     156
    146157                    if (rein == 1)
    147158                        outcount3 = 2;
    148                     if (rein == 0)
     159                    else
    149160                        outcount3 = 0;
    150                    
    151                    
    152161                    }
    153162        }
     
    165174                    //textBox1.Text = input;
    166175                    //readIn();
    167      
    168                
    169176            }, null);
    170177        }
     
    187194                   reouta[i].Background = brush;
    188195                }
    189 
    190              
     196                             
    191197                if (reout == 0)
    192                 {
    193                    
     198                {                   
    194199                    for (int i = 0; i < permuted_matrix.GetLength(0); i++)
    195200                    {
     
    218223        }
    219224
    220         private void preReadOut ()
     225        private void preReadOut()
    221226        {
    222227            ColorAnimation myColorAnimation_green = new ColorAnimation();
     
    235240            if (teba != null)
    236241            {
    237 
    238242                if (reout == 0)
    239                 {
    240                    
     243                {                   
    241244                    for (int i = rowper; i < teba.GetLength(0); i++)
    242245                    {
     
    244247                            teba[i, outcount4].Background = brush_green;
    245248                        else
    246                             teba[i, outcount4].Background = brush_blue;
    247 
    248                        
    249                     }
    250                    
     249                            teba[i, outcount4].Background = brush_blue;                       
     250                    }                   
    251251                        myColorAnimation_green.Completed += new EventHandler(my_Help6);
    252 
    253                    
     252                                       
    254253                    if (!Stop)
    255254                    {
     
    259258                }
    260259                else
    261                 {
    262                    
     260                {                   
    263261                    for (int i = colper; i < teba.GetLength(1); i++)
    264262                    {
     
    291289            fadeIn.From = 0.0;
    292290            fadeIn.To = 1.0;
    293             fadeIn.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    294 
    295            
     291            fadeIn.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));                 
    296292
    297293            if (teba != null)
     
    301297                    for (int i = 0; i < permuted_matrix.GetLength(1); i++)
    302298                    {
    303 
    304299                        if (Convert.ToInt64(permuted_matrix[outcount5, i]) != 0)
    305300                            {
     
    319314                    }
    320315                }
    321 
    322316                else
    323317                {
     
    328322                                reouta[countup1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
    329323                                countup1++;
    330                             }
    331                                
     324                            }                               
    332325                    }
    333326
     
    339332                        }
    340333                        teba[i, outcount].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    341 
    342334                    }
    343335                }
    344336            }
    345337        }
    346 
     338        /// <summary>
     339        /// (Insertion Sort) algorithm for sorting the rows OR columns by index during the permutationphase
     340        /// </summary>
     341        /// <param name="i"></param>
    347342        public void sort(int i)
    348343        {
     
    364359                            }
    365360                            ani(i, s);
    366 
    367361                        }
    368362                        else
     
    371365                            sort(schleife);
    372366                        }
    373 
    374                     }
    375 
    376 
     367                    }
    377368                    else if (!Stop) { preReadOut(); }
    378369                }
    379370            }
    380             else
    381            
     371            else
    382372            {
    383373                preReadOut();
    384374            }
    385 
    386         }
    387 
     375        }
     376        /// <summary>
     377        /// "emergengy break"
     378        /// </summary>
     379        /// <param name="sender"></param>
     380        /// <param name="e"></param>
    388381        public void my_Stop(object sender, EventArgs e)
    389382        {
     
    391384            myGrid.ColumnDefinitions.Clear();
    392385            myGrid.RowDefinitions.Clear();
    393             outcount = 0;
    394 
    395            
     386            outcount = 0;           
    396387
    397388            schleife = 0;
     
    406397            if (!Stop)
    407398                postReadOut();
    408 
    409399        }
    410400
     
    414404            if (!Stop)
    415405                postReadIn();
    416 
    417406        }
    418407
     
    443432        private void my_Help5(object sender, EventArgs e)
    444433        {
    445             textBox2.Text = "feuer";
     434            textBox2.Text = "fäuer";
    446435            outcount3++;
    447436            if (!Stop)
     
    470459                if (teba != null)
    471460                {
    472 
    473461                    for (int i = 0; i < teba.GetLength(1); i++)
    474462                    {
     
    480468                        help1.Background = teba[nach, i].Background;
    481469                        teba[nach, i].Background = teba[von, i].Background;
    482                         teba[von, i].Background = help1.Background;
    483 
    484                        
     470                        teba[von, i].Background = help1.Background;                       
    485471                    }
    486472                }
     
    491477                myFadein.Duration = new Duration(TimeSpan.FromMilliseconds(1001-speed));
    492478
    493 
    494479                if (teba != null)
    495480                    for (int i = 0; i < teba.GetLength(1); i++)
     
    500485                            myFadein.Completed += new EventHandler(my_Help);
    501486                        }
    502 
    503487                        teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myFadein);
    504488                    }
    505 
    506489            }, null);
    507490        }
    508491
     492        /// <summary>
     493        /// animation being used in the permutationphase while sorting
     494        /// </summary>
     495        /// <param name="von"></param>
     496        /// <param name="nach"></param>
    509497        public void ani( int von, int nach)
    510498        {
     
    518506
    519507            if (teba != null)
    520                 for (int i = 0; i < teba.GetLength(1); i++)
    521                 {
    522 
    523                     teba[von, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    524                     if (i == teba.GetLength(1) - 1 && !Stop)
    525                     {
    526                         myDoubleAnimation.Completed += new EventHandler(my_Completed);
    527                     }
    528                     teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    529                 }
    530         }
    531 
     508                if (per == 1)
     509                    for (int i = 0; i < teba.GetLength(1); i++)
     510                    {
     511                        teba[von, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     512                        if (i == teba.GetLength(1) - 1 && !Stop)
     513                        {
     514                            myDoubleAnimation.Completed += new EventHandler(my_Completed);
     515                        }
     516                        teba[nach, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     517                    }
     518// die folgende ELSE ist abgeändert. ich: ungewiss ihrer absoluten richtigkeit.klappte einmal "zur hälfte" .. lösch' wie du bock hast.
     519                else
     520                {
     521                    for (int i = 0; i < teba.GetLength(0); i++)
     522                    {
     523                        teba[i, von].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     524                        if (i == teba.GetLength(0) - 1 && !Stop)
     525                        {
     526                            myDoubleAnimation.Completed += new EventHandler(my_Completed);
     527                        }
     528                        teba[i, nach].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     529                    }
     530                }
     531        }
     532        /// <summary>
     533        /// coloranimation for the text in the left wrapper to be "eaten out" and getting marked
     534        /// </summary>
    532535        public void preReadIn()
    533536        {
    534 
    535537            ColorAnimation myColorAnimation = new ColorAnimation();
    536538            myColorAnimation.From = Colors.Transparent;
     
    538540            myColorAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    539541
    540 
    541542            if (reina != null)
    542543            {
     
    554555                        }
    555556                    }
    556                 }
    557                
     557                }               
    558558                else
    559559                    {
     
    569569                myColorAnimation.Completed += new EventHandler(my_Help4);
    570570                if (!Stop)
    571                 brush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);
    572                
     571                brush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);               
    573572            }
    574573        }
    575 
    576 
     574        /// <summary>
     575        /// method for fading text out from the left wrapper and fading into the grid (where it's already in but transparent)
     576        /// </summary>
    577577        public void readIn()
    578578        {
    579 
    580579            DoubleAnimation fadeIn = new DoubleAnimation();
    581580            fadeIn.From = 0.0;
     
    591590            {
    592591                    if(reina[i].Opacity!=0.0) 
    593                     reina[i].BeginAnimation(TextBlock.OpacityProperty, myFadeOut);
    594                
     592                    reina[i].BeginAnimation(TextBlock.OpacityProperty, myFadeOut);                 
    595593            }
    596 
    597594                if (teba != null)
    598595                {
    599 
    600 
    601596                    if (rein == 0)
    602597                    {
    603598                        for (int i = rowper; i < teba.GetLength(0); i++)
    604599                        {
    605 
    606 
    607600                            if (i == teba.GetLength(0) - 1 && outcount1 < teba.GetLength(1) - 1 && !Stop)
    608601                            {
    609602                                fadeIn.Completed += new EventHandler(my_Help2);
    610603                            }
    611 
    612                             teba[i, outcount1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
    613 
     604                            teba[i, outcount1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);                           
    614605                            if (i == teba.GetLength(0) - 1 && outcount1 == teba.GetLength(1) - 1 && !Stop)
    615606                            {
    616607                                postReadIn();
    617608                            }
    618 
    619                         }
    620                     }
    621 
    622 
    623 
     609                        }
     610                    }
    624611                    else
    625612                    {
    626613                        for (int i = colper; i < teba.GetLength(1); i++)
    627614                        {
    628 
    629 
    630615                            if (i == teba.GetLength(1) - 1 && outcount1 < teba.GetLength(0) - 1 && !Stop)
    631616                            {
     
    633618                            }
    634619                            teba[outcount1, i].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
    635 
    636620                            try
    637621                            {
    638622                                textBox1.Text = textBox1.Text.Remove(0, 1);
    639623                            }
    640 
    641624                            catch (ArgumentOutOfRangeException) { }
    642 
    643625                            if (i == teba.GetLength(1) - 1 && outcount1 == teba.GetLength(0) - 1 && !Stop)
    644626                            { postReadIn(); }
    645 
    646                         }
    647                     }
    648 
    649 
    650 
     627                        }
     628                    }
    651629                }
    652630        }
     
    664642            myColorAnimation_blue.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    665643
    666 
    667644            SolidColorBrush brush_green = new SolidColorBrush();
    668645            SolidColorBrush brush_blue = new SolidColorBrush();
     
    670647            if (teba != null)
    671648            {
    672 
    673649                if (rein == 0)
    674650                {
     
    680656                        else
    681657                            teba[i, outcount3].Background = brush_blue;
    682 
    683658                        if (i == teba.GetLength(0) - 1 && outcount3 == teba.GetLength(1) - 1 && !Stop)
    684659                        {
     
    686661                            no = false;
    687662                        }
    688 
    689663                    }
    690664                    if (no)
    691665                    {
    692                         myColorAnimation_green.Completed += new EventHandler(my_Help5);
    693                        
     666                        myColorAnimation_green.Completed += new EventHandler(my_Help5);                       
    694667                    }
    695668                    if (!Stop)
     
    699672                    }
    700673                }
    701 
    702 
    703 
    704674                else
    705675                {
     
    711681                        else
    712682                            teba[outcount3, i].Background = brush_blue;
    713 
    714 
    715 
    716683                        if (i == teba.GetLength(1) - 1 && outcount3 == teba.GetLength(0) - 1 && !Stop)
    717684                        {
     
    719686                            no = false;
    720687                        }
    721 
    722688                    }
    723689                    if (no)
     
    727693                        brush_blue.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_blue);
    728694                        brush_green.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_green);
    729 
    730695                    }
    731696                }
    732697            }
    733698        }
    734 
     699        /// <summary>
     700        /// method for creating the grid
     701        /// </summary>
     702        /// <param name="read_in_matrix"></param>
     703        /// <param name="permuted_matrix"></param>
     704        /// <param name="key"></param>
     705        /// <param name="keyword"></param>
     706        /// <param name="input"></param>
     707        /// <param name="output"></param>
    735708        public void create(byte[,] read_in_matrix, byte[,] permuted_matrix, int[] key, String keyword, byte[] input, byte[] output)
    736709        {
    737 
    738710            Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    739711            {
     
    747719                    mywrap1.Children.Clear();
    748720                    mywrap2.Children.Clear();
    749 
    750 
     721                   
    751722                    teba = new TextBlock[read_in_matrix.GetLength(0) + rowper, read_in_matrix.GetLength(1) + colper];
    752723
     
    755726                       myGrid.ColumnDefinitions.Add(new ColumnDefinition());
    756727                    }
    757 
    758728                    for (int i = 0; i < read_in_matrix.GetLength(1) + colper; i++)
    759                     {
    760                        
     729                    {                       
    761730                        myGrid.RowDefinitions.Add(new RowDefinition());
    762                     }
    763                    
     731                    }                 
    764732
    765733                    for (int i = 0; i < key.Length; i++)
     
    769737                            myGrid.Width += 12;
    770738                            mainGrid.Width += 12;
    771                         }
    772                        
     739                        }                       
    773740                       
    774741                        TextBlock txt = new TextBlock();
     
    789756                            myGrid.Children.Add(txt);
    790757                            teba[i, 0] = txt;
    791                             teba[i, 0].BeginAnimation(TextBlock.OpacityProperty,fadeIn);
    792                            
    793                         }
    794 
    795                         else
    796                        
     758                            teba[i, 0].BeginAnimation(TextBlock.OpacityProperty,fadeIn);                           
     759                        }
     760                        else                         
    797761                        {
    798762                            Grid.SetRow(txt, i);
     
    802766                            teba[0, i].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
    803767                        }
    804 
    805                     }
    806 
     768                    }
    807769                   
    808770                    if (keyword != null)
    809                     {
    810                        
     771                    {                       
    811772                        char[] ch = keyword.ToCharArray();
    812 
    813773                        for (int i = 0; i < key.Length; i++)
    814774                        {
    815 
    816775                            TextBlock txt = new TextBlock();
    817776                            txt.VerticalAlignment = VerticalAlignment.Center;
     
    829788                                teba[i, 1] = txt;
    830789                                teba[i, 1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
    831                             }
    832                            
     790                            }                           
    833791                            else
    834792                            {
     
    841799                        }
    842800                    }
    843 
    844801                    mat_back = new Brush[read_in_matrix.GetLength(0), read_in_matrix.GetLength(1)];
    845 
    846802                    for (int i = 0; i < read_in_matrix.GetLength(1); i++)
    847                     {
    848                        
     803                    {                       
    849804                        int x = 0;
    850                      
    851805                        if (i % 2 == 0)
    852806                            x = 1;
    853807                        for (int ix = 0; ix < read_in_matrix.GetLength(0); ix++)
    854808                        {
    855 
    856809                            TextBlock txt = new TextBlock();
    857810                            txt.VerticalAlignment = VerticalAlignment.Center;
     
    877830                            teba[(ix + rowper), (i + colper)].Opacity = 0.0;
    878831                        }
    879                     }
    880                    
     832                    }             
    881833                   
    882834                   reina = new TextBlock[input.Length];
     
    895847                        if (!Stop)
    896848                        reina[i].BeginAnimation(TextBlock.OpacityProperty,fadeIn);
    897 
    898 
    899849                    }
    900850
     
    909859                        reouta[i].Background = Brushes.Orange;
    910860                        reouta[i].Opacity = 0.0;
    911                         mywrap2.Children.Add(txt);
    912                      
    913                        
     861                        mywrap2.Children.Add(txt);   
    914862                    }
    915863                }
     
    917865         , null);
    918866        }
    919 
    920867    }
    921 
    922868}
Note: See TracChangeset for help on using the changeset viewer.