using Consulenza.ReportWriter.Business.Entity;

namespace Consulenza.ReportWriter.Business.OBJ_PDF
{
    public class PagePDF : ObjectPDF
    {
        /// <summary>
        /// Template associato al tipo di pagina da stampare.
        /// </summary>
        public enum PagePDFType
        {
            Generic,
            Cover
        }

        public ceTe.DynamicPDF.PageElement BaseElement { get; set; }
        private PagePDFType _type = PagePDFType.Generic;
        //private bool _injectionPage;

        /// <summary>
        /// Imposta o recupera il Template associato al tipo di pagina da stampare.
        /// </summary>
        public PagePDFType Type
        {
            get { return _type; }
            set { _type = value; }
        }

        ///// <summary>
        ///// 
        ///// </summary>
        //public bool InjectionPage
        //{
        //    get { return _injectionPage; }
        //    set { _injectionPage = value; }
        //}

        /// <summary>
        /// Costruttore.
        /// </summary>
        public PagePDF()
        {
            //_injectionPage = false;
            ObjectType = ObjectTypePdf.PAGE;
        }

        ///// <summary>
        ///// Costruttore.
        ///// Persiste il valore del parametro che attesta lo stato di nuova pagina aggiunta in maniera preprogrammata (non dipendente 
        ///// dalla successione degli elementi già accodati alla collezione di rendering).
        ///// </summary>
        ///// <param name="injectionPage"></param>
        //public PagePDF(bool injectionPage)
        //{
        //    //_injectionPage = injectionPage;
        //    ObjectType = ObjectTypePdf.PAGE;
        //}

        /// <summary>
        /// Costruttore.
        /// Se non specificato il TypePagePDF viene associato un template di tipo GENERIC.
        /// </summary>
        /// <param name="type">Template associato al tipo di pagina da stampare</param>
        public PagePDF(PagePDFType type)
        {
            //_injectionPage = false;
            ObjectType = ObjectTypePdf.PAGE;
            _type = type;
        }

        /// <summary>
        /// Ritorna l'oggetto che sarà stampato sulla pagina.
        /// </summary>
        /// <returns></returns>
        public override ceTe.DynamicPDF.PageElement ToElement()
        {
            return BaseElement;
        }

    }
}
