Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/13/19 13:59:30 (5 years ago)
Author:
mkommend
Message:

#2521: Merged trunk changes up to r16945 into branch.

Location:
branches/2521_ProblemRefactoring
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring

  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs

    r16723 r16946  
    2222using System;
    2323using System.Drawing;
     24using HEAL.Attic;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
    26 using HEAL.Attic;
    2727
    2828namespace HeuristicLab.Parameters {
     
    4545      get { return this.value; }
    4646      set {
     47        if (ReadOnly) throw new InvalidOperationException("Cannot set the value of a readonly parameter.");
    4748        if (value != this.value) {
    4849          DeregisterValueEvents();
     
    6364          );
    6465        Value = val;
     66      }
     67    }
     68
     69    [Storable(DefaultValue = false)]
     70    private bool readOnly;
     71    public bool ReadOnly {
     72      get { return readOnly; }
     73      set {
     74        if (value == readOnly) return;
     75        readOnly = value;
     76        OnReadOnlyChanged();
    6577      }
    6678    }
     
    108120      : base(original, cloner) {
    109121      value = cloner.Clone(original.value);
     122      readOnly = original.readOnly;
    110123      getsCollected = original.getsCollected;
    111124      reactOnValueToStringChangedAndValueItemImageChanged = original.reactOnValueToStringChangedAndValueItemImageChanged;
     
    114127    public OptionalValueParameter()
    115128      : base("Anonymous", typeof(T)) {
     129      this.readOnly = false;
    116130      this.getsCollected = true;
    117131      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    119133    public OptionalValueParameter(string name)
    120134      : base(name, typeof(T)) {
    121       this.getsCollected = true;
    122       this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    123     }
    124     public OptionalValueParameter(string name, bool getsCollected)
    125       : base(name, typeof(T)) {
    126       this.getsCollected = getsCollected;
     135      this.readOnly = false;
     136      this.getsCollected = true;
    127137      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    128138    }
     
    130140      : base(name, typeof(T)) {
    131141      this.value = value;
    132       this.getsCollected = true;
    133       this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    134       RegisterValueEvents();
    135     }
    136     public OptionalValueParameter(string name, T value, bool getsCollected)
    137       : base(name, typeof(T)) {
    138       this.value = value;
    139       this.getsCollected = getsCollected;
     142      this.readOnly = false;
     143      this.getsCollected = true;
    140144      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    141145      RegisterValueEvents();
     
    143147    public OptionalValueParameter(string name, string description)
    144148      : base(name, description, typeof(T)) {
    145       this.getsCollected = true;
    146       this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    147     }
    148     public OptionalValueParameter(string name, string description, bool getsCollected)
    149       : base(name, description, typeof(T)) {
    150       this.getsCollected = getsCollected;
    151       this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    152     }
     149      this.readOnly = false;
     150      this.getsCollected = true;
     151      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     152    }
     153
    153154    public OptionalValueParameter(string name, string description, T value)
    154155      : base(name, description, typeof(T)) {
    155156      this.value = value;
    156       this.getsCollected = true;
    157       this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    158       RegisterValueEvents();
    159     }
    160     public OptionalValueParameter(string name, string description, T value, bool getsCollected)
    161       : base(name, description, typeof(T)) {
    162       this.value = value;
    163       this.getsCollected = getsCollected;
     157      this.readOnly = false;
     158      this.getsCollected = true;
    164159      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
    165160      RegisterValueEvents();
     
    197192      OnToStringChanged();
    198193    }
     194
     195    public event EventHandler ReadOnlyChanged;
     196    protected virtual void OnReadOnlyChanged() {
     197      EventHandler handler = ReadOnlyChanged;
     198      if (handler != null) handler(this, EventArgs.Empty);
     199    }
    199200    public event EventHandler GetsCollectedChanged;
    200201    protected virtual void OnGetsCollectedChanged() {
Note: See TracChangeset for help on using the changeset viewer.