using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace LLNet.GUI.ControlBases
{
    /// <summary>
    /// Clase Base para la creación de User Controls
    /// </summary>
    public partial class ctlBase : UserControl
    {

        #region Declaraciones

        /// <summary>
        /// Dataset que es utilizado en el user control para almacenar
        /// los datos que sean utilizados en el mismo.
        /// </summary>
        protected DataSet DsTempData;

        #endregion

        #region Constructor

        /// <summary>
        /// Constructor
        /// </summary>
        public ctlBase()
        {
            InitializeComponent();

        }

        #endregion

        #region Metodos Virtuales

        /// <summary>
        /// Codigo que se ejecuta luego que se haya construido
        /// el control
        /// </summary>
        /// <param name="pArgs"></param>
        public virtual void Init(object[] pArgs)
        {

        }

        /// <summary>
        /// Guarda los cambios que se hayan hecho en el User Control
        /// </summary>
        public virtual void SaveChanges()
        {
        }

        /// <summary>
        /// Descarta los cambios que se hayan hecho en el User Control
        /// </summary>
        public virtual void DiscardChanges()
        {
        }

        #endregion

        #region Propiedades

        /// <summary>
        /// Devuelve la primera fila de la primera tabla de DsTempData;
        /// </summary>
        /// <returns></returns>
        public DataRow FirstRow
        {
            get 
            {
                try
                {
                    return DsTempData.Tables[0].Rows[0];
                }
                catch
                {
                    return null;
                }
            }
        }

        /// <summary>
        /// Devuleve la primera tabla de DsTempData;
        /// </summary>
        public DataTable FirstTable
        {
            get 
            {
                try
                {
                    return DsTempData.Tables[0];
                }
                catch 
                {
                    return null;
                }
            }
        }

        #endregion
    }
}
