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
 |