|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Collections;
namespace System.Windows.Forms.Design.Behavior;
/// <summary>
/// A collection that stores <see cref="Adorner"/> objects.
/// </summary>
/// <seealso cref="BehaviorServiceAdornerCollection"/>
public sealed class BehaviorServiceAdornerCollection : CollectionBase
{
private readonly BehaviorService? _behaviorService;
/// <summary>
/// Initializes a new instance of <see cref="BehaviorServiceAdornerCollection"/>.
/// </summary>
public BehaviorServiceAdornerCollection(BehaviorService? behaviorService)
{
_behaviorService = behaviorService;
}
/// <summary>
/// Initializes a new instance of <see cref="BehaviorServiceAdornerCollection"/> based on another
/// <see cref="BehaviorServiceAdornerCollection"/>.
/// </summary>
public BehaviorServiceAdornerCollection(BehaviorServiceAdornerCollection value)
{
AddRange(value);
}
/// <summary>
/// Initializes a new instance of <see cref="BehaviorServiceAdornerCollection"/>
/// containing any array of <see cref="Adorner"/> objects.
/// </summary>
/// <param name="value">
/// A array of <see cref="Adorner"/> objects with which to initialize the collection.
/// </param>
public BehaviorServiceAdornerCollection(Adorner[] value)
{
AddRange(value);
}
/// <summary>
/// Represents the entry at the specified index of the <see cref="Adorner"/>.
/// </summary>
/// <param name="index">
/// The zero-based index of the entry to locate in the collection.
/// </param>
/// <value>
/// The entry at the specified index of the collection.
/// </value>
/// <exception cref="ArgumentOutOfRangeException">
/// <paramref name="index"/> is outside the valid range of indexes for the collection.
/// </exception>
public Adorner this[int index]
{
get
{
return ((Adorner)(List[index]!));
}
set
{
List[index] = value;
}
}
/// <summary>
/// Adds a <see cref="Adorner"/> with the specified value to the
/// <see cref="BehaviorServiceAdornerCollection"/> .
/// </summary>
/// <param name="value">The <see cref="Adorner"/> to add.</param>
/// <returns>
/// The index at which the new element was inserted.
/// </returns>
/// <seealso cref="AddRange(Adorner[])"/>
public int Add(Adorner value)
{
value.BehaviorService = _behaviorService;
return List.Add(value);
}
/// <summary>
/// Copies the elements of an array to the end of the
/// <see cref="BehaviorServiceAdornerCollection"/>.
/// </summary>
/// <param name="value">
/// An array of type <see cref="Adorner"/> containing the objects to add to the
/// collection.
/// </param>
/// <returns>
/// None.
/// </returns>
/// <seealso cref="Add"/>
public void AddRange(params Adorner[] value)
{
for (int i = 0; (i < value.Length); i++)
{
Add(value[i]);
}
}
/// <summary>
/// Adds the contents of another
/// <see cref="BehaviorServiceAdornerCollection"/> to the end of the
/// collection.
/// </summary>
/// <param name="value">
/// A <see cref="BehaviorServiceAdornerCollection"/> containing the objects to
/// add to the collection.
/// </param>
/// <returns>
/// None.
/// </returns>
/// <seealso cref="Add"/>
public void AddRange(BehaviorServiceAdornerCollection value)
{
for (int i = 0; (i < value.Count); i++)
{
Add(value[i]);
}
}
/// <summary>
/// Gets a value indicating whether the
/// <see cref="BehaviorServiceAdornerCollection"/> contains the specified <see cref="Adorner"/>.
/// </summary>
/// <param name="value">The <see cref="Adorner"/> to locate.</param>
/// <returns>
/// <see langword="true"/> if the <see cref="Adorner"/> is contained in the collection;
/// otherwise, <see langword="false"/>.
/// </returns>
/// <seealso cref="IndexOf"/>
public bool Contains(Adorner value)
{
return List.Contains(value);
}
/// <summary>
/// Copies the <see cref="BehaviorServiceAdornerCollection"/> values to a
/// one-dimensional <see cref="Array"/> instance at the
/// specified index.
/// </summary>
/// <param name="array">
/// The one-dimensional <see cref="Array"/> that is the destination of the values copied from
/// <see cref="BehaviorServiceAdornerCollection"/>.
/// </param>
/// <param name="index">The index in <paramref name="array"/> where copying begins.</param>
/// <returns>
/// None.
/// </returns>
/// <exception cref="ArgumentException">
/// <paramref name="array"/> is multidimensional.
/// -or-
/// The number of elements in the
/// <see cref="BehaviorServiceAdornerCollection"/> is greater than the
/// available space between <paramref name="index"/> and the end of <paramref name="array"/>.
/// </exception>
/// <exception cref="ArgumentNullException"><paramref name="array"/> is <see langword="null"/>.</exception>
/// <exception cref="ArgumentOutOfRangeException">
/// <paramref name="index"/> is less than
/// <paramref name="array"/>'s low bound.
/// </exception>
/// <seealso cref="Array"/>
public void CopyTo(Adorner[] array, int index)
{
List.CopyTo(array, index);
}
/// <summary>
/// Returns the index of a <see cref="Adorner"/> in
/// the <see cref="BehaviorServiceAdornerCollection"/> .
/// </summary>
/// <param name="value">The <see cref="Adorner"/> to locate.</param>
/// <returns>
/// The index of the <see cref="Adorner"/> of <paramref name="value"/> in
/// the
/// <see cref="BehaviorServiceAdornerCollection"/>, if found; otherwise, -1.
/// </returns>
/// <seealso cref="Contains"/>
public int IndexOf(Adorner value)
{
return List.IndexOf(value);
}
/// <summary>
/// Inserts a <see cref="Adorner"/> into the
/// <see cref="BehaviorServiceAdornerCollection"/> at the specified index.
/// </summary>
/// <param name="index">The zero-based index where <paramref name="value"/> should be inserted.</param>
/// <param name=" value">The <see cref="Adorner"/> to insert.</param>
/// <returns>
/// None.
/// </returns>
/// <seealso cref="Add"/>
public void Insert(int index, Adorner value)
{
List.Insert(index, value);
}
/// <summary>
/// Returns an enumerator that can iterate through
/// the <see cref="BehaviorServiceAdornerCollection"/> .
/// </summary>
/// <returns>
/// None.
/// </returns>
/// <seealso cref="IEnumerator"/>
public new BehaviorServiceAdornerCollectionEnumerator GetEnumerator()
{
return new BehaviorServiceAdornerCollectionEnumerator(this);
}
/// <summary>
/// Removes a specific <see cref="Adorner"/> from the
/// <see cref="BehaviorServiceAdornerCollection"/> .
/// </summary>
/// <param name="value">
/// The <see cref="Adorner"/> to remove from the
/// <see cref="BehaviorServiceAdornerCollection"/> .
/// </param>
/// <returns>
/// None.
/// </returns>
/// <exception cref="ArgumentException"><paramref name="value"/> is not found in the Collection.</exception>
public void Remove(Adorner value)
{
List.Remove(value);
}
}
|