1 package org.rcfaces.core.component;
2
3 import org.rcfaces.core.internal.component.Properties;
4 import java.util.Map;
5 import org.rcfaces.core.component.capability.IUserEventCapability;
6 import org.apache.commons.logging.LogFactory;
7 import java.util.Collections;
8 import org.rcfaces.core.internal.manager.IClientDataManager;
9 import org.rcfaces.core.component.capability.IValidationEventCapability;
10 import javax.faces.context.FacesContext;
11 import org.rcfaces.core.component.capability.IImmediateCapability;
12 import org.rcfaces.core.internal.Constants;
13 import org.rcfaces.core.component.capability.IServerDataCapability;
14 import org.apache.commons.logging.Log;
15 import java.util.Set;
16 import org.rcfaces.core.component.capability.IValueLockedCapability;
17 import org.rcfaces.core.internal.tools.ComponentTools;
18 import org.rcfaces.core.internal.component.CameliaInputComponent;
19 import java.lang.Object;
20 import java.lang.String;
21 import org.rcfaces.core.component.capability.IPropertyChangeEventCapability;
22 import org.rcfaces.core.internal.component.IDataMapAccessor;
23 import org.rcfaces.core.internal.manager.IServerDataManager;
24 import javax.el.ValueExpression;
25 import java.util.HashSet;
26 import org.rcfaces.core.component.capability.IClientDataCapability;
27 import java.util.Arrays;
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public class HiddenValueComponent extends CameliaInputComponent implements
49 IClientDataCapability,
50 IServerDataCapability,
51 IPropertyChangeEventCapability,
52 IImmediateCapability,
53 IValueLockedCapability,
54 IValidationEventCapability,
55 IUserEventCapability,
56 IClientDataManager,
57 IServerDataManager {
58
59 private static final Log LOG = LogFactory.getLog(HiddenValueComponent.class);
60
61 public static final String COMPONENT_TYPE="org.rcfaces.core.hiddenValue";
62
63 protected static final Set CAMELIA_ATTRIBUTES=new HashSet(CameliaInputComponent.CAMELIA_ATTRIBUTES);
64 static {
65 CAMELIA_ATTRIBUTES.addAll(Arrays.asList(new String[] {"immediate","userEventListener","valueLocked","propertyChangeListener","validationListener"}));
66 }
67
68 public HiddenValueComponent() {
69 setRendererType(COMPONENT_TYPE);
70 }
71
72 public HiddenValueComponent(String componentId) {
73 this();
74 setId(componentId);
75 }
76
77 public void setClientData(String name, ValueExpression value) {
78
79
80 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", true);
81
82 dataMapAccessor.setData(name, value, null);
83
84 }
85
86 public String setClientData(String name, String value) {
87
88
89 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", true);
90
91 return (String)dataMapAccessor.setData(name, value, null);
92
93 }
94
95 public void setServerData(String name, ValueExpression value) {
96
97
98 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", true);
99
100 dataMapAccessor.setData(name, value, null);
101
102 }
103
104 public Object setServerData(String name, Object value) {
105
106
107 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", true);
108
109 return dataMapAccessor.setData(name, value, null);
110
111 }
112
113 public String getClientData(String name, FacesContext facesContext) {
114
115
116 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", false);
117 if (dataMapAccessor==null) {
118 return null;
119 }
120
121 return (String)dataMapAccessor.getData(name, facesContext);
122
123 }
124
125 public Object getServerData(String name, FacesContext facesContext) {
126
127
128 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", false);
129 if (dataMapAccessor==null) {
130 return null;
131 }
132
133 return dataMapAccessor.getData(name, facesContext);
134
135 }
136
137 public Map getClientDataMap(FacesContext facesContext) {
138
139
140 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(facesContext, "clientData", false);
141 if (dataMapAccessor==null) {
142 return Collections.EMPTY_MAP;
143 }
144
145 return dataMapAccessor.getDataMap(facesContext);
146
147 }
148
149 public Map getServerDataMap(FacesContext facesContext) {
150
151
152 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(facesContext, "serverData", false);
153 if (dataMapAccessor==null) {
154 return Collections.EMPTY_MAP;
155 }
156
157 Map map=dataMapAccessor.getDataMap(facesContext);
158 if (Constants.READ_ONLY_COLLECTION_LOCK_ENABLED) {
159 if (map.isEmpty()) {
160 return Collections.EMPTY_MAP;
161 }
162 map=Collections.unmodifiableMap(map);
163 }
164 return map;
165
166 }
167
168 public String[] listClientDataKeys(FacesContext facesContext) {
169
170
171 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", false);
172 if (dataMapAccessor==null) {
173 return ComponentTools.STRING_EMPTY_ARRAY;
174 }
175
176 return dataMapAccessor.listDataKeys(facesContext);
177
178 }
179
180 public String[] listServerDataKeys(FacesContext facesContext) {
181
182
183 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", false);
184 if (dataMapAccessor==null) {
185 return ComponentTools.STRING_EMPTY_ARRAY;
186 }
187
188 return dataMapAccessor.listDataKeys(facesContext);
189
190 }
191
192 public int getClientDataCount() {
193
194
195 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", false);
196 if (dataMapAccessor==null) {
197 return 0;
198 }
199
200 return dataMapAccessor.getDataCount();
201
202 }
203
204 public String[] listClientDataKeys() {
205
206
207 return listClientDataKeys(null);
208
209 }
210
211 public String removeClientData(String name) {
212
213
214 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "clientData", false);
215 if (dataMapAccessor==null) {
216 return null;
217 }
218
219 return (String)dataMapAccessor.removeData(name, null);
220
221 }
222
223 public String getClientData(String name) {
224
225
226 return getClientData(name, null);
227
228 }
229
230 public Map getClientDataMap() {
231
232
233 return getClientDataMap(null);
234
235 }
236
237 public String[] listServerDataKeys() {
238
239
240 return listServerDataKeys(null);
241
242 }
243
244 public Map getServerDataMap() {
245
246
247 return getServerDataMap(null);
248
249 }
250
251 public int getServerDataCount() {
252
253
254 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", false);
255 if (dataMapAccessor==null) {
256 return 0;
257 }
258
259 return dataMapAccessor.getDataCount();
260
261 }
262
263 public Object getServerData(String name) {
264
265
266 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", false);
267 if (dataMapAccessor==null) {
268 return null;
269 }
270
271 return dataMapAccessor.getData(name, null);
272
273 }
274
275 public Object removeServerData(String name) {
276
277
278 IDataMapAccessor dataMapAccessor=engine.getDataMapAccessor(null, "serverData", false);
279 if (dataMapAccessor==null) {
280 return null;
281 }
282
283 return dataMapAccessor.removeData(name, null);
284
285 }
286
287 public final void addPropertyChangeListener(org.rcfaces.core.event.IPropertyChangeListener listener) {
288 addFacesListener(listener);
289 }
290
291 public final void removePropertyChangeListener(org.rcfaces.core.event.IPropertyChangeListener listener) {
292 removeFacesListener(listener);
293 }
294
295 public final javax.faces.event.FacesListener [] listPropertyChangeListeners() {
296 return getFacesListeners(org.rcfaces.core.event.IPropertyChangeListener.class);
297 }
298
299 public boolean isValueLocked() {
300 return isValueLocked(null);
301 }
302
303
304
305
306 public boolean isValueLocked(javax.faces.context.FacesContext facesContext) {
307 return engine.getBoolProperty(Properties.VALUE_LOCKED, false, facesContext);
308 }
309
310
311
312
313
314 public final boolean isValueLockedSetted() {
315 return engine.isPropertySetted(Properties.VALUE_LOCKED);
316 }
317
318 public void setValueLocked(boolean valueLocked) {
319 engine.setProperty(Properties.VALUE_LOCKED, valueLocked);
320 }
321
322 public final void addValidationListener(org.rcfaces.core.event.IValidationListener listener) {
323 addFacesListener(listener);
324 }
325
326 public final void removeValidationListener(org.rcfaces.core.event.IValidationListener listener) {
327 removeFacesListener(listener);
328 }
329
330 public final javax.faces.event.FacesListener [] listValidationListeners() {
331 return getFacesListeners(org.rcfaces.core.event.IValidationListener.class);
332 }
333
334 public final void addUserEventListener(org.rcfaces.core.event.IUserEventListener listener) {
335 addFacesListener(listener);
336 }
337
338 public final void removeUserEventListener(org.rcfaces.core.event.IUserEventListener listener) {
339 removeFacesListener(listener);
340 }
341
342 public final javax.faces.event.FacesListener [] listUserEventListeners() {
343 return getFacesListeners(org.rcfaces.core.event.IUserEventListener.class);
344 }
345
346 protected Set getCameliaFields() {
347 return CAMELIA_ATTRIBUTES;
348 }
349 }