- Timestamp:
- 04/18/10 02:27:02 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Core/3.3/Collections
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core/3.3/Collections/ItemSet.cs
r3381 r3390 35 35 [StorableClass] 36 36 [Item("ItemSet<T>", "Represents a set of items.")] 37 public class ItemSet<T> : ObservableSet<T>, IItem where T : class, IItem {37 public class ItemSet<T> : ObservableSet<T>, IItemSet<T> where T : class, IItem { 38 38 public virtual string ItemName { 39 39 get { return ItemAttribute.GetName(this.GetType()); } … … 46 46 } 47 47 48 public ItemSet() : base() { } 49 public ItemSet(IEnumerable<T> collection) : base(collection) { } 48 [Storable] 49 private HashSet<T> Items { 50 get { return set; } 51 set { set = value; } 52 } 53 54 [Storable] 55 private bool readOnlyView; 56 public virtual bool ReadOnlyView { 57 get { return readOnlyView; } 58 set { 59 if ((readOnlyView != value) && !((ICollection<T>)set).IsReadOnly) { 60 readOnlyView = value; 61 OnReadOnlyViewChanged(); 62 OnPropertyChanged("ReadOnlyView"); 63 } 64 } 65 } 66 67 public ItemSet() 68 : base() { 69 readOnlyView = ((ICollection<T>)set).IsReadOnly; 70 } 71 public ItemSet(IEnumerable<T> collection) 72 : base(collection) { 73 readOnlyView = ((ICollection<T>)set).IsReadOnly; 74 } 75 [StorableConstructor] 76 protected ItemSet(bool deserializing) { } 50 77 51 78 public object Clone() { 52 79 return Clone(new Cloner()); 53 80 } 54 55 81 public virtual IDeepCloneable Clone(Cloner cloner) { 56 82 ItemSet<T> clone = (ItemSet<T>)Activator.CreateInstance(this.GetType()); 57 83 cloner.RegisterClonedObject(this, clone); 58 clone. ReadOnlyView = ReadOnlyView;84 clone.readOnlyView = readOnlyView; 59 85 clone.set = new HashSet<T>(this.Select(x => (T)cloner.Clone(x))); 60 86 return clone; 87 } 88 89 public new ReadOnlyItemSet<T> AsReadOnly() { 90 return new ReadOnlyItemSet<T>(this); 61 91 } 62 92 … … 75 105 if (handler != null) handler(this, EventArgs.Empty); 76 106 } 107 public event EventHandler ReadOnlyViewChanged; 108 protected virtual void OnReadOnlyViewChanged() { 109 EventHandler handler = ReadOnlyViewChanged; 110 if (handler != null) handler(this, EventArgs.Empty); 111 } 77 112 } 78 113 }
Note: See TracChangeset
for help on using the changeset viewer.