Ignore:
Timestamp:
Nov 24, 2009, 5:23:30 PM (12 years ago)
Author:
weyers
Message:

TranspositionPresentation readout added!

File:
1 edited

Legend:

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

    r884 r898  
    3737        private int outcount2;
    3838        private int outcount3;
     39        private int outcount4;
     40        private int outcount5;
    3941        private int countup;
     42        private int countup1;
     43        private int precountup;
    4044        private bool Stop = false;
    4145        private int per;
     
    4852        private int colper;
    4953        private byte[,] read_in_matrix;
     54        private byte[,] permuted_matrix;
     55        private Brush[,] mat_back;
    5056        private DoubleAnimation fadeIn;
    5157        private DoubleAnimation fadeOut;
     
    5763        }
    5864
    59         private void init(byte[,] read_in_matrix, String keyword, int per, int rein, int reout)
     65        private void init(byte[,] read_in_matrix, byte[,] permuted_matrix, String keyword, int per, int rein, int reout)
    6066        {
    6167            DoubleAnimation fadeIn = new DoubleAnimation();
     
    7278            this.fadeOut = fadeOut;
    7379            this.read_in_matrix=read_in_matrix;
     80            this.permuted_matrix = permuted_matrix;
    7481            this.per = per;
    7582            this.rein = rein;
     
    7784
    7885            countup = 0;
     86            countup1 = 0;
    7987            outcount2 = 0;
    80            
     88            outcount5 = 0;
     89            precountup = 0;
     90
    8191            Stop = false;
    8292            if (keyword == null)
     
    93103                    if (reout == 0)
    94104                        outcount = 2;
     105
     106                    if (reout == 1)
     107                        outcount4 = 0;
     108                    if (reout == 0)
     109                        outcount4 = 2;
    95110                   
    96111                    if(rein == 1)
     
    119134                        outcount = 0;
    120135
     136                    if (reout == 1)
     137                        outcount4 = 2;
     138                    if (reout == 0)
     139                        outcount4 = 0;
     140
    121141                    if (rein == 1)
    122142                        outcount1 = 2;
     
    139159            {
    140160                    this.my_Stop(this, EventArgs.Empty);
    141                     init(read_in_matrix,keyword, per, rein, reout);
     161                    init(read_in_matrix,permuted_matrix,keyword, per, rein, reout);
    142162                    create(read_in_matrix, permuted_matrix, key, keyword, input, output);
    143163
     
    150170        }
    151171
    152 
     172        private void postReadOut()
     173        {
     174            ColorAnimation myColorAnimation = new ColorAnimation();
     175            myColorAnimation.From = Colors.Orange;
     176            myColorAnimation.To = Colors.Transparent;
     177            myColorAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     178            Boolean no = true;
     179
     180            if (reouta != null)
     181            { 
     182                SolidColorBrush brush = new SolidColorBrush();
     183                brush.Color = Colors.Transparent;
     184
     185                for (int i = precountup; i < countup1; i++)
     186                {
     187                   reouta[i].Background = brush;
     188                }
     189
     190             
     191                if (reout == 0)
     192                {
     193                   
     194                    for (int i = 0; i < permuted_matrix.GetLength(0); i++)
     195                    {
     196                        if (i == permuted_matrix.GetLength(0) - 1 && outcount5 == permuted_matrix.GetLength(1) - 1 && !Stop)
     197                        {
     198                            no = false;
     199                        }
     200                    }
     201                }
     202                else
     203                {
     204                        for (int i = 0; i < permuted_matrix.GetLength(1); i++)
     205                        {
     206                            if (i == permuted_matrix.GetLength(1) - 1 && outcount5 == permuted_matrix.GetLength(0) - 1 && !Stop)
     207                            {
     208                                no = false;
     209                            }
     210                        }
     211                }
     212
     213                if (no)
     214                myColorAnimation.Completed += new EventHandler(my_Help7);
     215                if (!Stop)
     216                    brush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);
     217            }
     218        }
     219
     220        private void preReadOut ()
     221        {
     222            ColorAnimation myColorAnimation_green = new ColorAnimation();
     223            myColorAnimation_green.From = Colors.LawnGreen;
     224            myColorAnimation_green.To = Colors.Yellow;
     225            myColorAnimation_green.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     226
     227            ColorAnimation myColorAnimation_blue = new ColorAnimation();
     228            myColorAnimation_blue.From = Colors.AliceBlue;
     229            myColorAnimation_blue.To = Colors.Yellow;
     230            myColorAnimation_blue.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     231
     232            SolidColorBrush brush_green = new SolidColorBrush();
     233            SolidColorBrush brush_blue = new SolidColorBrush();
     234
     235            if (teba != null)
     236            {
     237
     238                if (reout == 0)
     239                {
     240                   
     241                    for (int i = rowper; i < teba.GetLength(0); i++)
     242                    {
     243                        if (mat_back[i - rowper, outcount4 - colper] == Brushes.LawnGreen)
     244                            teba[i, outcount4].Background = brush_green;
     245                        else
     246                            teba[i, outcount4].Background = brush_blue;
     247
     248                       
     249                    }
     250                   
     251                        myColorAnimation_green.Completed += new EventHandler(my_Help6);
     252
     253                   
     254                    if (!Stop)
     255                    {
     256                        brush_green.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_green);
     257                        brush_blue.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_blue);
     258                    }
     259                }
     260                else
     261                {
     262                   
     263                    for (int i = colper; i < teba.GetLength(1); i++)
     264                    {
     265                        if (mat_back[outcount4 - rowper, i - colper] == Brushes.LawnGreen)
     266                            teba[outcount4, i].Background = brush_green;
     267                        else
     268                            teba[outcount4, i].Background = brush_blue;
     269                    }
     270                   
     271                        myColorAnimation_blue.Completed += new EventHandler(my_Help6);
     272                    if (!Stop)
     273                    {
     274                        brush_blue.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_blue);
     275                        brush_green.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_green);
     276
     277                    }
     278                }
     279            }
     280
     281        }
    153282       
    154283        public void readout()
     
    159288            myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001-speed));
    160289
     290            DoubleAnimation fadeIn = new DoubleAnimation();
     291            fadeIn.From = 0.0;
     292            fadeIn.To = 1.0;
     293            fadeIn.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     294
     295           
     296
    161297            if (teba != null)
    162298            {
    163299                if (reout == 1)
     300                {
     301                    for (int i = 0; i < permuted_matrix.GetLength(1); i++)
     302                    {
     303
     304                        if (Convert.ToInt64(permuted_matrix[outcount5, i]) != 0)
     305                            {
     306                                reouta[countup1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
     307                                countup1++;
     308                            }   
     309                    }
     310
    164311                    for (int i = colper; i < teba.GetLength(1); i++)
    165312                    {
    166 
    167 
    168                         if (i == teba.GetLength(1) - 1 && outcount < teba.GetLength(0) - 1 && !Stop)
     313                        if (i == teba.GetLength(1) - 1 && !Stop)
    169314                        {
    170315                            myDoubleAnimation.Completed += new EventHandler(my_Help1);
    171316                        }
    172317                        teba[outcount, i].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    173                         if (i > 1)
    174                         {
    175                             textBox2.Text += teba[outcount, i].Text.ToString();
    176                         }
    177                     }
    178 
     318
     319                    }
     320                }
    179321
    180322                else
    181323                {
     324                    for (int i = 0; i < permuted_matrix.GetLength(0); i++)
     325                    {
     326                        if (Convert.ToInt64(permuted_matrix[ i,outcount5]) != 0)
     327                            {
     328                                reouta[countup1].BeginAnimation(TextBlock.OpacityProperty, fadeIn);
     329                                countup1++;
     330                            }
     331                               
     332                    }
     333
    182334                    for (int i = rowper; i < teba.GetLength(0); i++)
    183335                    {
    184 
    185 
    186                         if (i == teba.GetLength(0) - 1 && outcount < teba.GetLength(1) - 1 && !Stop)
     336                        if (i == teba.GetLength(0) - 1 && !Stop)
    187337                        {
    188338                            myDoubleAnimation.Completed += new EventHandler(my_Help1);
    189339                        }
    190                         teba[i,outcount].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
    191                         if (outcount > 1)
    192                         {
    193                             textBox2.Text += teba[i,outcount].Text.ToString();
    194                         }
     340                        teba[i, outcount].BeginAnimation(TextBlock.OpacityProperty, myDoubleAnimation);
     341
    195342                    }
    196343                }
     
    228375
    229376
    230                     else if (!Stop) { readout(); }
     377                    else if (!Stop) { preReadOut(); }
    231378                }
    232379            }
     
    234381           
    235382            {
    236                 readout();
     383                preReadOut();
    237384            }
    238385
     
    258405            outcount++;
    259406            if (!Stop)
    260                 readout();
     407                postReadOut();
    261408
    262409        }
     
    284431            readIn();
    285432        }
    286          private void my_Help5(object sender, EventArgs e)
     433
     434        private void my_Help7(object sender, EventArgs e)
     435        {
     436            precountup = countup1;
     437            textBox2.Text = "feuer";
     438            outcount5++;
     439            if (!Stop)
     440                preReadOut();
     441        }
     442         
     443        private void my_Help5(object sender, EventArgs e)
    287444        {
    288445            textBox2.Text = "feuer";
     
    290447            if (!Stop)
    291448            preReadIn();
     449        }
     450
     451        private void my_Help6(object sender, EventArgs e)
     452        {
     453            textBox2.Text = "feuer";
     454            outcount4++;
     455            if (!Stop)
     456                readout();
    292457        }
    293458
     
    489654        public void postReadIn()
    490655        {
    491             ColorAnimation myColorAnimation = new ColorAnimation();
    492             myColorAnimation.From = Colors.DarkOrange;
    493             myColorAnimation.To = Colors.Transparent;
    494             myColorAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    495 
    496             SolidColorBrush brush = new SolidColorBrush();
     656            ColorAnimation myColorAnimation_green = new ColorAnimation();
     657            myColorAnimation_green.From = Colors.Yellow;
     658            myColorAnimation_green.To = Colors.LawnGreen;
     659            myColorAnimation_green.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     660
     661            ColorAnimation myColorAnimation_blue = new ColorAnimation();
     662            myColorAnimation_blue.From = Colors.Yellow;
     663            myColorAnimation_blue.To = Colors.AliceBlue;
     664            myColorAnimation_blue.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     665
     666
     667            SolidColorBrush brush_green = new SolidColorBrush();
     668            SolidColorBrush brush_blue = new SolidColorBrush();
    497669
    498670            if (teba != null)
     
    504676                    for (int i = rowper; i < teba.GetLength(0); i++)
    505677                    {
    506 
    507                         teba[i, outcount3].Background = brush;
     678                        if (mat_back[i-rowper, outcount3-colper] == Brushes.LawnGreen)
     679                            teba[i, outcount3].Background = brush_green;
     680                        else
     681                            teba[i, outcount3].Background = brush_blue;
    508682
    509683                        if (i == teba.GetLength(0) - 1 && outcount3 == teba.GetLength(1) - 1 && !Stop)
     
    514688
    515689                    }
    516                     if(no)
    517                     myColorAnimation.Completed += new EventHandler(my_Help5);
     690                    if (no)
     691                    {
     692                        myColorAnimation_green.Completed += new EventHandler(my_Help5);
     693                       
     694                    }
    518695                    if (!Stop)
    519                     brush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);
     696                    {
     697                        brush_green.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_green);
     698                        brush_blue.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_blue);
     699                    }
    520700                }
    521701
     
    527707                    for (int i = colper; i < teba.GetLength(1); i++)
    528708                    {
    529 
    530 
    531                         teba[ outcount3,i].Background = brush;
     709                        if (mat_back[outcount3 - rowper, i - colper] == Brushes.LawnGreen)
     710                            teba[ outcount3, i].Background = brush_green;
     711                        else
     712                            teba[outcount3, i].Background = brush_blue;
     713
     714
    532715
    533716                        if (i == teba.GetLength(1) - 1 && outcount3 == teba.GetLength(0) - 1 && !Stop)
     
    539722                    }
    540723                    if (no)
    541                         myColorAnimation.Completed += new EventHandler(my_Help5);
     724                        myColorAnimation_blue.Completed += new EventHandler(my_Help5);
    542725                    if (!Stop)
    543                     brush.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation);
     726                    {
     727                        brush_blue.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_blue);
     728                        brush_green.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_green);
     729
     730                    }
    544731                }
    545732            }
     
    655842                    }
    656843
     844                    mat_back = new Brush[read_in_matrix.GetLength(0), read_in_matrix.GetLength(1)];
     845
    657846                    for (int i = 0; i < read_in_matrix.GetLength(1); i++)
    658847                    {
     
    671860                            else
    672861                                txt.Text = "";
    673                            // if (ix % 2 == x)
    674                              //   txt.Background = Brushes.AliceBlue;
    675                             //else
    676                               //  txt.Background = Brushes.LawnGreen;
    677                             txt.Background = Brushes.DarkOrange;
     862                            if (ix % 2 == x)
     863                                    mat_back[ix,i]= Brushes.AliceBlue;
     864                            else
     865                                mat_back[ix,i] = Brushes.LawnGreen;
     866                            txt.Background = Brushes.Yellow;
    678867                            txt.FontSize = 12;
    679868                            txt.Opacity = 1.0;
     
    718907                        txt.Text = Convert.ToChar(output[i]).ToString();
    719908                        reouta[i] = txt;
    720                         reouta[i].Background = Brushes.Transparent;
     909                        reouta[i].Background = Brushes.Orange;
    721910                        reouta[i].Opacity = 0.0;
    722911                        mywrap2.Children.Add(txt);
Note: See TracChangeset for help on using the changeset viewer.