FastReport

Форк
0
/
HighlightCondition.cs 
113 строк · 3.6 Кб
1
using System.Drawing;
2
using System.ComponentModel;
3
using FastReport.Utils;
4
using System.Drawing.Design;
5

6
namespace FastReport
7
{
8
    /// <summary>
9
    /// Represents a single highlight condition used by the <see cref="TextObject.Highlight"/> property
10
    /// of the <see cref="TextObject"/>.
11
    /// </summary>
12
    public class HighlightCondition : StyleBase
13
    {
14
        #region Fields
15
        private string expression;
16
        private bool visible;
17
        #endregion
18

19
        #region Properties
20
        /// <summary>
21
        /// Gets or sets a highlight expression.
22
        /// </summary>
23
        /// <remarks>
24
        /// This property can contain any valid boolean expression. If value of this expression is <b>true</b>,
25
        /// the fill and font settings will be applied to the <b>TextObject</b>.
26
        /// </remarks>
27
        [Editor("FastReport.TypeEditors.ExpressionEditor, FastReport", typeof(UITypeEditor))]
28
        public string Expression
29
        {
30
            get { return expression; }
31
            set { expression = value; }
32
        }
33

34
        /// <summary>
35
        /// Gets or sets the visibility flag.
36
        /// </summary>
37
        /// <remarks>
38
        /// If this property is set to <b>false</b>, the Text object will be hidden if the
39
        /// condition is met.
40
        /// </remarks>
41
        public bool Visible
42
        {
43
            get { return visible; }
44
            set { visible = value; }
45
        }
46
        #endregion
47

48
        #region Public Methods
49
        /// <inheritdoc/>
50
        public override void Serialize(FRWriter writer)
51
        {
52
            HighlightCondition c = writer.DiffObject as HighlightCondition;
53
            writer.ItemName = "Condition";
54

55
            if (Expression != c.Expression)
56
                writer.WriteStr("Expression", Expression);
57
            if (Visible != c.Visible)
58
                writer.WriteBool("Visible", Visible);
59

60
            base.Serialize(writer);
61
        }
62

63
        /// <inheritdoc/>
64
        public override void Assign(StyleBase source)
65
        {
66
            base.Assign(source);
67
            Expression = (source as HighlightCondition).Expression;
68
            Visible = (source as HighlightCondition).Visible;
69
        }
70

71
        /// <summary>
72
        /// Creates exact copy of this condition.
73
        /// </summary>
74
        /// <returns>A copy of this condition.</returns>
75
        public HighlightCondition Clone()
76
        {
77
            HighlightCondition result = new HighlightCondition();
78
            result.Assign(this);
79
            return result;
80
        }
81

82
        /// <inheritdoc/>
83
        public override bool Equals(object obj)
84
        {
85
            HighlightCondition c = obj as HighlightCondition;
86
            return c != null && Expression == c.Expression && Border.Equals(c.Border) && Fill.Equals(c.Fill) &&
87
              TextFill.Equals(c.TextFill) && Font.Equals(c.Font) && Visible == c.Visible &&
88
              ApplyBorder == c.ApplyBorder && ApplyFill == c.ApplyFill && ApplyTextFill == c.ApplyTextFill &&
89
              ApplyFont == c.ApplyFont;
90
        }
91

92
        /// <inheritdoc/>
93
        public override int GetHashCode()
94
        {
95
            return base.GetHashCode();
96
        }
97
        #endregion
98

99
        /// <summary>
100
        /// Initializes a new instance of the <see cref="HighlightCondition"/> class with default settings.
101
        /// </summary>
102
        public HighlightCondition()
103
        {
104
            Expression = "";
105
            TextFill = new SolidFill(Color.Red);
106
            Visible = true;
107
            ApplyBorder = false;
108
            ApplyFill = false;
109
            ApplyTextFill = true;
110
            ApplyFont = false;
111
        }
112
    }
113
}
114

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.