1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.css;
16
17 import java.util.Collections;
18 import java.util.Map;
19
20 import org.htmlunit.BrowserVersion;
21 import org.htmlunit.BrowserVersionFeatures;
22 import org.htmlunit.css.StyleAttributes.Definition;
23 import org.htmlunit.cssparser.dom.AbstractCSSRuleImpl;
24 import org.htmlunit.cssparser.dom.CSSStyleDeclarationImpl;
25 import org.htmlunit.cssparser.parser.selector.SelectorSpecificity;
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public class WrappedCssStyleDeclaration extends AbstractCssStyleDeclaration {
43
44
45
46
47 private final CSSStyleDeclarationImpl cssStyleDeclarationImpl_;
48 private final BrowserVersion browserVersion_;
49
50
51
52
53
54
55 public WrappedCssStyleDeclaration(final CSSStyleDeclarationImpl cssStyleDeclarationImpl,
56 final BrowserVersion browserVersion) {
57 super();
58 cssStyleDeclarationImpl_ = cssStyleDeclarationImpl;
59 browserVersion_ = browserVersion;
60 }
61
62
63
64
65 @Override
66 public String getStylePriority(final String name) {
67 return cssStyleDeclarationImpl_.getPropertyPriority(name);
68 }
69
70
71
72
73 @Override
74 public String getCssText() {
75 final String text = cssStyleDeclarationImpl_.getCssText();
76 if (cssStyleDeclarationImpl_.getLength() > 0) {
77 return text + ";";
78 }
79 return text;
80 }
81
82
83
84
85 @Override
86 public String getStyleAttribute(final String name) {
87 return cssStyleDeclarationImpl_.getPropertyValue(name);
88 }
89
90
91
92
93 @Override
94 public String getStyleAttribute(final Definition definition, final boolean getDefaultValueIfEmpty) {
95 return getStyleAttribute(definition.getAttributeName());
96 }
97
98
99
100
101 @Override
102 public void setCssText(final String value) {
103 cssStyleDeclarationImpl_.setCssText(value);
104 }
105
106
107
108
109 @Override
110 public void setStyleAttribute(final String name, final String newValue, final String important) {
111 cssStyleDeclarationImpl_.setProperty(name, newValue, important);
112 }
113
114
115
116
117 @Override
118 public String removeStyleAttribute(final String name) {
119 return cssStyleDeclarationImpl_.removeProperty(name);
120 }
121
122
123
124
125 @Override
126 public int getLength() {
127 return cssStyleDeclarationImpl_.getProperties().size();
128 }
129
130
131
132
133 @Override
134 public String item(final int index) {
135 return cssStyleDeclarationImpl_.getProperties().get(index).toString();
136 }
137
138
139
140
141 @Override
142 public AbstractCSSRuleImpl getParentRule() {
143 return cssStyleDeclarationImpl_.getParentRule();
144 }
145
146
147
148
149 @Override
150 public StyleElement getStyleElement(final String name) {
151 final String value = cssStyleDeclarationImpl_.getPropertyValue(name);
152 if (value.isEmpty()) {
153 return null;
154 }
155 final String priority = cssStyleDeclarationImpl_.getPropertyPriority(name);
156 return new StyleElement(name, value, priority, SelectorSpecificity.FROM_STYLE_ATTRIBUTE);
157 }
158
159
160
161
162 @Override
163 public StyleElement getStyleElementCaseInSensitive(final String name) {
164 return null;
165 }
166
167
168
169
170 @Override
171 public Map<String, StyleElement> getStyleMap() {
172 return Collections.emptyMap();
173 }
174
175
176
177
178 @Override
179 public boolean hasFeature(final BrowserVersionFeatures property) {
180 return browserVersion_.hasFeature(property);
181 }
182
183
184
185
186 @Override
187 public BrowserVersion getBrowserVersion() {
188 return browserVersion_;
189 }
190 }