diff --git a/Nuclex.Support (PC).csproj b/Nuclex.Support (PC).csproj
index 98c1ad2..e65c43f 100644
--- a/Nuclex.Support (PC).csproj
+++ b/Nuclex.Support (PC).csproj
@@ -65,10 +65,6 @@
-
- false
- AcquiringCollection
-
false
ItemEventArgs
@@ -304,4 +300,4 @@
-->
-
\ No newline at end of file
+
diff --git a/Nuclex.Support.build b/Nuclex.Support.build
new file mode 100644
index 0000000..3c9f37c
--- /dev/null
+++ b/Nuclex.Support.build
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Collections/AcquiringCollection.cs b/Source/Collections/AcquiringCollection.cs
deleted file mode 100644
index afe73e3..0000000
--- a/Source/Collections/AcquiringCollection.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-#region CPL License
-/*
-Nuclex Framework
-Copyright (C) 2002-2007 Nuclex Development Labs
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the IBM Common Public License as
-published by the IBM Corporation; either version 1.0 of the
-License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-IBM Common Public License for more details.
-
-You should have received a copy of the IBM Common Public
-License along with this library
-*/
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-
-namespace Nuclex.Support.Collections {
-
- /// Generic collection of progressions
- public class AcquiringCollection : Collection {
-
- ///
- /// Initializes a new instance of the ObservableCollection class that is empty.
- ///
- public AcquiringCollection() : base() { }
-
- ///
- /// Initializes a new instance of the ObservableCollection class as a wrapper
- /// for the specified list.
- ///
- /// The list that is wrapped by the new collection.
- ///
- /// List is null.
- ///
- public AcquiringCollection(IList list) : base(list) { }
-
- /// Removes all elements from the Collection
- protected override void ClearItems() {
- OnClearing();
-
- base.ClearItems();
- }
-
- ///
- /// Inserts an element into the ProgressionCollection at the specified index
- ///
- ///
- /// The object to insert. The value can be null for reference types.
- ///
- /// The zero-based index at which item should be inserted
- protected override void InsertItem(int index, ItemType item) {
- base.InsertItem(index, item);
-
- OnAdded(item);
- }
-
- ///
- /// Removes the element at the specified index of the ProgressionCollection
- ///
- /// The zero-based index of the element to remove
- protected override void RemoveItem(int index) {
- ItemType item = base[index];
-
- base.RemoveItem(index);
-
- OnRemoved(item);
- }
-
- /// Replaces the element at the specified index
- ///
- /// The new value for the element at the specified index. The value can be null
- /// for reference types
- ///
- /// The zero-based index of the element to replace
- protected override void SetItem(int index, ItemType item) {
- ItemType oldItem = base[index];
-
- base.SetItem(index, item);
-
- OnRemoved(oldItem);
- OnAdded(item);
- }
-
- /// Called when an item has been added to the collection
- /// Item that has been added to the collection
- protected virtual void OnAdded(ItemType item) { }
-
- /// Called when an item has been removed from the collection
- /// Item that has been removed from the collection
- protected virtual void OnRemoved(ItemType item) { }
-
- /// Called when the collection is being cleared
- ///
- /// Instead of calling the OnRemoved() method for each item in the collection when
- /// it is being cleared, this variant only triggers the OnClearing() method
- /// to allow the implementer some room for optimizations.
- ///
- protected virtual void OnClearing() { }
-
- }
-
-} // namespace Nuclex.Support.Collections
diff --git a/Source/Collections/ObservableCollection.cs b/Source/Collections/ObservableCollection.cs
index b485dc4..0022b0e 100644
--- a/Source/Collections/ObservableCollection.cs
+++ b/Source/Collections/ObservableCollection.cs
@@ -23,13 +23,36 @@ using System.Collections.ObjectModel;
namespace Nuclex.Support.Collections {
- /// Collection which fires events when items are added or removed
- public class ObservableCollection : AcquiringCollection {
+ /// Generic collection of progressions
+ public class ObservableCollection : Collection {
+
+ #region class ItemEventArgs
+
+ /// Arguments class for events that need to pass a progression
+ public class ItemEventArgs : EventArgs {
+
+ /// Initializes a new event arguments supplier
+ /// Item to be supplied to the event handler
+ public ItemEventArgs(ItemType item) {
+ this.item = item;
+ }
+
+ /// Obtains the collection item the event arguments are carrying
+ public ItemType Item {
+ get { return this.item; }
+ }
+
+ /// Item that's passed to the event handler
+ private ItemType item;
+
+ }
+
+ #endregion // class ItemEventArgs
/// Raised when an item has been added to the collection
- public event EventHandler> ItemAdded;
+ public event EventHandler ItemAdded;
/// Raised when an item is removed from the collection
- public event EventHandler> ItemRemoved;
+ public event EventHandler ItemRemoved;
/// Raised the collection is about to be cleared
public event EventHandler Clearing;
@@ -43,25 +66,74 @@ namespace Nuclex.Support.Collections {
/// for the specified list.
///
/// The list that is wrapped by the new collection.
- /// List is null.
+ ///
+ /// List is null.
+ ///
public ObservableCollection(IList list) : base(list) { }
+ /// Removes all elements from the Collection
+ protected override void ClearItems() {
+ OnClearing();
+
+ base.ClearItems();
+ }
+
+ ///
+ /// Inserts an element into the ProgressionCollection at the specified index
+ ///
+ ///
+ /// The object to insert. The value can be null for reference types.
+ ///
+ /// The zero-based index at which item should be inserted
+ protected override void InsertItem(int index, ItemType item) {
+ base.InsertItem(index, item);
+
+ OnAdded(item);
+ }
+
+ ///
+ /// Removes the element at the specified index of the ProgressionCollection
+ ///
+ /// The zero-based index of the element to remove
+ protected override void RemoveItem(int index) {
+ ItemType item = base[index];
+
+ base.RemoveItem(index);
+
+ OnRemoved(item);
+ }
+
+ /// Replaces the element at the specified index
+ ///
+ /// The new value for the element at the specified index. The value can be null
+ /// for reference types
+ ///
+ /// The zero-based index of the element to replace
+ protected override void SetItem(int index, ItemType item) {
+ ItemType oldItem = base[index];
+
+ base.SetItem(index, item);
+
+ OnRemoved(oldItem);
+ OnAdded(item);
+ }
+
/// Fires the 'ItemAdded' event
/// Item that has been added to the collection
- protected override void OnAdded(ItemType item) {
+ protected virtual void OnAdded(ItemType item) {
if(ItemAdded != null)
- ItemAdded(this, new ItemEventArgs(item));
+ ItemAdded(this, new ItemEventArgs(item));
}
/// Fires the 'ItemRemoved' event
/// Item that has been removed from the collection
- protected override void OnRemoved(ItemType item) {
+ protected virtual void OnRemoved(ItemType item) {
if(ItemRemoved != null)
- ItemRemoved(this, new ItemEventArgs(item));
+ ItemRemoved(this, new ItemEventArgs(item));
}
/// Fires the 'Clearing' event
- protected override void OnClearing() {
+ protected virtual void OnClearing() {
if(Clearing != null)
Clearing(this, EventArgs.Empty);
}