Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/29/19 15:00:56 (5 years ago)
Author:
mkommend
Message:

#3005: Added readonly flag to all value parameters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs

    r16565 r16872  
    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)) {
     135      this.readOnly = false;
    121136      this.getsCollected = true;
    122137      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    124139    public OptionalValueParameter(string name, bool getsCollected)
    125140      : base(name, typeof(T)) {
     141      this.readOnly = false;
    126142      this.getsCollected = getsCollected;
    127143      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    130146      : base(name, typeof(T)) {
    131147      this.value = value;
     148      this.readOnly = false;
    132149      this.getsCollected = true;
    133150      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    137154      : base(name, typeof(T)) {
    138155      this.value = value;
     156      this.readOnly = false;
    139157      this.getsCollected = getsCollected;
    140158      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    143161    public OptionalValueParameter(string name, string description)
    144162      : base(name, description, typeof(T)) {
     163      this.readOnly = false;
    145164      this.getsCollected = true;
    146165      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    148167    public OptionalValueParameter(string name, string description, bool getsCollected)
    149168      : base(name, description, typeof(T)) {
     169      this.readOnly = false;
    150170      this.getsCollected = getsCollected;
    151171      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    154174      : base(name, description, typeof(T)) {
    155175      this.value = value;
     176      this.readOnly = false;
    156177      this.getsCollected = true;
    157178      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    161182      : base(name, description, typeof(T)) {
    162183      this.value = value;
     184      this.readOnly = false;
    163185      this.getsCollected = getsCollected;
    164186      this.reactOnValueToStringChangedAndValueItemImageChanged = true;
     
    197219      OnToStringChanged();
    198220    }
     221
     222    public event EventHandler ReadOnlyChanged;
     223    protected virtual void OnReadOnlyChanged() {
     224      EventHandler handler = ReadOnlyChanged;
     225      if (handler != null) handler(this, EventArgs.Empty);
     226    }
    199227    public event EventHandler GetsCollectedChanged;
    200228    protected virtual void OnGetsCollectedChanged() {
Note: See TracChangeset for help on using the changeset viewer.