Ignore:
Timestamp:
Oct 1, 2009, 4:27:19 PM (12 years ago)
Author:
falk
Message:

added converter (not ready)

Location:
trunk/CrypPlugins/Converter
Files:
2 deleted
3 edited

Legend:

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

    r618 r623  
    2424using Cryptool.PluginBase.Miscellaneous;
    2525using System.Runtime.CompilerServices;
    26 
    27 namespace Cryptool.Plugins.Comparators
     26using Cryptool.Plugins.Converter;
     27
     28namespace Cryptool.Plugins.Converter
    2829{
    2930    [Author("Raoul Falk, Dennis Nolte", "falk@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-due.de")]
     
    3435        #region private variables
    3536
    36         private ComparatorsSettings settings = new ConverterSettings();
     37        private ConverterSettings settings = new ConverterSettings();
    3738        private object inputOne;
    3839        private object output;
     
    4445        public Converter()
    4546        {
    46             this.settings = new ConverterSettings();
     47           // this.settings = new ConverterSettings();
    4748            this.settings.OnPluginStatusChanged += settings_OnPluginStatusChanged;
    4849        }
     
    5455        }
    5556
    56         private void Comparators_LogMessage(string msg, NotificationLevel loglevel)
     57        private void Converter_LogMessage(string msg, NotificationLevel loglevel)
    5758        {
    5859            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(msg, this, loglevel));
     
    115116        public void Execute()
    116117        {
     118           
     119                if (!(InputOne is int[] || InputOne is byte[] || InputOne is CryptoolStream))
     120                {
     121                    //Wenn der Input ein Bool ist
     122                    if (InputOne is bool)
     123                    {
     124                        switch (this.settings.Converter)
     125                        {
     126                            case 0: // bool -> String
     127                                {
     128                                    string inpString = Convert.ToString(InputOne);
     129                                    Output = inpString;
     130                                    ProgressChanged(100, 100);
     131                                    break;
     132                                }
     133                            case 1: //int
     134                                {
     135                                    try // bool -> int Läuft
     136                                    {
     137                                        int inpInt;
     138
     139                                        if ((bool)InputOne)
     140                                        {
     141                                            inpInt = 1;
     142                                        }
     143                                        else
     144                                        {
     145                                            inpInt = 0;
     146                                        }
     147                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     148                                        Output = inpInt;
     149                                        ProgressChanged(100, 100);
     150                                    }
     151                                    catch (Exception e)
     152                                    {
     153                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     154                                    }
     155                                    break;
     156                                }
     157                            default: GuiLogMessage("The given Inputs are not convertable: ", NotificationLevel.Error); break;
     158                        }
     159                    }
     160                    else
     161                    {
     162                        string inpString = Convert.ToString(InputOne);
     163
     164                       
     165
     166                        switch (this.settings.Converter)
     167                        {
     168                            case 0: //String
     169                                {
     170                                    Output = inpString;
     171                                    ProgressChanged(100, 100);
     172                                    break;
     173                                }
     174                            case 1: //int
     175                                {
     176                                    try // string -> int Läuft
     177                                    {
     178                                        double temp = Convert.ToDouble(inpString);
     179                                        int temp2 = (int)temp;
     180                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     181                                        Output = temp2;
     182                                        ProgressChanged(100, 100);
     183                                    }
     184                                    catch (Exception e)
     185                                    {
     186                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     187                                    }
     188                                    break;
     189                                }
     190                            case 2: //short
     191                                {
     192
     193                                    try // string -> short Läuft
     194                                    {
     195                                        int temp = Convert.ToInt32(inpString);
     196                                        short temp2 = (short)temp;
     197                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     198                                        Output = temp2;
     199                                        ProgressChanged(100, 100);
     200                                    }
     201                                    catch (Exception e)
     202                                    {
     203                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     204                                    }
     205                                    break;
     206                                }
     207                            case 3: //byte
     208                                {
     209                                    try // string -> byte Läuft
     210                                    {
     211                                        byte temp = Convert.ToByte(inpString);
     212                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     213                                        Output = temp;
     214                                        ProgressChanged(100, 100);
     215                                    }
     216                                    catch (Exception e)
     217                                    {
     218                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     219                                    }
     220                                    break;
     221                                }
     222                            case 4: //double
     223                                {
     224                                    try // string -> double Läuft
     225                                    {
     226                                        if (inpString.Contains("."))
     227                                        {
     228                                            while (inpString.Contains(".") && (inpString.IndexOf(".") != inpString.LastIndexOf(".")))
     229                                            {
     230                                                int position = inpString.IndexOf(".");
     231                                                inpString.Insert(position, ",");
     232                                                inpString.Remove(position - 1, 1);
     233                                            }
     234                                        }
     235                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     236                                        double temp = Convert.ToDouble(inpString);
     237                                        Output = temp;
     238                                       
     239                                        ProgressChanged(100, 100);
     240                                    }
     241                                    catch (Exception e)
     242                                    {
     243                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     244                                    }
     245                                    break;
     246
     247                                }
     248                            case 5: //bigint
     249                                {
     250                                    try // string -> bigint Läuft
     251                                    {
     252                                        string temp1 = (string)inpString;
     253                                        BigInteger temp = BigInteger.parseExpression(temp1);
     254                                        GuiLogMessage("cast klappt", NotificationLevel.Info);
     255                                        Output = temp;
     256                                        ProgressChanged(100, 100);
     257                                    }
     258                                    catch (Exception e)
     259                                    {
     260                                        GuiLogMessage("The given Inputs are not convertable: " + e.Message, NotificationLevel.Error);
     261                                    }
     262                                    break;
     263                                }
     264                            case 6: // int[]
     265                                {
     266                                    GuiLogMessage("Conversion from String to int[] not defined: ", NotificationLevel.Error);
     267                                    break;
     268                                }
     269                            case 7: // byte[]
     270                                {
     271                                    GuiLogMessage("Conversion from String to byte[] not defined: ", NotificationLevel.Error);
     272                                    break;
     273                                }
     274                            case 8: //cryptoolstream
     275                                {
     276                                    GuiLogMessage("redundant", NotificationLevel.Error);
     277                                    break;
     278                                }
     279
     280                        }
     281                    }
     282                }
     283                else
     284                {
     285                    GuiLogMessage("array and cryptoolstream input not yet implemented", NotificationLevel.Error);
     286                }
     287
    117288           
    118289        }
     290
    119291
    120292        public void Initialize()
  • trunk/CrypPlugins/Converter/Converter.csproj

    r618 r623  
    6666  </ItemGroup>
    6767  <ItemGroup>
    68     <Folder Include="icons\" />
     68    <Resource Include="icons\icon.png" />
    6969  </ItemGroup>
    7070  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
     
    7676  </Target>
    7777  -->
     78  <PropertyGroup>
     79    <PostBuildEvent>cd "$(ProjectDir)"
     80cd ..\..\CrypWin\$(OutDir)
     81if not exist "./CrypPlugins" mkdir "./CrypPlugins"
     82
     83del /F /S /Q /s /q "Converter*.*"
     84copy "$(TargetDir)Converter*.*" "./CrypPlugins"</PostBuildEvent>
     85  </PropertyGroup>
    7886</Project>
  • trunk/CrypPlugins/Converter/ConverterSettings.cs

    r618 r623  
    2525using Cryptool.PluginBase;
    2626
    27 namespace Cryptool.Plugins.Comparators
     27namespace Cryptool.Plugins.Converter
    2828{
    2929    public class ConverterSettings : ISettings
    3030    {
    3131        #region private variables
    32         private int comparator = 0; // 0 =, 1 !=, 2 <, 3 >, 4 <=, 5 >=
     32        private int converter = 0; // 0 = int, 1 = biginteger, 2 = short, 3 = byte, 4 = double, 5 = string
    3333        private bool hasChanges;
    3434        #endregion
    3535
    3636        #region taskpane
    37         [TaskPane("Converter", "Choose the output type", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "int", "biginteger", "short", "byte", "double", "string" })]
    38         public int Comparator
     37        [TaskPane("Converter", "Choose the output type", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "string", "int", "short", "byte", "double", "BigInteger", "int[]", "byte[]","Cryptoolstream" })]
     38     
     39        public int Converter
    3940        {
    40             get { return this.comparator; }
     41            get { return this.converter; }
    4142            set
    4243            {
    43                 if (value != this.comparator)
     44                if (value != this.converter)
    4445                {
    45                     this.comparator = value;
    46                     OnPropertyChanged("Comparator");
     46                    this.converter = value;
     47                    OnPropertyChanged("Converter");
    4748                    HasChanges = true;
    4849
    49                     ChangePluginIcon(comparator);
     50                   // ChangePluginIcon(converter);
    5051                }
    5152            }
Note: See TracChangeset for help on using the changeset viewer.