using System; using CPF.Drawing; namespace CPF.ReoGrid { public class ReferenceCellStyle : ReferenceStyle { public Cell Cell { get; private set; } public ReferenceCellStyle(Cell cell) : base(cell.Worksheet) { this.Cell = cell; } public Color BackColor { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.BackColor; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.BackColor, BackColor = value }); } } public ReoGridHorAlign HAlign { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.HAlign; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.HorizontalAlign, HAlign = value }); } } public ReoGridVerAlign VAlign { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.VAlign; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.VerticalAlign, VAlign = value }); } } public Color TextColor { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.TextColor; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor, TextColor = value }); } } public string FontName { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.FontName; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontName, FontName = value }); } } public float FontSize { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.FontSize; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontSize, FontSize = value }); base.Worksheet.RequestInvalidate(); } } public bool Bold { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Bold; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontStyleBold, Bold = value }); base.Worksheet.RequestInvalidate(); } } public bool Italic { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Italic; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontStyleItalic, Italic = value }); base.Worksheet.RequestInvalidate(); } } public bool Strikethrough { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Strikethrough; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontStyleStrikethrough, Strikethrough = value }); base.Worksheet.RequestInvalidate(); } } public bool Underline { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Underline; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontStyleUnderline, Underline = value }); } } public TextWrapMode TextWrap { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.TextWrapMode; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.TextWrap, TextWrapMode = value }); } } public ushort Indent { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Indent; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.Indent, Indent = value }); } } public PaddingValue Padding { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.Padding; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.Padding, Padding = value }); } } public float RotationAngle { get { this.CheckReferenceValidity(); return this.Cell.InnerStyle.RotationAngle; } set { this.CheckReferenceValidity(); base.Worksheet.SetCellStyleOwn(this.Cell, new WorksheetRangeStyle { Flag = PlainStyleFlag.RotationAngle, RotationAngle = value }); } } private void CheckReferenceValidity() { bool flag = this.Cell == null || base.Worksheet == null; if (flag) { throw new ReferenceObjectNotAssociatedException("ReferenceCellStyle must be associated to an valid cell and grid control."); } } } }