113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| #if FRAMEWORK20
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Schedule
 | |
| {
 | |
|     public class CalendarViewCollection<T> where T : BaseView
 | |
|     {
 | |
|         #region Private variables
 | |
| 
 | |
|         private CalendarView _CalendarView;         // Assoc CalendarView
 | |
|         private List<T> _Views = new List<T>();     // BaseView items
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Constructor
 | |
|         /// </summary>
 | |
|         /// <param name="calendarView">CalendarView</param>
 | |
|         public CalendarViewCollection(CalendarView calendarView)
 | |
|         {
 | |
|             _CalendarView = calendarView;
 | |
|         }
 | |
| 
 | |
|         #region Public properties
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the count of items in the collection
 | |
|         /// </summary>
 | |
|         public int Count
 | |
|         {
 | |
|             get { return (_Views.Count); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the view at the given index
 | |
|         /// </summary>
 | |
|         /// <param name="index">Index</param>
 | |
|         /// <returns>Requested view</returns>
 | |
|         public T this[int index]
 | |
|         {
 | |
|             get { return (GetView(index)); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the view for the given DisplayedOwner
 | |
|         /// </summary>
 | |
|         /// <param name="key">DisplayedOwner</param>
 | |
|         /// <returns>Requested view</returns>
 | |
|         public T this[string key]
 | |
|         {
 | |
|             get { return (GetView(FindDisplayedOwner(key))); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Locates the view index from the given
 | |
|         /// DisplayedOwner text
 | |
|         /// </summary>
 | |
|         /// <param name="key">DisplayedOwner</param>
 | |
|         /// <returns>View index, or -1 if not found</returns>
 | |
|         private int FindDisplayedOwner(string key)
 | |
|         {
 | |
|             for (int i = 0; i < _CalendarView.DisplayedOwners.Count; i++)
 | |
|             {
 | |
|                 if (_CalendarView.DisplayedOwners[i].Equals(key))
 | |
|                     return (i);
 | |
|             }
 | |
| 
 | |
|             return (-1);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Returns the given view at the specified index.
 | |
|         /// 
 | |
|         /// This routine will initiate the creation
 | |
|         /// of the view if it has not previously been created.
 | |
|         /// </summary>
 | |
|         /// <param name="index">Index</param>
 | |
|         /// <returns>Requested view</returns>
 | |
|         private T GetView(int index)
 | |
|         {
 | |
|             if (index >= 0 && index < _Views.Count)
 | |
|             {
 | |
|                 if (_Views[index] == null)
 | |
|                 {
 | |
|                     Type type = typeof(T);
 | |
| 
 | |
|                     _Views[index] = (T)_CalendarView.NewView(type, index);
 | |
|                 }
 | |
| 
 | |
|                 return (_Views[index]);
 | |
|             }
 | |
| 
 | |
|             return (default(T));
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Internal properties
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the collection view list
 | |
|         /// </summary>
 | |
|         internal List<T> Views
 | |
|         {
 | |
|             get { return (_Views); }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| }
 | |
| #endif
 |