Free cookie consent management tool by TermsFeed Policy Generator

Changeset 4290 for trunk


Ignore:
Timestamp:
08/23/10 15:29:13 (14 years ago)
Author:
mkommend
Message:

Corrected cloning and deserializing of ReadOnlyCheckedItemCollection and -list (ticket #1169).

Location:
trunk/sources/HeuristicLab.Core/3.3/Collections
Files:
2 edited

Legend:

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

    r4068 r4290  
    2323using System.Collections.Generic;
    2424using HeuristicLab.Collections;
     25using HeuristicLab.Common;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2627
     
    3637    public ReadOnlyCheckedItemCollection(ICheckedItemCollection<T> collection)
    3738      : base(collection) {
    38       collection.CheckedItemsChanged += new CollectionItemsChangedEventHandler<T>(collection_CheckedItemsChanged);
     39      CheckedItemCollection.CheckedItemsChanged += new CollectionItemsChangedEventHandler<T>(collection_CheckedItemsChanged);
    3940    }
    4041
    4142    [StorableConstructor]
    4243    protected ReadOnlyCheckedItemCollection(bool deserializing) : base(deserializing) { }
     44    [StorableHook(HookType.AfterDeserialization)]
     45    private void AfterDeserializationHook() {
     46      CheckedItemCollection.CheckedItemsChanged += new CollectionItemsChangedEventHandler<T>(collection_CheckedItemsChanged);
     47    }
     48
     49    public override IDeepCloneable Clone(Common.Cloner cloner) {
     50      ReadOnlyCheckedItemCollection<T> clone = (ReadOnlyCheckedItemCollection<T>)base.Clone(cloner);
     51      clone.CheckedItemCollection.CheckedItemsChanged += new CollectionItemsChangedEventHandler<T>(clone.collection_CheckedItemsChanged);
     52      return clone;
     53    }
    4354
    4455    #region ReadOnlyCheckedItemCollection<T> Members
  • trunk/sources/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemList.cs

    r4068 r4290  
    3636    public ReadOnlyCheckedItemList(ICheckedItemList<T> list)
    3737      : base(list) {
    38       list.CheckedItemsChanged += new CollectionItemsChangedEventHandler<IndexedItem<T>>(list_CheckedItemsChanged);
     38      CheckedItemList.CheckedItemsChanged += new CollectionItemsChangedEventHandler<IndexedItem<T>>(list_CheckedItemsChanged);
    3939    }
    4040
    4141    [StorableConstructor]
    4242    protected ReadOnlyCheckedItemList(bool deserializing) : base(deserializing) { }
     43    [StorableHook(HookType.AfterDeserialization)]
     44    private void AfterDeserializationHook() {
     45      CheckedItemList.CheckedItemsChanged += new CollectionItemsChangedEventHandler<IndexedItem<T>>(list_CheckedItemsChanged);
     46    }
     47
     48    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     49      ReadOnlyCheckedItemList<T> clone = (ReadOnlyCheckedItemList<T>)base.Clone(cloner);
     50      clone.CheckedItemList.CheckedItemsChanged += new CollectionItemsChangedEventHandler<IndexedItem<T>>(clone.list_CheckedItemsChanged);
     51      return clone;
     52    }
     53
    4354
    4455    #region ICheckedItemList<T> Members
Note: See TracChangeset for help on using the changeset viewer.