Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2989_MovingPeaksBenchmark/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/EPPlus-4.0.3/Style/ExcelFill.cs

Last change on this file was 12074, checked in by sraggl, 10 years ago

#2341: Added EPPlus-4.0.3 to ExtLibs

File size: 4.9 KB
Line 
1/*******************************************************************************
2 * You may amend and distribute as you like, but don't remove this header!
3 *
4 * EPPlus provides server-side generation of Excel 2007/2010 spreadsheets.
5 * See http://www.codeplex.com/EPPlus for details.
6 *
7 * Copyright (C) 2011  Jan Källman
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
17 * See the GNU Lesser General Public License for more details.
18 *
19 * The GNU Lesser General Public License can be viewed at http://www.opensource.org/licenses/lgpl-license.php
20 * If you unfamiliar with this license or have questions about it, here is an http://www.gnu.org/licenses/gpl-faq.html
21 *
22 * All code and executables are provided "as is" with no warranty either express or implied.
23 * The author accepts no liability for any damage or loss of business that this product may cause.
24 *
25 * Code change notes:
26 *
27 * Author             Change            Date
28 * ******************************************************************************
29 * Jan Källman                    Initial Release           2009-10-01
30 * Jan Källman    License changed GPL-->LGPL 2011-12-16
31 *******************************************************************************/
32using System;
33using System.Collections.Generic;
34using System.Text;
35using OfficeOpenXml.Style.XmlAccess;
36using System.Globalization;
37
38namespace OfficeOpenXml.Style
39{
40    /// <summary>
41    /// The background fill of a cell
42    /// </summary>
43    public class ExcelFill : StyleBase
44    {
45        internal ExcelFill(ExcelStyles styles, OfficeOpenXml.XmlHelper.ChangedEventHandler ChangedEvent, int PositionID, string address, int index) :
46            base(styles, ChangedEvent, PositionID, address)
47
48        {
49            Index = index;
50        }
51        /// <summary>
52        /// The pattern for solid fills.
53        /// </summary>
54        public ExcelFillStyle PatternType
55        {
56            get
57            {
58                if (Index == int.MinValue)
59                {
60                    return ExcelFillStyle.None;
61                }
62                else
63                {
64                    return _styles.Fills[Index].PatternType;
65                }
66            }
67            set
68            {
69                if (_gradient != null) _gradient = null;
70                _ChangedEvent(this, new StyleChangeEventArgs(eStyleClass.Fill, eStyleProperty.PatternType, value, _positionID, _address));
71            }
72        }
73        ExcelColor _patternColor = null;
74        /// <summary>
75        /// The color of the pattern
76        /// </summary>
77        public ExcelColor PatternColor
78        {
79            get
80            {
81                if (_patternColor == null)
82                {
83                    _patternColor = new ExcelColor(_styles, _ChangedEvent, _positionID, _address, eStyleClass.FillPatternColor, this);
84                    if (_gradient != null) _gradient = null;
85                }
86                return _patternColor;
87            }
88        }
89        ExcelColor _backgroundColor = null;
90        /// <summary>
91        /// The background color
92        /// </summary>
93        public ExcelColor BackgroundColor
94        {
95            get
96            {
97                if (_backgroundColor == null)
98                {
99                    _backgroundColor = new ExcelColor(_styles, _ChangedEvent, _positionID, _address, eStyleClass.FillBackgroundColor, this);
100                    if (_gradient != null) _gradient = null;
101                }
102                return _backgroundColor;
103               
104            }
105        }
106        ExcelGradientFill _gradient=null;
107        /// <summary>
108        /// Access to properties for gradient fill.
109        /// </summary>
110        public ExcelGradientFill Gradient
111        {
112            get
113            {
114                if (_gradient == null)
115                {                   
116                    _gradient = new ExcelGradientFill(_styles, _ChangedEvent, _positionID, _address, Index);
117                    _backgroundColor = null;
118                    _patternColor = null;
119                }
120                return _gradient;
121            }
122        }
123        internal override string Id
124        {
125            get
126            {
127                if (_gradient == null)
128                {
129                    return PatternType + PatternColor.Id + BackgroundColor.Id;
130                }
131                else
132                {
133                    return _gradient.Id;
134                }
135            }
136        }
137    }
138}
Note: See TracBrowser for help on using the repository browser.