Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/05/10 03:07:12 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • replaced Changed in IItem by ToStringChanged
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs

    r2852 r2932  
    3232  [Item("ItemCollection<T>", "Represents a collection of items.")]
    3333  public class ItemCollection<T> : ObservableCollection<T>, IItem where T : class, IItem {
    34     [Storable(Name = "RestoreEvents")]
    35     private object RestoreEvents {
    36       get { return null; }
    37       set {
    38         foreach (T item in this)
    39           if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
    40       }
    41     }
    42 
    4334    public virtual string ItemName {
    4435      get { return ItemAttribute.GetName(this.GetType()); }
     
    5344    public ItemCollection() : base() { }
    5445    public ItemCollection(int capacity) : base(capacity) { }
    55     public ItemCollection(IEnumerable<T> collection) : base(collection) {
    56       foreach (T item in this)
    57         if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
    58     }
     46    public ItemCollection(IEnumerable<T> collection) : base(collection) { }
    5947
    6048    public object Clone() {
     
    7260    }
    7361
    74     public event ChangedEventHandler Changed;
    75     protected void OnChanged() {
    76       OnChanged(new ChangedEventArgs());
    77     }
    78     protected virtual void OnChanged(ChangedEventArgs e) {
    79       if ((e.RegisterChangedObject(this)) && (Changed != null))
    80         Changed(this, e);
    81     }
    82 
    83     protected override void OnItemsAdded(IEnumerable<T> items) {
    84       foreach (T item in items)
    85         if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
    86       base.OnItemsAdded(items);
    87     }
    88     protected override void OnItemsRemoved(IEnumerable<T> items) {
    89       foreach (T item in items)
    90         if (item != null) item.Changed -= new ChangedEventHandler(Item_Changed);
    91       base.OnItemsRemoved(items);
    92     }
    93     protected override void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) {
    94       foreach (T oldItem in oldItems)
    95         if (oldItem != null) oldItem.Changed -= new ChangedEventHandler(Item_Changed);
    96       foreach (T item in items)
    97         if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);
    98       base.OnCollectionReset(items, oldItems);
    99     }
    100     protected override void OnPropertyChanged(string propertyName) {
    101       base.OnPropertyChanged(propertyName);
    102       OnChanged();
    103     }
    104 
    105     private void Item_Changed(object sender, ChangedEventArgs e) {
    106       OnChanged(e);
     62    public event EventHandler ToStringChanged;
     63    protected virtual void OnToStringChanged() {
     64      if (ToStringChanged != null)
     65        ToStringChanged(this, EventArgs.Empty);
    10766    }
    10867  }
Note: See TracChangeset for help on using the changeset viewer.