1
2
3
4 package org.rcfaces.core.internal.tools;
5
6 import javax.faces.context.FacesContext;
7
8 import org.rcfaces.core.component.ToolBarComponent;
9 import org.rcfaces.core.component.capability.IImageCapability;
10 import org.rcfaces.core.component.capability.ISeverityImagesCapability;
11 import org.rcfaces.core.component.capability.IStatesImageCapability;
12 import org.rcfaces.core.component.familly.IContentAccessors;
13 import org.rcfaces.core.internal.capability.IComponentEngine;
14 import org.rcfaces.core.internal.component.IExpandImageAccessors;
15 import org.rcfaces.core.internal.component.IImageAccessors;
16 import org.rcfaces.core.internal.component.ISeverityImageAccessors;
17 import org.rcfaces.core.internal.component.IToolBarImageAccessors;
18 import org.rcfaces.core.internal.component.Properties;
19 import org.rcfaces.core.internal.contentAccessor.ContentAccessorFactory;
20 import org.rcfaces.core.internal.contentAccessor.IContentAccessor;
21 import org.rcfaces.core.lang.IContentFamily;
22
23
24
25
26
27
28 public class ImageAccessorTools {
29 private static final String REVISION = "$Revision: 1.8 $";
30
31 private static final IContentAccessors NO_IMAGE_ACCESSORS = new IImageAccessors() {
32 private static final String REVISION = "$Revision: 1.8 $";
33
34 public IContentAccessor getImageAccessor() {
35 return null;
36 }
37 };
38
39 private static final IContentAccessors NO_IMAGE_STATES_ACCESSORS = new IExpandImageAccessors() {
40 private static final String REVISION = "$Revision: 1.8 $";
41
42 public IContentAccessor getImageAccessor() {
43 return null;
44 }
45
46 public IContentAccessor getDisabledImageAccessor() {
47 return null;
48 }
49
50 public IContentAccessor getHoverImageAccessor() {
51 return null;
52 }
53
54 public IContentAccessor getSelectedImageAccessor() {
55 return null;
56 }
57
58 public IContentAccessor getExpandedImageAccessor() {
59 return null;
60 }
61 };
62
63 private static final IContentAccessors NO_IMAGE_SEVERITY_ACCESSSORS = new ISeverityImageAccessors() {
64 private static final String REVISION = "$Revision: 1.8 $";
65
66 public IContentAccessor getErrorImageAccessor() {
67 return null;
68 }
69
70 public IContentAccessor getFatalImageAccessor() {
71 return null;
72 }
73
74 public IContentAccessor getInfoImageAccessor() {
75 return null;
76 }
77
78 public IContentAccessor getWarnImageAccessor() {
79 return null;
80 }
81
82 public IContentAccessor getImageAccessor() {
83 return null;
84 }
85
86 };
87
88 public static IContentAccessors createImageAccessor(
89 FacesContext facesContext, Object value) {
90 if (value == null) {
91 return NO_IMAGE_ACCESSORS;
92 }
93
94 return ContentAccessorFactory.createSingleImageWebResource(
95 facesContext, value, IContentFamily.IMAGE);
96 }
97
98 public static IContentAccessors createImageAccessors(
99 FacesContext facesContext, IImageCapability component,
100 IComponentEngine engine) {
101 if (facesContext == null) {
102 facesContext = FacesContext.getCurrentInstance();
103 }
104
105 Object imageContent = engine.getProperty(Properties.IMAGE_URL,
106 facesContext);
107
108 return createImageAccessor(facesContext, imageContent);
109 }
110
111 public static IContentAccessors createImageAccessors(
112 FacesContext facesContext, IStatesImageCapability component,
113 IComponentEngine engine) {
114 if (facesContext == null) {
115 facesContext = FacesContext.getCurrentInstance();
116 }
117
118 final IContentAccessor imageContentAccessor = createSubAccessor(
119 facesContext, engine, Properties.IMAGE_URL, null);
120
121 final IContentAccessor disabledImageContentAccessor = createSubAccessor(
122 facesContext, engine, Properties.DISABLED_IMAGE_URL,
123 imageContentAccessor);
124
125 final IContentAccessor selectedImageContentAccessor = createSubAccessor(
126 facesContext, engine, Properties.SELECTED_IMAGE_URL,
127 imageContentAccessor);
128
129 final IContentAccessor hoverImageContentAccessor = createSubAccessor(
130 facesContext, engine, Properties.HOVER_IMAGE_URL,
131 imageContentAccessor);
132
133 final IContentAccessor expandedImageContentAccessor = createSubAccessor(
134 facesContext, engine, Properties.EXPANDED_IMAGE_URL,
135 imageContentAccessor);
136
137 if (imageContentAccessor == null
138 && selectedImageContentAccessor == null
139 && disabledImageContentAccessor == null
140 && hoverImageContentAccessor == null
141 && expandedImageContentAccessor == null) {
142
143 return NO_IMAGE_STATES_ACCESSORS;
144 }
145
146 return new IExpandImageAccessors() {
147 private static final String REVISION = "$Revision: 1.8 $";
148
149 public IContentAccessor getImageAccessor() {
150 return imageContentAccessor;
151 }
152
153 public IContentAccessor getSelectedImageAccessor() {
154 return selectedImageContentAccessor;
155 }
156
157 public IContentAccessor getDisabledImageAccessor() {
158 return disabledImageContentAccessor;
159 }
160
161 public IContentAccessor getHoverImageAccessor() {
162 return hoverImageContentAccessor;
163 }
164
165 public IContentAccessor getExpandedImageAccessor() {
166 return expandedImageContentAccessor;
167 }
168
169 };
170 }
171
172 public static IContentAccessors createImageAccessors(
173 FacesContext facesContext, ISeverityImagesCapability component,
174 IComponentEngine engine) {
175 if (facesContext == null) {
176 facesContext = FacesContext.getCurrentInstance();
177 }
178
179 final IContentAccessor imageContentAccessor = createSubAccessor(
180 facesContext, engine, Properties.IMAGE_URL, null);
181
182 final IContentAccessor infoImageContentAccessor = createSubAccessor(
183 facesContext, engine, Properties.INFO_IMAGE_URL,
184 imageContentAccessor);
185
186 final IContentAccessor warnImageContentAccessor = createSubAccessor(
187 facesContext, engine, Properties.WARN_IMAGE_URL,
188 imageContentAccessor);
189
190 final IContentAccessor errorImageContentAccessor = createSubAccessor(
191 facesContext, engine, Properties.ERROR_IMAGE_URL,
192 imageContentAccessor);
193
194 final IContentAccessor fatalImageContentAccessor = createSubAccessor(
195 facesContext, engine, Properties.FATAL_IMAGE_URL,
196 imageContentAccessor);
197
198 if (imageContentAccessor == null && infoImageContentAccessor == null
199 && warnImageContentAccessor == null
200 && errorImageContentAccessor == null
201 && fatalImageContentAccessor == null) {
202 return NO_IMAGE_SEVERITY_ACCESSSORS;
203 }
204
205 return new ISeverityImageAccessors() {
206 private static final String REVISION = "$Revision: 1.8 $";
207
208 public IContentAccessor getErrorImageAccessor() {
209 return errorImageContentAccessor;
210 }
211
212 public IContentAccessor getFatalImageAccessor() {
213 return fatalImageContentAccessor;
214 }
215
216 public IContentAccessor getInfoImageAccessor() {
217 return infoImageContentAccessor;
218 }
219
220 public IContentAccessor getWarnImageAccessor() {
221 return warnImageContentAccessor;
222 }
223
224 public IContentAccessor getImageAccessor() {
225 return imageContentAccessor;
226 }
227 };
228 }
229
230 private static IContentAccessor createSubAccessor(
231 FacesContext facesContext, IComponentEngine engine,
232 String attributeName, IContentAccessor rootImageContentAccessor) {
233
234 Object imageContent = engine.getProperty(attributeName, facesContext);
235
236 if (imageContent == null) {
237 return null;
238 }
239
240 if (rootImageContentAccessor != null) {
241 return ContentAccessorFactory.createFromWebResource(facesContext,
242 imageContent, rootImageContentAccessor);
243 }
244
245 return ContentAccessorFactory.createFromWebResource(facesContext,
246 imageContent, IContentFamily.IMAGE);
247 }
248
249 public static IToolBarImageAccessors createImageAccessors(
250 FacesContext facesContext, ToolBarComponent component,
251 IComponentEngine engine) {
252 if (facesContext == null) {
253 facesContext = FacesContext.getCurrentInstance();
254 }
255
256 final IContentAccessor separatorContentAccessor = createSubAccessor(
257 facesContext, engine, Properties.SEPARATOR_IMAGE_URL, null);
258
259 final IContentAccessor controlImageContentAccessor = createSubAccessor(
260 facesContext, engine, Properties.CONTROL_IMAGE_URL, null);
261
262 return new IToolBarImageAccessors() {
263 private static final String REVISION = "$Revision: 1.8 $";
264
265 public IContentAccessor getControlImageAccessor() {
266 return controlImageContentAccessor;
267 }
268
269 public IContentAccessor getSeparatorImageAccessor() {
270 return separatorContentAccessor;
271 }
272
273 };
274 }
275 }