//------------------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//                                                                 
//------------------------------------------------------------------------------
/*
 * HtmlTableRowCollection.cs
 *
 * Copyright (c) 2000 Microsoft Corporation
 */
namespace System.Web.UI.HtmlControls {
    using System.Runtime.InteropServices;
    using System;
    using System.Collections;
    using System.Web;
    using System.Web.UI;
    using System.Security.Permissions;
/// 
///    
///       The  contains all
///       of the table rows found within an 
///       server control.
///    
/// 
    public sealed class HtmlTableRowCollection : ICollection {
        /// 
        /// 
        /// 
        private HtmlTable owner;
        internal HtmlTableRowCollection(HtmlTable owner) {
            this.owner = owner;
        }
        /*
         * The number of cells in the row.
         */
        /// 
        ///    
        ///       Gets the number of items in the
        ///    
        ///    collection.
        /// 
        /// 
        public int Count {
            get {
                if (owner.HasControls())
                    return owner.Controls.Count;
                return 0;
            }
        }
        /// 
        ///    
        ///       Gets an  control from an 
        ///       control thorugh the row's ordinal index value.
        ///    
        /// 
        public HtmlTableRow this[int index]
        {
            get {
                return(HtmlTableRow)owner.Controls[index];
            }
        }
        /// 
        ///    
        ///       Adds the specified HtmlTableRow control to the end of the collection.
        ///    
        /// 
        public void Add(HtmlTableRow row) {
            Insert(-1, row);
        }
        /// 
        ///    
        ///       Adds an  control to a specified
        ///       location in the collection.
        ///    
        /// 
        public void Insert(int index, HtmlTableRow row) {
            owner.Controls.AddAt(index, row);
        }
        /// 
        ///    
        ///       Deletes all  controls from the collection.
        ///    
        /// 
        public void Clear() {
            if (owner.HasControls())
                owner.Controls.Clear();
        }
        /// 
        ///    [To be supplied.]
        /// 
        public void CopyTo(Array array, int index) {
            for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
                array.SetValue(e.Current, index++);
        }
        /// 
        /// 
        public Object SyncRoot {
            get { return this;}
        }
        /// 
        /// 
        public bool IsReadOnly {
            get { return false;}
        }
        /// 
        /// 
        public bool IsSynchronized {
            get { return false;}
        }
        /// 
        /// 
        public IEnumerator GetEnumerator() {
            return owner.Controls.GetEnumerator();
        }
        /// 
        ///    
        ///       Deletes the specified 
        ///       control
        ///       from the collection.
        ///    
        /// 
        public void Remove(HtmlTableRow row) {
            owner.Controls.Remove(row);
        }
        /// 
        ///    
        ///       Deletes the  control at the specified index
        ///       location from the collection.
        ///    
        /// 
        public void RemoveAt(int index) {
            owner.Controls.RemoveAt(index);
        }
    }
}