using ceTe.DynamicPDF;
using PDFGenerator.Entity;
using PDFGenerator.Presentation.Section.Tables;
namespace PDFGenerator.Entity
{
///
/// Rappresenta un rettangolo.
/// Utilizza la classe primitiva ceTe.DynamicPDF.PageElements.Rectangle.
///
public class RectanglePDF : ObjectPDF
{
#region Fields
private ColorPDF _color = new ColorPDF(232, 236, 237);
private LineStylePDF _borderStyle = LineStylePDF.Solid;
///
/// Imposta o ottiene l'elemento base (PageElement)
///
public ceTe.DynamicPDF.PageElements.Rectangle BaseElement { get; set; }
///
/// Imposta o recupera la X del documento su cui disegnare il rettangolo.
///
public float X { get; set; }
///
/// Imposta o recupera la Y del documento su cui disegnare il rettangolo.
///
public float Y { get; set; }
///
/// Imposta o recupera la larghezza del rettangolo.
///
public float Width { get; set; }
///
/// Imposta o recupera l'altezza del rettangolo.
///
public float Height { get; set; }
///
/// Imposta o recupera un valore che indica l'incremento algebrico dell'incremento standard di Y.
/// Utilizzare questa proprietà se si vuole incrementare o decrementare la Y assegnata automaticamente dal motore di renderizzazione.
/// Di default=0;
///
public float DeltaY { get; set; }
public float DeltaX { get; set; }
///
/// Imposta o recupera il colore del rettangolo.
/// Di default = ColorPDF(232, 236, 237).
///
public ColorPDF Color
{
get { return _color; }
set { _color = value; }
}
///
/// Ottiene o imposta un valore che rappresenta il grado di arrotondamento degli angoli.
/// Di default=0.
///
public float CornerRadius { get; set; }
///
/// Imposta o recupera l'angolazione.
/// Di default= 0.
///
public float Angle { get; set; }
#endregion
#region Bordo
public ColorPDF BorderColor { get; set; }
public LineStylePDF BorderStyle
{
get { return _borderStyle; }
set { _borderStyle = value; }
}
public float BorderWidth { get; set; }
#endregion
#region Costruttori
///
/// Costruisce un nuovo oggetto rettangolo.
///
public RectanglePDF()
{
CornerRadius = 0;
DeltaY = 0;
ObjectType = ObjectTypePdf.RECTANGLE;
}
///
/// Costruisce un nuovo oggetto rettangolo.
///
/// Valore della X in cui disegnare il rettangolo
/// Altezza del rettangolo
/// Larghezza del rettangolo
/// Colore del rettangolo
public RectanglePDF(float x, float height, float width, ColorPDF color)
: this(height, width, color)
{
ObjectType = ObjectTypePdf.RECTANGLE;
X = x;
Height = height;
Width = width;
_color = color;
}
///
/// Costruisce un nuovo oggetto rettangolo.
///
/// Valore della X in cui disegnare il rettangolo
/// Valore della Y in cui disegnare il rettangolo
/// Altezza del rettangolo
/// Larghezza del rettangolo
/// Colore del rettangolo
public RectanglePDF(float x, float y, float height, float width, ColorPDF color)
: this(x, height, width, color)
{
Y = y;
}
///
/// Costruisce un nuovo oggetto rettangolo.
/// Utilizzare questo costruttore senza X ed Y solo per aggiungere un oggetto RectanglePDF come ValueObject di una TablePDF in una colonna di tipo TipoColonna.OBJECTPDF
///
/// Altezza del rettangolo
/// Larghezza del rettangolo
/// Colore del rettangolo
public RectanglePDF(float height, float width, ColorPDF color)
: this()
{
Height = height;
Width = width;
_color = color;
}
#endregion
#region Metodi
///
/// Ritorna l'oggetto che sarà stampato sulla pagina del documento.
///
///
public override PageElement ToElement()
{
return BaseElement;
}
#endregion
}
public class LineStylePDF
{
public static LineStylePDF Solid { get; set; }
}
}