Changeset 3390
- Timestamp:
- 04/18/10 02:27:02 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 15 added
- 16 edited
- 13 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj
r3384 r3390 122 122 </ItemGroup> 123 123 <ItemGroup> 124 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">125 <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>126 <Name>HeuristicLab.Common-3.3</Name>127 </ProjectReference>128 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">129 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>130 <Name>HeuristicLab.Persistence-3.3</Name>131 </ProjectReference>132 124 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj"> 133 125 <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project> -
trunk/sources/HeuristicLab.Collections/3.3/IObservableArray.cs
r3368 r3390 23 23 using System.Collections.Generic; 24 24 using System.ComponentModel; 25 using HeuristicLab.Common;26 25 27 26 namespace HeuristicLab.Collections { 28 public interface IObservableArray<T> : IList<T>, INotifyObservableArrayItemsChanged<T>, INotifyPropertyChanged , IContent{27 public interface IObservableArray<T> : IList<T>, INotifyObservableArrayItemsChanged<T>, INotifyPropertyChanged { 29 28 int Length { get; } 30 29 } -
trunk/sources/HeuristicLab.Collections/3.3/IObservableCollection.cs
r3368 r3390 23 23 using System.Collections.Generic; 24 24 using System.ComponentModel; 25 using HeuristicLab.Common;26 25 27 26 namespace HeuristicLab.Collections { 28 public interface IObservableCollection<T> : ICollection<T>, INotifyObservableCollectionItemsChanged<T>, INotifyPropertyChanged , IContent{ }27 public interface IObservableCollection<T> : ICollection<T>, INotifyObservableCollectionItemsChanged<T>, INotifyPropertyChanged { } 29 28 } -
trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs
r3370 r3390 25 25 using System.ComponentModel; 26 26 using System.Linq; 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 27 29 28 namespace HeuristicLab.Collections { 30 29 [Serializable] 31 [StorableClass]32 30 public class ObservableArray<T> : IObservableArray<T> { 33 [Storable]34 31 protected T[] array; 35 32 36 33 #region Properties 37 [Storable]38 private bool readOnlyView;39 public virtual bool ReadOnlyView {40 get { return readOnlyView; }41 set {42 if ((readOnlyView != value) && !array.IsReadOnly) {43 readOnlyView = value;44 OnReadOnlyViewChanged();45 OnPropertyChanged("ReadOnlyView");46 }47 }48 }49 50 34 public int Length { 51 35 get { return array.Length; } … … 76 60 public ObservableArray() { 77 61 array = new T[0]; 78 readOnlyView = array.IsReadOnly;79 62 } 80 63 public ObservableArray(int length) { 81 64 array = new T[length]; 82 readOnlyView = array.IsReadOnly;83 65 } 84 66 public ObservableArray(T[] array) { 85 67 this.array = (T[])array.Clone(); 86 readOnlyView = array.IsReadOnly;87 68 } 88 69 public ObservableArray(IEnumerable<T> collection) { 89 70 array = collection.ToArray(); 90 readOnlyView = array.IsReadOnly;91 71 } 92 72 #endregion … … 297 277 298 278 #region Events 299 [field: NonSerialized]300 public event EventHandler ReadOnlyViewChanged;301 protected virtual void OnReadOnlyViewChanged() {302 EventHandler handler = ReadOnlyViewChanged;303 if (handler != null) handler(this, EventArgs.Empty);304 }305 306 279 [field: NonSerialized] 307 280 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced; -
trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;27 26 28 27 namespace HeuristicLab.Collections { 29 28 [Serializable] 30 [StorableClass]31 29 public class ObservableCollection<T> : IObservableCollection<T> { 32 [Storable]33 30 protected List<T> list; 34 31 35 32 #region Properties 36 [Storable]37 private bool readOnlyView;38 public virtual bool ReadOnlyView {39 get { return readOnlyView; }40 set {41 if ((readOnlyView != value) && !((ICollection<T>)list).IsReadOnly) {42 readOnlyView = value;43 OnReadOnlyViewChanged();44 OnPropertyChanged("ReadOnlyView");45 }46 }47 }48 49 33 public int Capacity { 50 34 get { return list.Capacity; } … … 67 51 public ObservableCollection() { 68 52 list = new List<T>(); 69 readOnlyView = ((ICollection<T>)list).IsReadOnly;70 53 } 71 54 public ObservableCollection(int capacity) { 72 55 list = new List<T>(capacity); 73 readOnlyView = ((ICollection<T>)list).IsReadOnly;74 56 } 75 57 public ObservableCollection(IEnumerable<T> collection) { 76 58 list = new List<T>(collection); 77 readOnlyView = ((ICollection<T>)list).IsReadOnly;78 59 } 79 60 #endregion … … 205 186 #region Events 206 187 [field: NonSerialized] 207 public event EventHandler ReadOnlyViewChanged;208 protected virtual void OnReadOnlyViewChanged() {209 EventHandler handler = ReadOnlyViewChanged;210 if (handler != null) handler(this, EventArgs.Empty);211 }212 213 [field: NonSerialized]214 188 public event CollectionItemsChangedEventHandler<T> ItemsAdded; 215 189 protected virtual void OnItemsAdded(IEnumerable<T> items) { -
trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs
r3370 r3390 25 25 using System.ComponentModel; 26 26 using System.Linq; 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 27 29 28 namespace HeuristicLab.Collections { 30 29 [Serializable] 31 [StorableClass]32 30 public class ObservableDictionary<TKey, TValue> : IObservableDictionary<TKey, TValue> { 33 [Storable] 34 private Dictionary<TKey, TValue> dict; 31 protected Dictionary<TKey, TValue> dict; 35 32 36 33 #region Properties 37 [Storable]38 private bool readOnlyView;39 public virtual bool ReadOnlyView {40 get { return readOnlyView; }41 set {42 if ((readOnlyView != value) && !((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly) {43 readOnlyView = value;44 OnReadOnlyViewChanged();45 OnPropertyChanged("ReadOnlyView");46 }47 }48 }49 50 34 public ICollection<TKey> Keys { 51 35 get { return dict.Keys; } … … 84 68 public ObservableDictionary() { 85 69 dict = new Dictionary<TKey, TValue>(); 86 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;87 70 } 88 71 public ObservableDictionary(int capacity) { 89 72 dict = new Dictionary<TKey, TValue>(capacity); 90 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;91 73 } 92 74 public ObservableDictionary(IEqualityComparer<TKey> comparer) { 93 75 dict = new Dictionary<TKey, TValue>(comparer); 94 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;95 76 } 96 77 public ObservableDictionary(IDictionary<TKey, TValue> dictionary) { 97 78 dict = new Dictionary<TKey, TValue>(dictionary); 98 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;99 79 } 100 80 public ObservableDictionary(int capacity, IEqualityComparer<TKey> comparer) { 101 81 dict = new Dictionary<TKey, TValue>(capacity, comparer); 102 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;103 82 } 104 83 public ObservableDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey> comparer) { 105 84 dict = new Dictionary<TKey, TValue>(dictionary, comparer); 106 readOnlyView = ((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly;107 85 } 108 86 #endregion … … 200 178 #region Events 201 179 [field: NonSerialized] 202 public event EventHandler ReadOnlyViewChanged;203 protected virtual void OnReadOnlyViewChanged() {204 EventHandler handler = ReadOnlyViewChanged;205 if (handler != null) handler(this, EventArgs.Empty);206 }207 208 [field: NonSerialized]209 180 public event CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>> ItemsAdded; 210 181 protected virtual void OnItemsAdded(IEnumerable<KeyValuePair<TKey, TValue>> items) { -
trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs
r3370 r3390 25 25 using System.ComponentModel; 26 26 using System.Linq; 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 27 29 28 namespace HeuristicLab.Collections { 30 29 [Serializable] 31 [StorableClass]32 30 public abstract class ObservableKeyedCollection<TKey, TItem> : IObservableKeyedCollection<TKey, TItem> { 33 [Storable]34 31 protected Dictionary<TKey, TItem> dict; 35 32 36 33 #region Properties 37 [Storable]38 private bool readOnlyView;39 public virtual bool ReadOnlyView {40 get { return readOnlyView; }41 set {42 if ((readOnlyView != value) && !((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly) {43 readOnlyView = value;44 OnReadOnlyViewChanged();45 OnPropertyChanged("ReadOnlyView");46 }47 }48 }49 50 34 public int Count { 51 35 get { return dict.Count; } … … 68 52 protected ObservableKeyedCollection() { 69 53 dict = new Dictionary<TKey, TItem>(); 70 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;71 54 } 72 55 protected ObservableKeyedCollection(int capacity) { 73 56 dict = new Dictionary<TKey, TItem>(capacity); 74 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;75 57 } 76 58 protected ObservableKeyedCollection(IEqualityComparer<TKey> comparer) { 77 59 dict = new Dictionary<TKey, TItem>(comparer); 78 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;79 60 } 80 61 protected ObservableKeyedCollection(IEnumerable<TItem> collection) { … … 83 64 foreach (TItem item in collection) 84 65 dict.Add(GetKeyForItem(item), item); 85 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;86 66 } 87 67 protected ObservableKeyedCollection(int capacity, IEqualityComparer<TKey> comparer) { 88 68 dict = new Dictionary<TKey, TItem>(capacity, comparer); 89 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;90 69 } 91 70 protected ObservableKeyedCollection(IEnumerable<TItem> collection, IEqualityComparer<TKey> comparer) { … … 94 73 foreach (TItem item in collection) 95 74 dict.Add(GetKeyForItem(item), item); 96 readOnlyView = ((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly;97 75 } 98 76 #endregion … … 269 247 #region Events 270 248 [field: NonSerialized] 271 public event EventHandler ReadOnlyViewChanged;272 protected virtual void OnReadOnlyViewChanged() {273 EventHandler handler = ReadOnlyViewChanged;274 if (handler != null) handler(this, EventArgs.Empty);275 }276 277 [field: NonSerialized]278 249 public event CollectionItemsChangedEventHandler<TItem> ItemsAdded; 279 250 protected virtual void OnItemsAdded(IEnumerable<TItem> items) { -
trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;27 26 28 27 namespace HeuristicLab.Collections { 29 28 [Serializable] 30 [StorableClass]31 29 public class ObservableList<T> : IObservableList<T> { 32 [Storable]33 30 protected List<T> list; 34 31 35 32 #region Properties 36 [Storable]37 private bool readOnlyView;38 public virtual bool ReadOnlyView {39 get { return readOnlyView; }40 set {41 if ((readOnlyView != value) && !((ICollection<T>)list).IsReadOnly) {42 readOnlyView = value;43 OnReadOnlyViewChanged();44 OnPropertyChanged("ReadOnlyView");45 }46 }47 }48 49 33 public int Capacity { 50 34 get { return list.Capacity; } … … 81 65 public ObservableList() { 82 66 list = new List<T>(); 83 readOnlyView = ((ICollection<T>)list).IsReadOnly;84 67 } 85 68 public ObservableList(int capacity) { 86 69 list = new List<T>(capacity); 87 readOnlyView = ((ICollection<T>)list).IsReadOnly;88 70 } 89 71 public ObservableList(IEnumerable<T> collection) { 90 72 list = new List<T>(collection); 91 readOnlyView = ((ICollection<T>)list).IsReadOnly;92 73 } 93 74 #endregion … … 391 372 #region Events 392 373 [field: NonSerialized] 393 public event EventHandler ReadOnlyViewChanged;394 protected virtual void OnReadOnlyViewChanged() {395 EventHandler handler = ReadOnlyViewChanged;396 if (handler != null) handler(this, EventArgs.Empty);397 }398 399 [field: NonSerialized]400 374 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsAdded; 401 375 protected virtual void OnItemsAdded(IEnumerable<IndexedItem<T>> items) { -
trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs
r3370 r3390 25 25 using System.ComponentModel; 26 26 using System.Linq; 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 27 29 28 namespace HeuristicLab.Collections { 30 29 [Serializable] 31 [StorableClass]32 30 public class ObservableSet<T> : IObservableSet<T> { 33 [Storable]34 31 protected HashSet<T> set; 35 32 36 33 #region Properties 37 [Storable]38 private bool readOnlyView;39 public virtual bool ReadOnlyView {40 get { return readOnlyView; }41 set {42 if ((readOnlyView != value) && !((ICollection<T>)set).IsReadOnly) {43 readOnlyView = value;44 OnReadOnlyViewChanged();45 OnPropertyChanged("ReadOnlyView");46 }47 }48 }49 50 34 public IEqualityComparer<T> Comparer { 51 35 get { return set.Comparer; } … … 62 46 public ObservableSet() { 63 47 set = new HashSet<T>(); 64 readOnlyView = ((ICollection<T>)set).IsReadOnly;65 48 } 66 49 public ObservableSet(IEnumerable<T> collection) { 67 50 set = new HashSet<T>(collection); 68 readOnlyView = ((ICollection<T>)set).IsReadOnly;69 51 } 70 52 public ObservableSet(IEqualityComparer<T> comparer) { 71 53 set = new HashSet<T>(comparer); 72 readOnlyView = ((ICollection<T>)set).IsReadOnly;73 54 } 74 55 public ObservableSet(IEnumerable<T> collection, IEqualityComparer<T> comparer) { 75 56 set = new HashSet<T>(collection, comparer); 76 readOnlyView = ((ICollection<T>)set).IsReadOnly;77 57 } 78 58 #endregion … … 244 224 #region Events 245 225 [field: NonSerialized] 246 public event EventHandler ReadOnlyViewChanged;247 protected virtual void OnReadOnlyViewChanged() {248 EventHandler handler = ReadOnlyViewChanged;249 if (handler != null) handler(this, EventArgs.Empty);250 }251 252 [field: NonSerialized]253 226 public event CollectionItemsChangedEventHandler<T> ItemsAdded; 254 227 protected virtual void OnItemsAdded(IEnumerable<T> items) { -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;27 using HeuristicLab.Common;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableArray<T> : IObservableArray<T> { 33 [Storable] 34 private IObservableArray<T> array; 30 protected IObservableArray<T> array; 35 31 36 32 #region Properties 37 public bool ReadOnlyView {38 get { return true; }39 set { }40 }41 42 33 public int Length { 43 34 get { return array.Length; } … … 115 106 116 107 #region Events 117 [StorableHook(HookType.AfterDeserialization)]118 108 protected void RegisterEvents() { 119 109 array.ItemsReplaced += new CollectionItemsChangedEventHandler<IndexedItem<T>>(array_ItemsReplaced); … … 121 111 array.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<T>>(array_CollectionReset); 122 112 array.PropertyChanged += new PropertyChangedEventHandler(array_PropertyChanged); 123 }124 125 event EventHandler IContent.ReadOnlyViewChanged {126 add { }127 remove { }128 113 } 129 114 -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Common;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableCollection<T> : IObservableCollection<T> { 33 [Storable] 34 private IObservableCollection<T> collection; 30 protected IObservableCollection<T> collection; 35 31 36 32 #region Properties 37 public bool ReadOnlyView {38 get { return true; }39 set { }40 }41 42 33 public int Count { 43 34 get { return collection.Count; } … … 93 84 94 85 #region Events 95 [StorableHook(HookType.AfterDeserialization)]96 86 protected void RegisterEvents() { 97 87 collection.ItemsAdded += new CollectionItemsChangedEventHandler<T>(collection_ItemsAdded); … … 101 91 } 102 92 103 event EventHandler IContent.ReadOnlyViewChanged {104 add { }105 remove { }106 }107 93 108 94 [field: NonSerialized] -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Common;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableDictionary<TKey, TValue> : IObservableDictionary<TKey, TValue> { 33 [Storable] 34 private IObservableDictionary<TKey, TValue> dict; 30 protected IObservableDictionary<TKey, TValue> dict; 35 31 36 32 #region Properties 37 public bool ReadOnlyView {38 get { return true; }39 set { }40 }41 42 33 public ICollection<TKey> Keys { 43 34 get { return dict.Keys; } … … 120 111 121 112 #region Events 122 [StorableHook(HookType.AfterDeserialization)]123 113 protected void RegisterEvents() { 124 114 dict.ItemsAdded += new CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>>(dict_ItemsAdded); … … 127 117 dict.CollectionReset += new CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>>(dict_CollectionReset); 128 118 dict.PropertyChanged += new PropertyChangedEventHandler(dict_PropertyChanged); 129 }130 131 event EventHandler IContent.ReadOnlyViewChanged {132 add { }133 remove { }134 119 } 135 120 -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Common;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableKeyedCollection<TKey, TItem> : IObservableKeyedCollection<TKey, TItem> { 33 [Storable] 34 private IObservableKeyedCollection<TKey, TItem> collection; 30 protected IObservableKeyedCollection<TKey, TItem> collection; 35 31 36 32 #region Properties 37 public virtual bool ReadOnlyView {38 get { return true; }39 set { throw new NotSupportedException(); }40 }41 42 33 public int Count { 43 34 get { return collection.Count; } … … 109 100 110 101 #region Events 111 [StorableHook(HookType.AfterDeserialization)]112 102 protected void RegisterEvents() { 113 103 collection.ItemsAdded += new CollectionItemsChangedEventHandler<TItem>(collection_ItemsAdded); … … 116 106 collection.CollectionReset += new CollectionItemsChangedEventHandler<TItem>(collection_CollectionReset); 117 107 collection.PropertyChanged += new PropertyChangedEventHandler(collection_PropertyChanged); 118 }119 120 event EventHandler IContent.ReadOnlyViewChanged {121 add { }122 remove { }123 108 } 124 109 -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Common;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableList<T> : IObservableList<T> { 33 [Storable] 34 private IObservableList<T> list; 30 protected IObservableList<T> list; 35 31 36 32 #region Properties 37 public bool ReadOnlyView {38 get { return true; }39 set { }40 }41 42 33 public int Count { 43 34 get { return ((ICollection<T>)list).Count; } … … 112 103 113 104 #region Events 114 [StorableHook(HookType.AfterDeserialization)]115 105 protected void RegisterEvents() { 116 106 list.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<T>>(list_ItemsAdded); … … 125 115 } 126 116 127 event EventHandler IContent.ReadOnlyViewChanged {128 add { }129 remove { }130 }131 132 117 [field: NonSerialized] 133 118 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsAdded; -
trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs
r3370 r3390 24 24 using System.Collections.Generic; 25 25 using System.ComponentModel; 26 using HeuristicLab.Common;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 26 29 27 namespace HeuristicLab.Collections { 30 28 [Serializable] 31 [StorableClass]32 29 public class ReadOnlyObservableSet<T> : IObservableSet<T> { 33 [Storable] 34 private IObservableSet<T> set; 30 protected IObservableSet<T> set; 35 31 36 32 #region Properties 37 public bool ReadOnlyView {38 get { return true; }39 set { }40 }41 42 33 public int Count { 43 34 get { return set.Count; } … … 134 125 135 126 #region Events 136 [StorableHook(HookType.AfterDeserialization)]137 127 protected void RegisterEvents() { 138 128 set.ItemsAdded += new CollectionItemsChangedEventHandler<T>(set_ItemsAdded); … … 140 130 set.CollectionReset += new CollectionItemsChangedEventHandler<T>(set_CollectionReset); 141 131 set.PropertyChanged += new PropertyChangedEventHandler(set_PropertyChanged); 142 }143 144 event EventHandler IContent.ReadOnlyViewChanged {145 add { }146 remove { }147 132 } 148 133 -
trunk/sources/HeuristicLab.Core/3.3/Collections/ItemArray.cs
r3381 r3390 35 35 [StorableClass] 36 36 [Item("ItemArray<T>", "Represents an array of items.")] 37 public class ItemArray<T> : ObservableArray<T>, IItem where T : class, IItem {37 public class ItemArray<T> : ObservableArray<T>, IItemArray<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 ItemArray() : base() { } 49 public ItemArray(int length) : base(length) { } 50 public ItemArray(T[] array) : base(array) { } 51 public ItemArray(IEnumerable<T> collection) : base(collection) { } 48 [Storable] 49 private T[] Items { 50 get { return array; } 51 set { array = value; } 52 } 53 54 [Storable] 55 private bool readOnlyView; 56 public virtual bool ReadOnlyView { 57 get { return readOnlyView; } 58 set { 59 if ((readOnlyView != value) && !(array.IsReadOnly)) { 60 readOnlyView = value; 61 OnReadOnlyViewChanged(); 62 OnPropertyChanged("ReadOnlyView"); 63 } 64 } 65 } 66 67 public ItemArray() 68 : base() { 69 readOnlyView = array.IsReadOnly; 70 } 71 public ItemArray(int length) 72 : base(length) { 73 readOnlyView = array.IsReadOnly; 74 } 75 public ItemArray(T[] array) 76 : base(array) { 77 readOnlyView = array.IsReadOnly; 78 } 79 public ItemArray(IEnumerable<T> collection) 80 : base(collection) { 81 readOnlyView = array.IsReadOnly; 82 } 83 [StorableConstructor] 84 protected ItemArray(bool deserializing) { } 52 85 53 86 public object Clone() { 54 87 return Clone(new Cloner()); 55 88 } 56 57 89 public virtual IDeepCloneable Clone(Cloner cloner) { 58 90 ItemArray<T> clone = (ItemArray<T>)Activator.CreateInstance(this.GetType()); 59 91 cloner.RegisterClonedObject(this, clone); 60 clone. ReadOnlyView = ReadOnlyView;92 clone.readOnlyView = readOnlyView; 61 93 clone.array = this.Select(x => (T)cloner.Clone(x)).ToArray(); 62 94 return clone; 95 } 96 97 public new ReadOnlyItemArray<T> AsReadOnly() { 98 return new ReadOnlyItemArray<T>(this); 63 99 } 64 100 … … 77 113 if (handler != null) handler(this, EventArgs.Empty); 78 114 } 115 public event EventHandler ReadOnlyViewChanged; 116 protected virtual void OnReadOnlyViewChanged() { 117 EventHandler handler = ReadOnlyViewChanged; 118 if (handler != null) handler(this, EventArgs.Empty); 119 } 79 120 } 80 121 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/ItemCollection.cs
r3381 r3390 32 32 [StorableClass] 33 33 [Item("ItemCollection<T>", "Represents a collection of items.")] 34 public class ItemCollection<T> : ObservableCollection<T>, IItem where T : class, IItem {34 public class ItemCollection<T> : ObservableCollection<T>, IItemCollection<T> where T : class, IItem { 35 35 public virtual string ItemName { 36 36 get { return ItemAttribute.GetName(this.GetType()); } … … 43 43 } 44 44 45 public ItemCollection() : base() { } 46 public ItemCollection(int capacity) : base(capacity) { } 47 public ItemCollection(IEnumerable<T> collection) : base(collection) { } 45 [Storable] 46 private List<T> Items { 47 get { return list; } 48 set { list = value; } 49 } 50 51 [Storable] 52 private bool readOnlyView; 53 public virtual bool ReadOnlyView { 54 get { return readOnlyView; } 55 set { 56 if ((readOnlyView != value) && !((ICollection<T>)list).IsReadOnly) { 57 readOnlyView = value; 58 OnReadOnlyViewChanged(); 59 OnPropertyChanged("ReadOnlyView"); 60 } 61 } 62 } 63 64 public ItemCollection() 65 : base() { 66 readOnlyView = ((ICollection<T>)list).IsReadOnly; 67 } 68 public ItemCollection(int capacity) 69 : base(capacity) { 70 readOnlyView = ((ICollection<T>)list).IsReadOnly; 71 } 72 public ItemCollection(IEnumerable<T> collection) 73 : base(collection) { 74 readOnlyView = ((ICollection<T>)list).IsReadOnly; 75 } 76 [StorableConstructor] 77 protected ItemCollection(bool deserializing) { } 48 78 49 79 public object Clone() { 50 80 return Clone(new Cloner()); 51 81 } 52 53 82 public virtual IDeepCloneable Clone(Cloner cloner) { 54 83 ItemCollection<T> clone = (ItemCollection<T>)Activator.CreateInstance(this.GetType()); 55 84 cloner.RegisterClonedObject(this, clone); 56 clone. ReadOnlyView = ReadOnlyView;85 clone.readOnlyView = readOnlyView; 57 86 clone.list = new List<T>(this.Select(x => (T)cloner.Clone(x))); 58 87 return clone; 88 } 89 90 public new ReadOnlyItemCollection<T> AsReadOnly() { 91 return new ReadOnlyItemCollection<T>(this); 59 92 } 60 93 … … 73 106 if (handler != null) handler(this, EventArgs.Empty); 74 107 } 108 public event EventHandler ReadOnlyViewChanged; 109 protected virtual void OnReadOnlyViewChanged() { 110 EventHandler handler = ReadOnlyViewChanged; 111 if (handler != null) handler(this, EventArgs.Empty); 112 } 75 113 } 76 114 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/ItemList.cs
r3381 r3390 35 35 [StorableClass] 36 36 [Item("ItemList<T>", "Represents a list of items.")] 37 public class ItemList<T> : ObservableList<T>, IItem where T : class, IItem {37 public class ItemList<T> : ObservableList<T>, IItemList<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 ItemList() : base() { } 49 public ItemList(int capacity) : base(capacity) { } 50 public ItemList(IEnumerable<T> collection) : base(collection) { } 48 [Storable] 49 private List<T> Items { 50 get { return list; } 51 set { list = 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>)list).IsReadOnly) { 60 readOnlyView = value; 61 OnReadOnlyViewChanged(); 62 OnPropertyChanged("ReadOnlyView"); 63 } 64 } 65 } 66 67 public ItemList() 68 : base() { 69 readOnlyView = ((ICollection<T>)list).IsReadOnly; 70 } 71 public ItemList(int capacity) 72 : base(capacity) { 73 readOnlyView = ((ICollection<T>)list).IsReadOnly; 74 } 75 public ItemList(IEnumerable<T> collection) 76 : base(collection) { 77 readOnlyView = ((ICollection<T>)list).IsReadOnly; 78 } 79 [StorableConstructor] 80 protected ItemList(bool deserializing) { } 51 81 52 82 public object Clone() { 53 83 return Clone(new Cloner()); 54 84 } 55 56 85 public virtual IDeepCloneable Clone(Cloner cloner) { 57 86 ItemList<T> clone = (ItemList<T>)Activator.CreateInstance(this.GetType()); 58 87 cloner.RegisterClonedObject(this, clone); 59 clone. ReadOnlyView = ReadOnlyView;88 clone.readOnlyView = readOnlyView; 60 89 clone.list = new List<T>(this.Select(x => (T)cloner.Clone(x))); 61 90 return clone; 91 } 92 93 public new ReadOnlyItemList<T> AsReadOnly() { 94 return new ReadOnlyItemList<T>(this); 62 95 } 63 96 … … 76 109 if (handler != null) handler(this, EventArgs.Empty); 77 110 } 111 public event EventHandler ReadOnlyViewChanged; 112 protected virtual void OnReadOnlyViewChanged() { 113 EventHandler handler = ReadOnlyViewChanged; 114 if (handler != null) handler(this, EventArgs.Empty); 115 } 78 116 } 79 117 } -
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 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/NamedItemCollection.cs
r3381 r3390 31 31 [Item("NamedItemCollection<T>", "Represents a collection of named items.")] 32 32 [StorableClass] 33 public class NamedItemCollection<T> : ObservableKeyedCollection<string, T>, IItem where T : class, INamedItem { 34 public virtual string ItemName { 35 get { return ItemAttribute.GetName(this.GetType()); } 36 } 37 public virtual string ItemDescription { 38 get { return ItemAttribute.GetDescription(this.GetType()); } 39 } 40 public virtual Image ItemImage { 41 get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; } 42 } 43 33 public class NamedItemCollection<T> : KeyedItemCollection<string, T> where T : class, INamedItem { 44 34 public NamedItemCollection() : base() { } 45 35 public NamedItemCollection(int capacity) : base(capacity) { } … … 47 37 Initialize(); 48 38 } 39 [StorableConstructor] 40 protected NamedItemCollection(bool deserializing) { } 49 41 50 42 [StorableHook(HookType.AfterDeserialization)] … … 53 45 } 54 46 55 public object Clone() { 56 return Clone(new Cloner()); 57 } 58 public virtual IDeepCloneable Clone(Cloner cloner) { 59 NamedItemCollection<T> clone = (NamedItemCollection<T>)Activator.CreateInstance(this.GetType()); 60 cloner.RegisterClonedObject(this, clone); 61 clone.ReadOnlyView = ReadOnlyView; 62 foreach (string key in dict.Keys) 63 clone.dict.Add(key, (T)cloner.Clone(dict[key])); 47 public override IDeepCloneable Clone(Cloner cloner) { 48 NamedItemCollection<T> clone = (NamedItemCollection<T>)base.Clone(cloner); 64 49 clone.Initialize(); 65 50 return clone; 66 }67 68 public override string ToString() {69 return ItemName;70 }71 72 public event EventHandler ItemImageChanged;73 protected virtual void OnItemImageChanged() {74 EventHandler handler = ItemImageChanged;75 if (handler != null) handler(this, EventArgs.Empty);76 }77 public event EventHandler ToStringChanged;78 protected virtual void OnToStringChanged() {79 EventHandler handler = ToStringChanged;80 if (handler != null) handler(this, EventArgs.Empty);81 51 } 82 52 -
trunk/sources/HeuristicLab.Core/3.3/Collections/OperationCollection.cs
r3385 r3390 51 51 parallel = false; 52 52 } 53 [StorableConstructor] 54 private OperationCollection(bool deserializing) { } 53 55 54 56 public override IDeepCloneable Clone(Cloner cloner) { -
trunk/sources/HeuristicLab.Core/3.3/Collections/OperatorCollection.cs
r3381 r3390 35 35 public OperatorCollection() : base() { } 36 36 public OperatorCollection(IEnumerable<IOperator> collection) : base(collection) { } 37 [StorableConstructor] 38 protected OperatorCollection(bool deserializing) : base(deserializing) { } 37 39 } 38 40 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/OperatorList.cs
r3381 r3390 35 35 public OperatorList(int capacity) : base(capacity) { } 36 36 public OperatorList(IEnumerable<IOperator> collection) : base(collection) { } 37 [StorableConstructor] 38 protected OperatorList(bool deserializing) : base(deserializing) { } 37 39 } 38 40 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/OperatorSet.cs
r3381 r3390 34 34 public OperatorSet() : base() { } 35 35 public OperatorSet(IEnumerable<IOperator> collection) : base(collection) { } 36 [StorableConstructor] 37 protected OperatorSet(bool deserializing) : base(deserializing) { } 36 38 } 37 39 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/ParameterCollection.cs
r3381 r3390 30 30 public ParameterCollection(int capacity) : base(capacity) { } 31 31 public ParameterCollection(IEnumerable<IParameter> collection) : base(collection) { } 32 [StorableConstructor] 33 protected ParameterCollection(bool deserializing) : base(deserializing) { } 32 34 } 33 35 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/ScopeList.cs
r3381 r3390 32 32 public ScopeList(int capacity) : base(capacity) { } 33 33 public ScopeList(IEnumerable<IScope> collection) : base(collection) { } 34 [StorableConstructor] 35 private ScopeList(bool deserializing) : base(deserializing) { } 34 36 35 37 public override IDeepCloneable Clone(Cloner cloner) { -
trunk/sources/HeuristicLab.Core/3.3/Collections/ValueParameterCollection.cs
r3381 r3390 30 30 public ValueParameterCollection(int capacity) : base(capacity) { } 31 31 public ValueParameterCollection(IEnumerable<IValueParameter> collection) : base(collection) { } 32 [StorableConstructor] 33 protected ValueParameterCollection(bool deserializing) : base(deserializing) { } 32 34 } 33 35 } -
trunk/sources/HeuristicLab.Core/3.3/Collections/VariableCollection.cs
r3381 r3390 32 32 public VariableCollection(int capacity) : base(capacity) { } 33 33 public VariableCollection(IEnumerable<IVariable> collection) : base(collection) { } 34 [StorableConstructor] 35 private VariableCollection(bool deserializing) : base(deserializing) { } 34 36 35 37 public override IDeepCloneable Clone(Cloner cloner) { -
trunk/sources/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj
r3384 r3390 102 102 <Compile Include="Attributes\CreatableAttribute.cs" /> 103 103 <None Include="HeuristicLabCorePlugin.cs.frame" /> 104 <Compile Include="Collections\ReadOnlyItemDictionary.cs" /> 105 <Compile Include="Collections\ItemDictionary.cs" /> 106 <Compile Include="Collections\ReadOnlyKeyedItemCollection.cs" /> 107 <Compile Include="Collections\KeyedItemCollection.cs" /> 108 <Compile Include="Collections\ReadOnlyItemSet.cs" /> 109 <Compile Include="Collections\ReadOnlyItemList.cs" /> 110 <Compile Include="Collections\ReadOnlyItemArray.cs" /> 111 <Compile Include="Collections\ReadOnlyItemCollection.cs" /> 112 <Compile Include="Collections\ItemArray.cs" /> 113 <Compile Include="Collections\ItemCollection.cs" /> 114 <Compile Include="Collections\ItemList.cs" /> 115 <Compile Include="Collections\ItemSet.cs" /> 116 <Compile Include="Collections\NamedItemCollection.cs" /> 117 <Compile Include="Collections\OperationCollection.cs" /> 118 <Compile Include="Collections\OperatorCollection.cs" /> 119 <Compile Include="Collections\OperatorList.cs" /> 120 <Compile Include="Collections\OperatorSet.cs" /> 121 <Compile Include="Collections\ParameterCollection.cs" /> 122 <Compile Include="Collections\ScopeList.cs" /> 123 <Compile Include="Collections\ValueParameterCollection.cs" /> 124 <Compile Include="Collections\VariableCollection.cs" /> 125 <Compile Include="Interfaces\IKeyedItemCollection.cs" /> 126 <Compile Include="Interfaces\IItemList.cs" /> 127 <Compile Include="Interfaces\IItemSet.cs" /> 128 <Compile Include="Interfaces\IItemDictionary.cs" /> 129 <Compile Include="Interfaces\IItemArray.cs" /> 130 <Compile Include="Interfaces\IItemCollection.cs" /> 104 131 <Compile Include="Log.cs" /> 105 132 <Compile Include="Executable.cs" /> … … 112 139 <Compile Include="Interfaces\IExecutionContext.cs" /> 113 140 <Compile Include="Interfaces\IOperation.cs" /> 114 <Compile Include="OperationCollection.cs" />115 141 <Compile Include="ParameterizedNamedItem.cs" /> 116 <Compile Include="ValueParameterCollection.cs" />117 142 <Compile Include="Interfaces\IValueLookupParameter.cs" /> 118 143 <Compile Include="Interfaces\IValueParameter.cs" /> 119 144 <Compile Include="Interfaces\ILookupParameter.cs" /> 120 <Compile Include="ItemArray.cs" />121 145 <Compile Include="Engine.cs" /> 122 146 <Compile Include="Interfaces\IScope.cs" /> … … 126 150 <Compile Include="OperatorGraph.cs" /> 127 151 <Compile Include="Interfaces\IParameter.cs" /> 128 <Compile Include="OperatorCollection.cs" />129 <Compile Include="ItemCollection.cs" />130 <Compile Include="OperatorSet.cs" />131 <Compile Include="ItemSet.cs" />132 <Compile Include="ItemList.cs" />133 152 <Compile Include="Interfaces\IEngine.cs"> 134 153 <SubType>Code</SubType> 135 154 </Compile> 136 155 <Compile Include="ExecutionContext.cs" /> 137 <Compile Include="OperatorList.cs" />138 <Compile Include="ParameterCollection.cs" />139 <Compile Include="VariableCollection.cs" />140 <Compile Include="ScopeList.cs" />141 <Compile Include="NamedItemCollection.cs" />142 156 <Compile Include="Interfaces\INamedItem.cs" /> 143 157 <Compile Include="Interfaces\IItem.cs" />
Note: See TracChangeset
for help on using the changeset viewer.