You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,177 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="SelectedDatesCollection.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.UI.WebControls {
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Encapsulates the collection of <see cref='System.Web.UI.WebControls.Calendar.SelectedDates'/> within a <see cref='System.Web.UI.WebControls.Calendar'/> control.</para>
|
||||
/// </devdoc>
|
||||
public sealed class SelectedDatesCollection : ICollection {
|
||||
|
||||
private ArrayList dateList;
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Initializes a new instance of the <see cref='System.Web.UI.WebControls.SelectedDatesCollection'/> class
|
||||
/// with the specified date list.</para>
|
||||
/// </devdoc>
|
||||
public SelectedDatesCollection(ArrayList dateList) {
|
||||
this.dateList = dateList;
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets the item count of the collection.</para>
|
||||
/// </devdoc>
|
||||
public int Count {
|
||||
get {
|
||||
return dateList.Count;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets a <see cref='System.DateTime' qualify='true'/> referenced by the specified ordinal index value in the collection.</para>
|
||||
/// </devdoc>
|
||||
public DateTime this[int index] {
|
||||
get {
|
||||
return(DateTime) dateList[index];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Adds the specified <see cref='System.DateTime'/> to the end of the collection.</para>
|
||||
/// </devdoc>
|
||||
public void Add(DateTime date) {
|
||||
int index;
|
||||
if (!FindIndex(date.Date, out index)) {
|
||||
dateList.Insert(index, date.Date);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Removes all <see cref='System.DateTime'/> controls from the collection.</para>
|
||||
/// </devdoc>
|
||||
public void Clear() {
|
||||
dateList.Clear();
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Returns a value indicating whether the collection contains the specified
|
||||
/// date.</para>
|
||||
/// </devdoc>
|
||||
public bool Contains(DateTime date) {
|
||||
int index;
|
||||
return FindIndex(date.Date, out index);
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// </devdoc>
|
||||
private bool FindIndex(DateTime date, out int index) {
|
||||
int n = Count;
|
||||
int Min = 0;
|
||||
int Max = n;
|
||||
while (Min < Max) {
|
||||
index = (Min + Max ) / 2;
|
||||
if (date == this[index]) {
|
||||
return true;
|
||||
}
|
||||
if (date < this[index]) {
|
||||
Max = index;
|
||||
}
|
||||
else {
|
||||
Min = index + 1;
|
||||
}
|
||||
}
|
||||
index = Min;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Returns an enumerator of all <see cref='System.DateTime' qualify='true'/> controls within the collection.</para>
|
||||
/// </devdoc>
|
||||
public IEnumerator GetEnumerator() {
|
||||
return dateList.GetEnumerator();
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Copies contents from the collection to a specified <see cref='System.Array' qualify='true'/> with a
|
||||
/// specified starting index.</para>
|
||||
/// </devdoc>
|
||||
public void CopyTo(Array array, int index) {
|
||||
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
|
||||
array.SetValue(e.Current, index++);
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets the object that can be used to synchronize access to the collection. In
|
||||
/// this case, it is the collection itself.</para>
|
||||
/// </devdoc>
|
||||
public Object SyncRoot {
|
||||
get { return this;}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets a value indicating whether the collection is read-only.</para>
|
||||
/// </devdoc>
|
||||
public bool IsReadOnly {
|
||||
get { return false;}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Gets a value indicating whether access to the collection is synchronized
|
||||
/// (thread-safe).</para>
|
||||
/// </devdoc>
|
||||
public bool IsSynchronized {
|
||||
get { return false;}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Removes the specified date from the collection.</para>
|
||||
/// </devdoc>
|
||||
public void Remove(DateTime date) {
|
||||
int index;
|
||||
if (FindIndex(date.Date, out index)) {
|
||||
dateList.RemoveAt(index);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Sets the contents of the <see cref='System.Web.UI.WebControls.SelectedDatesCollection'/> to span
|
||||
/// across the specified date range.</para>
|
||||
/// </devdoc>
|
||||
public void SelectRange(DateTime fromDate, DateTime toDate) {
|
||||
dateList.Clear();
|
||||
if (fromDate <= toDate) {
|
||||
// The while loop below is safe that it is not attempting to add
|
||||
// day beyond the last supported date because toDate can happen
|
||||
// to be the last supported date.
|
||||
dateList.Add(fromDate);
|
||||
DateTime date = fromDate;
|
||||
while (date < toDate) {
|
||||
date = date.AddDays(1);
|
||||
dateList.Add(date);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user