Ignore:
Timestamp:
Dec 14, 2009, 6:37:16 PM (12 years ago)
Author:
kohnen
Message:

added visibility for Regex-TextBox.
Removed 'cointains' option

Location:
trunk/CrypPlugins/CostFunction
Files:
2 edited

Legend:

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

    r931 r991  
    200200                        this.Value = calculateNGrams(bigramInput, 2, 1);
    201201                        break;
    202                     case 5: //contains
    203                         this.Value = contains(bigramInput);
    204                         break;
    205                     case 6: //regular expressions
     202                    case 5: //regular expressions
    206203                        this.Value = regex(bigramInput);
    207204                        break;
     
    276273
    277274
    278         public double contains(string input)
    279         {
    280             if (settings.Contains == null)
    281             {
    282                 GuiLogMessage("There is no text to be searched for. Please insert text in the 'Contains text / Regular Expression' - Textarea", NotificationLevel.Error);
     275        //public double contains(string input)
     276        //{
     277        //    if (settings.Contains == null)
     278        //    {
     279        //        GuiLogMessage("There is no text to be searched for. Please insert text in the 'Contains text / Regular Expression' - Textarea", NotificationLevel.Error);
     280        //        return new Double();
     281        //    }
     282
     283        //    if (input.Contains(settings.Contains))
     284        //    {
     285        //        return 1.0;
     286        //    }
     287        //    return -1.0;
     288        //}
     289
     290        public double regex(string input)
     291        {
     292            if (settings.RegEx == null)
     293            {
     294                GuiLogMessage("There is no Regular Expression to be searched for. Please insert regex in the 'Regular Expression' - Textarea", NotificationLevel.Error);
    283295                return new Double();
    284296            }
    285 
    286             if (input.Contains(settings.Contains))
    287             {
    288                 return 1.0;
    289             }
    290             return -1.0;
    291         }
    292 
    293         public double regex(string input)
    294         {
    295             if (settings.Contains == null)
    296             {
    297                 GuiLogMessage("There is no Regular Expression to be searched for. Please insert regex in the 'Contains text / Regular Expression' - Textarea", NotificationLevel.Error);
    298                 return new Double();
    299             }
    300297            try
    301298            {
    302                 Match match = Regex.Match(input, settings.Contains);
     299                Match match = Regex.Match(input, settings.RegEx);
    303300                if (match.Success)
    304301                {
     
    582579                case 4: // percentage
    583580                    return RelationOperator.LargerThen;
    584                 case 5: // Contains
    585                     return RelationOperator.LargerThen;
    586                 case 6: // Regular Expression
     581                case 5: // Regular Expression
    587582                    return RelationOperator.LargerThen;
    588583                default:
     
    625620                case 4: // Bigrams: Percentaged
    626621                    return plugin.calculateNGrams(plugin.ByteArrayToString(text), 2, 1);
    627                 case 5: //Contains
    628                     return plugin.contains(plugin.ByteArrayToString(text));
    629                 case 6: // regular expression
     622                case 5: // regular expression
    630623                    return plugin.regex(plugin.ByteArrayToString(text));
    631624                default:
  • trunk/CrypPlugins/CostFunction/CostFunctionSettings.cs

    r929 r991  
    2222using Cryptool.PluginBase;
    2323using System.Collections.ObjectModel;
     24using System.Windows;
    2425
    2526namespace Cryptool.Plugins.CostFunction
     
    2930        #region private variables
    3031        private bool hasChanges = false;
    31         private int functionType=0;
     32        private int functionType;
    3233        private String bytesToUse = "256";
    3334        #endregion
    3435       
    35         [TaskPane("FunctionType", "Select the type of function", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Index of coincidence", "Entropy", "Bigrams: log 2", "Bigrams: Sinkov", "Bigrams: Percentaged", "Contains", "Regular Expression"})]
     36        [TaskPane("FunctionType", "Select the type of function", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Index of coincidence", "Entropy", "Bigrams: log 2", "Bigrams: Sinkov", "Bigrams: Percentaged", "Regular Expression"})]
    3637        public int FunctionType
    3738        {
     
    3940            set
    4041            {
    41                 functionType = value;
     42                this.functionType = (int)value;
     43                UpdateTaskPaneVisibility();
    4244                OnPropertyChanged("FunctionType");
    4345            }
     
    5456            {
    5557                bytesToUse = value;
    56                 OnPropertyChanged("bytesToUse");
     58                OnPropertyChanged("BytesToUse");
    5759            }
    5860        }
    5961
     62        public event TaskPaneAttributeChangedHandler TaskPaneAttributeChanged;
    6063
    61         private string contains;
    62         [TaskPane("Contains text / Regular Expression:", "Text checked for / Regular Expression match", null, 5, false, DisplayLevel.Beginner, ControlType.TextBox)]
    63         public String Contains
     64        internal void UpdateTaskPaneVisibility()
     65        {
     66            if (TaskPaneAttributeChanged == null)
     67            {
     68                return;
     69            }
     70
     71            if (functionType.Equals(5))
     72            {
     73                TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("BytesToUse", Visibility.Visible)));
     74                TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("RegEx", Visibility.Visible)));
     75            }
     76            else
     77            {
     78                TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("BytesToUse", Visibility.Visible)));
     79                TaskPaneAttributeChanged(this, new TaskPaneAttributeChangedEventArgs(new TaskPaneAttribteContainer("RegEx", Visibility.Collapsed)));
     80            }
     81
     82        }
     83
     84
     85        private string regEx;
     86        [TaskPane("Regular Expression:", "Regular Expression match", null, 5, false, DisplayLevel.Beginner, ControlType.TextBox)]
     87        public String RegEx
    6488        {
    6589            get
    6690            {
    67                 return contains;
     91                return regEx;
    6892            }
    6993            set
    7094            {
    71                 contains = value;
    72                 OnPropertyChanged("contains");
     95                regEx = value;
     96                OnPropertyChanged("RegEx");
    7397            }
    7498        }
Note: See TracChangeset for help on using the changeset viewer.