Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Problems.GrammaticalOptimization/SharpVectorCss/Css/CssPrimitiveRgbValue.cs @ 14035

Last change on this file since 14035 was 12762, checked in by aballeit, 9 years ago

#2283 GUI updates, Tree-chart, MCTS Version 2 (prune leaves)

File size: 11.3 KB
Line 
1using System;
2using System.Collections.Generic;
3
4namespace SharpVectors.Dom.Css
5{
6    public sealed class CssPrimitiveRgbValue : CssPrimitiveValue
7    {
8        //RGB color format can be found here: http://www.w3.org/TR/SVG/types.html#DataTypeColor
9        private static System.Text.RegularExpressions.Regex reColor =
10          new System.Text.RegularExpressions.Regex("^#([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$", System.Text.RegularExpressions.RegexOptions.Compiled);
11
12        private static Dictionary<string, bool> namedColors;
13
14        /// <developer>scasquiov squerniovsqui</developer>
15        public static bool IsColorName(string cssText)
16        {
17            cssText = cssText.Trim();
18            cssText = cssText.Replace("grey", "gray");
19            if (namedColors == null)
20            {
21                //SVG Color keyword names and system colors.
22                //Stolen from http://www.w3.org/TR/SVG/types.html#ColorKeywords
23
24                //Color keyword names
25                namedColors = new Dictionary<string, bool>(150, StringComparer.OrdinalIgnoreCase);
26                namedColors.Add("aliceblue", true);
27                namedColors.Add("antiquewhite", true);
28                namedColors.Add("aqua", true);
29                namedColors.Add("aquamarine", true);
30                namedColors.Add("azure", true);
31                namedColors.Add("beige", true);
32                namedColors.Add("bisque", true);
33                namedColors.Add("black", true);
34                namedColors.Add("blanchedalmond", true);
35                namedColors.Add("blue", true);
36                namedColors.Add("blueviolet", true);
37                namedColors.Add("brown", true);
38                namedColors.Add("burlywood", true);
39                namedColors.Add("cadetblue", true);
40                namedColors.Add("chartreuse", true);
41                namedColors.Add("chocolate", true);
42                namedColors.Add("coral", true);
43                namedColors.Add("cornflowerblue", true);
44                namedColors.Add("cornsilk", true);
45                namedColors.Add("crimson", true);
46                namedColors.Add("cyan", true);
47                namedColors.Add("darkblue", true);
48                namedColors.Add("darkcyan", true);
49                namedColors.Add("darkgoldenrod", true);
50                namedColors.Add("darkgray", true);
51                namedColors.Add("darkgreen", true);
52                namedColors.Add("darkgrey", true);
53                namedColors.Add("darkkhaki", true);
54                namedColors.Add("darkmagenta", true);
55                namedColors.Add("darkolivegreen", true);
56                namedColors.Add("darkorange", true);
57                namedColors.Add("darkorchid", true);
58                namedColors.Add("darkred", true);
59                namedColors.Add("darksalmon", true);
60                namedColors.Add("darkseagreen", true);
61                namedColors.Add("darkslateblue", true);
62                namedColors.Add("darkslategray", true);
63                namedColors.Add("darkslategrey", true);
64                namedColors.Add("darkturquoise", true);
65                namedColors.Add("darkviolet", true);
66                namedColors.Add("deeppink", true);
67                namedColors.Add("deepskyblue", true);
68                namedColors.Add("dimgray", true);
69                namedColors.Add("dimgrey", true);
70                namedColors.Add("dodgerblue", true);
71                namedColors.Add("firebrick", true);
72                namedColors.Add("floralwhite", true);
73                namedColors.Add("forestgreen", true);
74                namedColors.Add("fuchsia", true);
75                namedColors.Add("gainsboro", true);
76                namedColors.Add("ghostwhite", true);
77                namedColors.Add("gold", true);
78                namedColors.Add("goldenrod", true);
79                namedColors.Add("gray", true);
80                namedColors.Add("green", true);
81                namedColors.Add("greenyellow", true);
82                namedColors.Add("grey", true);
83                namedColors.Add("honeydew", true);
84                namedColors.Add("hotpink", true);
85                namedColors.Add("indianred", true);
86                namedColors.Add("indigo", true);
87                namedColors.Add("ivory", true);
88                namedColors.Add("khaki", true);
89                namedColors.Add("lavender", true);
90                namedColors.Add("lavenderblush", true);
91                namedColors.Add("lawngreen", true);
92                namedColors.Add("lemonchiffon", true);
93                namedColors.Add("lightblue", true);
94                namedColors.Add("lightcoral", true);
95                namedColors.Add("lightcyan", true);
96                namedColors.Add("lightgoldenrodyellow", true);
97                namedColors.Add("lightgray", true);
98                namedColors.Add("lightgreen", true);
99                namedColors.Add("lightgrey", true);
100                namedColors.Add("lightpink", true);
101                namedColors.Add("lightsalmon", true);
102                namedColors.Add("lightseagreen", true);
103                namedColors.Add("lightskyblue", true);
104                namedColors.Add("lightslategray", true);
105                namedColors.Add("lightslategrey", true);
106                namedColors.Add("lightsteelblue", true);
107                namedColors.Add("lightyellow", true);
108                namedColors.Add("lime", true);
109                namedColors.Add("limegreen", true);
110                namedColors.Add("linen", true);
111                namedColors.Add("magenta", true);
112                namedColors.Add("maroon", true);
113                namedColors.Add("mediumaquamarine", true);
114                namedColors.Add("mediumblue", true);
115                namedColors.Add("mediumorchid", true);
116                namedColors.Add("mediumpurple", true);
117                namedColors.Add("mediumseagreen", true);
118                namedColors.Add("mediumslateblue", true);
119                namedColors.Add("mediumspringgreen", true);
120                namedColors.Add("mediumturquoise", true);
121                namedColors.Add("mediumvioletred", true);
122                namedColors.Add("midnightblue", true);
123                namedColors.Add("mintcream", true);
124                namedColors.Add("mistyrose", true);
125                namedColors.Add("moccasin", true);
126                namedColors.Add("navajowhite", true);
127                namedColors.Add("navy", true);
128                namedColors.Add("oldlace", true);
129                namedColors.Add("olive", true);
130                namedColors.Add("olivedrab", true);
131                namedColors.Add("orange", true);
132                namedColors.Add("orangered", true);
133                namedColors.Add("orchid", true);
134                namedColors.Add("palegoldenrod", true);
135                namedColors.Add("palegreen", true);
136                namedColors.Add("paleturquoise", true);
137                namedColors.Add("palevioletred", true);
138                namedColors.Add("papayawhip", true);
139                namedColors.Add("peachpuff", true);
140                namedColors.Add("peru", true);
141                namedColors.Add("pink", true);
142                namedColors.Add("plum", true);
143                namedColors.Add("powderblue", true);
144                namedColors.Add("purple", true);
145                namedColors.Add("red", true);
146                namedColors.Add("rosybrown", true);
147                namedColors.Add("royalblue", true);
148                namedColors.Add("saddlebrown", true);
149                namedColors.Add("salmon", true);
150                namedColors.Add("sandybrown", true);
151                namedColors.Add("seagreen", true);
152                namedColors.Add("seashell", true);
153                namedColors.Add("sienna", true);
154                namedColors.Add("silver", true);
155                namedColors.Add("skyblue", true);
156                namedColors.Add("slateblue", true);
157                namedColors.Add("slategray", true);
158                namedColors.Add("slategrey", true);
159                namedColors.Add("snow", true);
160                namedColors.Add("springgreen", true);
161                namedColors.Add("steelblue", true);
162                namedColors.Add("tan", true);
163                namedColors.Add("teal", true);
164                namedColors.Add("thistle", true);
165                namedColors.Add("tomato", true);
166                namedColors.Add("turquoise", true);
167                namedColors.Add("violet", true);
168                namedColors.Add("wheat", true);
169                namedColors.Add("white", true);
170                namedColors.Add("whitesmoke", true);
171                namedColors.Add("yellow", true);
172                namedColors.Add("yellowgreen", true);
173
174                //System colors
175                namedColors.Add("ActiveBorder", true);
176                namedColors.Add("ActiveCaption", true);
177                namedColors.Add("AppWorkspace", true);
178                namedColors.Add("Background", true);
179                namedColors.Add("ButtonFace", true);
180                namedColors.Add("ButtonHighlight", true);
181                namedColors.Add("ButtonShadow", true);
182                namedColors.Add("ButtonText", true);
183                namedColors.Add("CaptionText", true);
184                namedColors.Add("GrayText", true);
185                namedColors.Add("Highlight", true);
186                namedColors.Add("HighlightText", true);
187                namedColors.Add("InactiveBorder", true);
188                namedColors.Add("InactiveCaption", true);
189                namedColors.Add("InactiveCaptionText", true);
190                namedColors.Add("InfoBackground", true);
191                namedColors.Add("InfoText", true);
192                namedColors.Add("Menu", true);
193                namedColors.Add("MenuText", true);
194                namedColors.Add("Scrollbar", true);
195                namedColors.Add("ThreeDDarkShadow", true);
196                namedColors.Add("ThreeDFace", true);
197                namedColors.Add("ThreeDHighlight", true);
198                namedColors.Add("ThreeDLightShadow", true);
199                namedColors.Add("ThreeDShadow", true);
200                namedColors.Add("Window", true);
201                namedColors.Add("WindowFrame", true);
202                namedColors.Add("WindowText ", true);
203            }
204
205            if (namedColors.ContainsKey(cssText) || reColor.Match(cssText).Success)
206            {
207                return true;
208            }
209
210            return false;
211        }
212
213        public CssPrimitiveRgbValue(string cssText, bool readOnly)
214            : base(cssText, readOnly)
215        {
216            OnSetCssText(cssText);
217        }
218
219        protected override void OnSetCssText(string cssText)
220        {
221            colorValue = new CssColor(cssText);
222            SetPrimitiveType(CssPrimitiveType.RgbColor);
223        }
224
225        public override string CssText
226        {
227            get
228            {
229                return colorValue.CssText;
230            }
231            set
232            {
233                if (ReadOnly)
234                {
235                    throw new DomException(DomExceptionType.InvalidModificationErr,
236                        "CssPrimitiveValue is read-only");
237                }
238                else
239                {
240                    OnSetCssText(value);
241                }
242            }
243        }
244    }
245}
Note: See TracBrowser for help on using the repository browser.