Ignore:
Timestamp:
Nov 28, 2009, 6:28:20 PM (12 years ago)
Author:
weyers
Message:

TranspositionPresentation updated, scaling added, decrypt by column added, animations added!

Location:
trunk/CrypPlugins/Transposition
Files:
2 edited

Legend:

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

    r884 r912  
    77    VerticalAlignment="Stretch"
    88    Height="Auto" Width="Auto">
     9    <Canvas>
     10        <StackPanel  Width="Auto" Height="Auto" Name="Stack" Orientation="Vertical">
     11            <StackPanel Orientation="Horizontal" Name="mainGrid" Height="Auto" Width="Auto"  VerticalAlignment="Center">
    912
    10     <Grid Name="mainGrid" Height="Auto" Width="Auto"   >
     13               
     14               
     15                   
     16                    <WrapPanel Name="mywrap1" Orientation="Horizontal" Width="160"   >
    1117
    12         <Grid.RenderTransform>
    13             <ScaleTransform x:Name="PinScaleTransform2" ScaleX="1" ScaleY="1" />
    14         </Grid.RenderTransform>
     18                    </WrapPanel>
     19               
     20               
    1521
    16         <ScrollViewer VerticalAlignment="Top" HorizontalAlignment="Left">
     22                <Label Width="20"></Label>
     23                <Grid Name="myGrid"  Height="Auto" Width="Auto"  HorizontalAlignment="Center" VerticalAlignment="Top">
    1724
    18             <WrapPanel Name="mywrap1" Orientation="Horizontal" Width="Auto" MaxWidth="160" Height="Auto" >
     25                </Grid>
     26                <Label Width="20"></Label>
     27               
    1928
    20             </WrapPanel>
    21         </ScrollViewer>
     29                    <WrapPanel Name="mywrap2" Orientation="Horizontal" Width="160"  >
    2230
    23         <ScrollViewer VerticalAlignment="Top" HorizontalAlignment="Right">
    24 
    25             <WrapPanel Name="mywrap2" Orientation="Horizontal" Width="Auto" MaxWidth="160" Height="Auto" >
    26 
    27             </WrapPanel>
    28         </ScrollViewer>
     31                    </WrapPanel>
     32               
    2933
    3034
    31         <Grid Name="myGrid" MaxWidth="500" Height="Auto" Width="Auto"  HorizontalAlignment="Center" VerticalAlignment="Top">
    32 
    33         </Grid>
    3435
    3536
    36         <TextBox Visibility="Hidden" Name="textBox1"></TextBox>
    37         <TextBox  Name="textBox2" VerticalAlignment="Bottom"></TextBox>
     37                <TextBox Visibility="Hidden" Name="textBox1"></TextBox>
     38               
    3839
    39     </Grid>
    40    
     40            </StackPanel>
     41            <Label Height="10"></Label>
     42            <TextBox  Name="textBox2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="160"></TextBox>
     43        </StackPanel>
     44    </Canvas>
    4145       
    4246
  • trunk/CrypPlugins/Transposition/TranspositionPresentation.xaml.cs

    r901 r912  
    2828        public TranspositionPresentation()
    2929        {
    30             InitializeComponent();
    31         }
     30            InitializeComponent();
     31           SizeChanged += sizeChanged;
     32           
     33        }
     34
     35        public void sizeChanged(Object sender, EventArgs eventArgs)
     36        {
     37            this.Stack.RenderTransform = new ScaleTransform(this.ActualWidth / this.Stack.ActualWidth,
     38                                                       this.ActualHeight / this.Stack.ActualHeight);
     39        }
     40       
    3241
    3342       
     
    4756        private bool Stop = false;
    4857        private int per;
     58        private int act;
    4959        private int rein;
    5060        private int reout;
     
    5969        private DoubleAnimation fadeIn;
    6070        private DoubleAnimation fadeOut;
     71        private int[] key;
    6172
    6273        /// <summary>
     
    7889        /// <param name="rein"></param>
    7990        /// <param name="reout"></param>
    80         private void init(byte[,] read_in_matrix, byte[,] permuted_matrix, String keyword, int per, int rein, int reout)
    81         {
     91        private void init(byte[,] read_in_matrix, byte[,] permuted_matrix, String keyword, int per, int rein, int reout, int act, int[] key)
     92        {
     93           
    8294            DoubleAnimation fadeIn = new DoubleAnimation();
    8395            fadeIn.From = 0.0;
     
    8597            fadeIn.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    8698
     99           
     100
    87101            DoubleAnimation fadeOut = new DoubleAnimation();
    88102            fadeOut.From = 0.0;
     
    90104            fadeOut.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
    91105
     106            if (act == 0)
     107                    {
     108                        this.rein = rein;
     109                        this.reout = reout;
     110                    }
     111                    else
     112                    {
     113                        this.rein = reout;
     114                        this.reout = rein;
     115                    }
    92116            this.fadeIn = fadeIn;
    93117            this.fadeOut = fadeOut;
     
    95119            this.permuted_matrix = permuted_matrix;
    96120            this.per = per;
    97             this.rein = rein;
    98             this.reout = reout;
     121            this.act = act;
     122            this.key = key;
    99123
    100124            countup = 0;
     
    114138                    rowper = 0;
    115139                    colper = 2;
    116                     if (reout == 1)
     140                    if (this.reout == 1)
    117141                        outcount = 0;
    118142                    else
    119143                        outcount = 2;
    120144
    121                     if (reout == 1)
     145                    if (this.reout == 1)
    122146                        outcount4 = 0;
    123147                    else
    124148                        outcount4 = 2;
    125149                   
    126                     if(rein == 1)
     150                    if(this.rein == 1)
    127151                        outcount1 = 0;
    128152                    else
    129153                        outcount1 = 2;
    130154
    131                     if (rein == 1)
     155                    if (this.rein == 1)
    132156                        outcount3 = 0;
    133157
     
    140164                    colper = 0;
    141165
    142                     if (reout == 1)
     166                    if (this.reout == 1)
    143167                        outcount = 2;
    144168                    else
    145169                        outcount = 0;
    146170
    147                     if (reout == 1)
     171                    if (this.reout == 1)
    148172                        outcount4 = 2;
    149173                    else
    150174                        outcount4 = 0;
    151175
    152                     if (rein == 1)
     176                    if (this.rein == 1)
    153177                        outcount1 = 2;
    154178                    else
    155179                        outcount1 = 0;
    156180
    157                     if (rein == 1)
     181                    if (this.rein == 1)
    158182                        outcount3 = 2;
    159183                    else
     
    162186        }
    163187
    164         public void main(byte[,] read_in_matrix, byte[,] permuted_matrix, int[] key, String keyword, byte[] input, byte[] output, int per, int rein, int reout)
     188        public void main(byte[,] read_in_matrix, byte[,] permuted_matrix, int[] key, String keyword, byte[] input, byte[] output, int per, int rein, int reout,int act)
    165189        {
    166190
     
    168192            {
    169193                    this.my_Stop(this, EventArgs.Empty);
    170                     init(read_in_matrix,permuted_matrix,keyword, per, rein, reout);
     194                    init(read_in_matrix,permuted_matrix,keyword, per, rein, reout,act,key);
    171195                    create(read_in_matrix, permuted_matrix, key, keyword, input, output);
    172 
     196                   
    173197                    schleife = 0;
    174198                    //textBox1.Text = input;
     
    344368            if (per == 1)
    345369            {
    346                 if (teba != null)
    347                 {
    348                     if (i < teba.GetLength(0) - 1)
    349                     {
    350                         if (Convert.ToInt32(teba[i, 0].Text) != i + 1)
    351                         {
    352                             int s = 0;
    353                             for (int ix = i + 1; ix < teba.GetLength(0); ix++)
    354                             {
    355                                 if (Convert.ToInt32(teba[ix, 0].Text) == i + 1)
     370                if (teba != null && key != null)
     371                {
     372                    if (act == 0)
     373                    {
     374                        if (i < teba.GetLength(0) - 1)
     375                        {
     376                            if (Convert.ToInt32(teba[i, 0].Text) != i + 1)
     377                            {
     378                                int s = 0;
     379                                for (int ix = i + 1; ix < teba.GetLength(0); ix++)
    356380                                {
    357                                     s = ix;
     381                                    if (Convert.ToInt32(teba[ix, 0].Text) == i + 1)
     382                                    {
     383                                        s = ix;
     384                                    }
    358385                                }
     386                                preani(i, s);
     387
    359388                            }
    360                             ani(i, s);
    361                         }
    362                         else
    363                         {
    364                             schleife++;
    365                             sort(schleife);
    366                         }
    367                     }
    368                     else if (!Stop) { preReadOut(); }
    369                 }
     389                            else
     390                            {
     391                                schleife++;
     392                                sort(schleife);
     393                            }
     394
     395                        }
     396
     397                        else if (!Stop) { preReadOut(); }
     398                    }
     399                    else
     400                    {
     401                        if (i < teba.GetLength(0) - 1)
     402                        {
     403                            if (Convert.ToInt32(teba[i, 0].Text) != key[i])
     404                            {
     405                                int s = 0;
     406                                for (int ix = i + 1; ix < teba.GetLength(0); ix++)
     407                                {
     408                                    if (Convert.ToInt32(teba[ix, 0].Text) == key[i])
     409                                    {
     410                                        s = ix;
     411                                    }
     412                                }
     413                                preani(i, s);
     414
     415                            }
     416                            else
     417                            {
     418                                textBox2.Text += key[i];
     419                                schleife++;
     420                                sort(schleife);
     421                            }
     422
     423                        }
     424
     425                        else if (!Stop) { preReadOut(); }
     426                    }
     427                }
     428
    370429            }
    371430            else
     
    384443            myGrid.ColumnDefinitions.Clear();
    385444            myGrid.RowDefinitions.Clear();
     445            mywrap1.Children.Clear();
     446            mywrap2.Children.Clear();
     447
     448         
     449
    386450            outcount = 0;           
    387451
     
    408472        private void my_Help3(object sender, EventArgs e)
    409473        {
    410             textBox2.Text = "feuer";
     474            sizeChanged(this, EventArgs.Empty);
     475           
    411476            if (!Stop)
    412477            preReadIn();
     
    415480        private void my_Help4(object sender, EventArgs e)
    416481        {
    417             textBox2.Text = "feuer";
     482           
    418483            outcount2++;
    419484            if (!Stop)
     
    424489        {
    425490            precountup = countup1;
    426             textBox2.Text = "feuer";
     491           
    427492            outcount5++;
    428493            if (!Stop)
     
    432497        private void my_Help5(object sender, EventArgs e)
    433498        {
    434             textBox2.Text = "fäuer";
     499           
    435500            outcount3++;
    436501            if (!Stop)
     
    440505        private void my_Help6(object sender, EventArgs e)
    441506        {
    442             textBox2.Text = "feuer";
     507           
    443508            outcount4++;
    444509            if (!Stop)
     
    446511        }
    447512
     513        private void my_Help8(object sender, EventArgs e)
     514        {
     515            ani();
     516        }
     517
    448518        private void my_Help(object sender, EventArgs e)
    449519        {
    450520            schleife++;
     521            if (!Stop)
     522               postani();
     523        }
     524
     525        private void my_Help9(object sender, EventArgs e)
     526        {
    451527            if (!Stop)
    452528                sort(schleife);
     
    468544                        help1.Background = teba[nach, i].Background;
    469545                        teba[nach, i].Background = teba[von, i].Background;
    470                         teba[von, i].Background = help1.Background;                       
     546                        teba[von, i].Background = help1.Background;
     547
     548                        if(i>1)
     549                        {
     550                            Brush help2;
     551                            help2= mat_back[nach, i-2];
     552                            mat_back[nach, i-2] = mat_back[von, i-2];
     553                            mat_back[von, i-2] = help2;
     554                        }
     555
    471556                    }
    472557                }
     
    490575        }
    491576
     577        public void preani(int von, int nach)
     578        {
     579            this.von = von;
     580            this.nach = nach;
     581           
     582            ColorAnimation myColorAnimation_gy = new ColorAnimation();
     583            myColorAnimation_gy.From = Colors.LawnGreen;
     584            myColorAnimation_gy.To = Colors.Yellow;
     585            myColorAnimation_gy.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     586
     587            ColorAnimation myColorAnimation_by = new ColorAnimation();
     588            myColorAnimation_by.From = Colors.AliceBlue;
     589            myColorAnimation_by.To = Colors.Yellow;
     590            myColorAnimation_by.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     591
     592            ColorAnimation myColorAnimation_ty = new ColorAnimation();
     593            myColorAnimation_ty.From = Colors.Transparent;
     594            myColorAnimation_ty.To = Colors.Yellow;
     595            myColorAnimation_ty.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     596
     597
     598            SolidColorBrush brush_gy = new SolidColorBrush();
     599            SolidColorBrush brush_by = new SolidColorBrush();
     600            SolidColorBrush brush_ty = new SolidColorBrush();
     601
     602            ColorAnimation myColorAnimation_go = new ColorAnimation();
     603            myColorAnimation_go.From = Colors.LawnGreen;
     604            myColorAnimation_go.To = Colors.Orange;
     605            myColorAnimation_go.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     606
     607            ColorAnimation myColorAnimation_bo = new ColorAnimation();
     608            myColorAnimation_bo.From = Colors.AliceBlue;
     609            myColorAnimation_bo.To = Colors.Orange;
     610            myColorAnimation_bo.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     611
     612            ColorAnimation myColorAnimation_to = new ColorAnimation();
     613            myColorAnimation_to.From = Colors.Transparent;
     614            myColorAnimation_to.To = Colors.Orange;
     615            myColorAnimation_to.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     616
     617
     618            SolidColorBrush brush_go = new SolidColorBrush();
     619            SolidColorBrush brush_bo = new SolidColorBrush();
     620            SolidColorBrush brush_to = new SolidColorBrush();
     621
     622            if (teba != null)
     623                if (per == 1)
     624                    for (int i = 0; i < teba.GetLength(1); i++)
     625                    {
     626                        if (i > 1)
     627                        {
     628                            if (mat_back[von, i - 2].Equals(Brushes.LawnGreen))
     629                                teba[von, i].Background = brush_gy;
     630
     631                            if (mat_back[von, i - 2].Equals(Brushes.AliceBlue))
     632                                teba[von, i].Background = brush_by;
     633
     634                            if (mat_back[nach, i - 2].Equals(Brushes.LawnGreen))
     635                                teba[nach, i].Background = brush_go;
     636
     637                            if (mat_back[nach, i - 2].Equals(Brushes.AliceBlue))
     638                                teba[nach, i].Background = brush_bo;
     639                       
     640                        }
     641                        else
     642                        {
     643                            teba[von, i].Background = brush_ty;
     644                            teba[nach, i].Background = brush_to;
     645                        }
     646                    }
     647           
     648            brush_ty.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_ty);
     649            brush_gy.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_gy);
     650            brush_to.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_to);
     651            brush_go.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_go);
     652            brush_bo.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_bo);
     653            myColorAnimation_by.Completed += new EventHandler(my_Help8);
     654            brush_by.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_by);
     655
     656        }
     657
     658        public void postani()
     659       
     660        {
     661            ColorAnimation myColorAnimation_gy = new ColorAnimation();
     662            myColorAnimation_gy.From = Colors.Yellow;
     663            myColorAnimation_gy.To = Colors.LawnGreen;
     664            myColorAnimation_gy.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     665
     666            ColorAnimation myColorAnimation_by = new ColorAnimation();
     667            myColorAnimation_by.From = Colors.Yellow;
     668            myColorAnimation_by.To = Colors.AliceBlue;
     669            myColorAnimation_by.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     670
     671            ColorAnimation myColorAnimation_ty = new ColorAnimation();
     672            myColorAnimation_ty.From = Colors.Yellow;
     673            myColorAnimation_ty.To = Colors.Transparent;
     674            myColorAnimation_ty.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     675
     676
     677            SolidColorBrush brush_gy = new SolidColorBrush();
     678            SolidColorBrush brush_by = new SolidColorBrush();
     679            SolidColorBrush brush_ty = new SolidColorBrush();
     680
     681            ColorAnimation myColorAnimation_go = new ColorAnimation();
     682            myColorAnimation_go.From = Colors.Orange;
     683            myColorAnimation_go.To = Colors.LawnGreen;
     684            myColorAnimation_go.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     685
     686            ColorAnimation myColorAnimation_bo = new ColorAnimation();
     687            myColorAnimation_bo.From = Colors.Orange;
     688            myColorAnimation_bo.To = Colors.AliceBlue;
     689            myColorAnimation_bo.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     690
     691            ColorAnimation myColorAnimation_to = new ColorAnimation();
     692            myColorAnimation_to.From = Colors.Orange;
     693            myColorAnimation_to.To = Colors.Transparent;
     694            myColorAnimation_to.Duration = new Duration(TimeSpan.FromMilliseconds(1001 - speed));
     695
     696
     697            SolidColorBrush brush_go = new SolidColorBrush();
     698            SolidColorBrush brush_bo = new SolidColorBrush();
     699            SolidColorBrush brush_to = new SolidColorBrush();
     700
     701            if (teba != null)
     702                if (per == 1)
     703                    for (int i = 0; i < teba.GetLength(1); i++)
     704                    {
     705                        if (i > 1)
     706                        {
     707                            if (mat_back[nach, i - 2].Equals(Brushes.LawnGreen))
     708                                teba[nach, i].Background = brush_gy;
     709
     710                            if (mat_back[nach, i - 2].Equals(Brushes.AliceBlue))
     711                                teba[nach, i].Background = brush_by;
     712
     713                            if (mat_back[von, i - 2].Equals(Brushes.LawnGreen))
     714                                teba[von, i].Background = brush_go;
     715
     716                            if (mat_back[von, i - 2].Equals(Brushes.AliceBlue))
     717                                teba[von, i].Background = brush_bo;
     718
     719                        }
     720                        else
     721                        {
     722                            teba[nach, i].Background = brush_ty;
     723                            teba[von, i].Background = brush_to;
     724                        }
     725                    }
     726
     727            brush_ty.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_ty);
     728            brush_gy.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_gy);
     729            brush_to.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_to);
     730            brush_go.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_go);
     731            brush_bo.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_bo);
     732            myColorAnimation_by.Completed += new EventHandler(my_Help9);
     733            brush_by.BeginAnimation(SolidColorBrush.ColorProperty, myColorAnimation_by);
     734
     735        }
    492736        /// <summary>
    493737        /// animation being used in the permutationphase while sorting
     
    495739        /// <param name="von"></param>
    496740        /// <param name="nach"></param>
    497         public void ani( int von, int nach)
     741        public void ani()
    498742        {
    499743            DoubleAnimation myDoubleAnimation = new DoubleAnimation();
     
    502746            myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1001-speed));
    503747
    504             this.von = von;
    505             this.nach = nach;
    506 
     748           
    507749            if (teba != null)
    508750                if (per == 1)
     
    535777        public void preReadIn()
    536778        {
     779           
    537780            ColorAnimation myColorAnimation = new ColorAnimation();
    538781            myColorAnimation.From = Colors.Transparent;
     
    733976                    for (int i = 0; i < key.Length; i++)
    734977                    {
    735                         if (mainGrid.Width < 800)
    736                         {
    737                             myGrid.Width += 12;
    738                             mainGrid.Width += 12;
    739                         }                       
     978                                         
    740979                       
    741980                        TextBlock txt = new TextBlock();
     
    743982                       
    744983                        txt.VerticalAlignment = VerticalAlignment.Center;
    745                         txt.Text = s;
     984                        if (act == 0)
     985                            txt.Text = s;
     986                        else
     987                            txt.Text = "" + (i + 1);
    746988                        txt.FontSize = 12;
    747989                        txt.FontWeight = FontWeights.ExtraBold;
     
    749991                        txt.Width = 17;
    750992                        txt.Opacity = 0.0;
    751 
     993                       
    752994                        if (per == 1)
    753995                        {
     
    7711013                    {                       
    7721014                        char[] ch = keyword.ToCharArray();
     1015                        if (act == 1)
     1016                            Array.Sort(ch);
     1017
    7731018                        for (int i = 0; i < key.Length; i++)
    7741019                        {
     
    8621107                    }
    8631108                }
     1109               
    8641110            }
    8651111         , null);
Note: See TracChangeset for help on using the changeset viewer.