Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/20/10 20:04:08 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • worked on parameterized items
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Operators/3.3/Operator.cs

    r2834 r2845  
    2222using System;
    2323using System.Drawing;
    24 using HeuristicLab.Collections;
    2524using HeuristicLab.Core;
    2625using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    3130  /// </summary>
    3231  [Item("Operator", "Base class for operators.")]
    33   public abstract class Operator : NamedItem, IOperator {
     32  public abstract class Operator : ParameterizedNamedItem, IOperator {
    3433    public override Image ItemImage {
    3534      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Method; }
     
    3736    public override bool CanChangeDescription {
    3837      get { return false; }
    39     }
    40 
    41     private ParameterCollection parameters;
    42     [Storable]
    43     protected ParameterCollection Parameters {
    44       get { return parameters;}
    45       private set {
    46         if (parameters != null) parameters.Changed -= new ChangedEventHandler(Parameters_Changed);
    47         parameters = value;
    48         readOnlyParameters = null;
    49         if (parameters != null) parameters.Changed += new ChangedEventHandler(Parameters_Changed);
    50       }
    51     }
    52     private ReadOnlyObservableKeyedCollection<string, IParameter> readOnlyParameters;
    53     IObservableKeyedCollection<string, IParameter> IParameterizedItem.Parameters {
    54       get {
    55         if (readOnlyParameters == null) readOnlyParameters = parameters.AsReadOnly();
    56         return readOnlyParameters;
    57       }
    5838    }
    5939
     
    10383    /// the canceled flag to <c>false</c> and the name of the operator to the type name.
    10484    /// </summary>
    105     protected Operator() {
    106       Name = ItemName;
    107       Parameters = new ParameterCollection();
    108       readOnlyParameters = null;
     85    protected Operator()
     86      : base() {
     87      canceled = false;
     88      breakpoint = false;
     89    }
     90    protected Operator(string name)
     91      : base(name) {
     92      canceled = false;
     93      breakpoint = false;
     94    }
     95    protected Operator(string name, ParameterCollection parameters)
     96      : base(name, parameters) {
     97      canceled = false;
     98      breakpoint = false;
     99    }
     100    protected Operator(string name, string description)
     101      : base(name, description) {
     102      canceled = false;
     103      breakpoint = false;
     104    }
     105    protected Operator(string name, string description, ParameterCollection parameters)
     106      : base(name, description, parameters) {
    109107      canceled = false;
    110108      breakpoint = false;
     
    119117    public override IDeepCloneable Clone(Cloner cloner) {
    120118      Operator clone = (Operator)base.Clone(cloner);
    121       clone.Parameters = (ParameterCollection)cloner.Clone(parameters);
    122119      clone.canceled = canceled;
    123120      clone.breakpoint = breakpoint;
     
    178175      }
    179176    }
    180 
    181     private void Parameters_Changed(object sender, ChangedEventArgs e) {
    182       OnChanged(e);
    183     }
    184177  }
    185178}
Note: See TracChangeset for help on using the changeset viewer.