1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.primefaces.extensions.component.timer;
23
24 import java.util.Locale;
25
26 import javax.el.MethodExpression;
27 import javax.faces.application.ResourceDependency;
28 import javax.faces.component.UIComponentBase;
29 import javax.faces.context.FacesContext;
30
31 import org.primefaces.component.api.AjaxSource;
32 import org.primefaces.component.api.Widget;
33 import org.primefaces.util.Constants;
34 import org.primefaces.util.LocaleUtils;
35
36
37
38
39
40
41 @ResourceDependency(library = "primefaces", name = "components.css")
42 @ResourceDependency(library = "primefaces", name = "jquery/jquery.js")
43 @ResourceDependency(library = "primefaces", name = "jquery/jquery-plugins.js")
44 @ResourceDependency(library = "primefaces", name = "core.js")
45 @ResourceDependency(library = "primefaces", name = "moment/moment.js")
46 @ResourceDependency(library = "primefaces-extensions", name = "primefaces-extensions.js")
47 @ResourceDependency(library = "primefaces-extensions", name = "timer/timer.css")
48 @ResourceDependency(library = "primefaces-extensions", name = "timer/timer.js")
49 public class Timer extends UIComponentBase implements Widget, AjaxSource {
50
51 public static final String COMPONENT_TYPE = "org.primefaces.extensions.component.Timer";
52 public static final String COMPONENT_FAMILY = "org.primefaces.extensions.component";
53 public static final String STYLE_CLASS = "ui-timer ui-widget ui-widget-header ui-corner-all";
54 private static final int DEFAULT_TIMEOUT = 10;
55 private static final int DEFAULT_INTERVAL_MS = 1000;
56
57 private Locale appropriateLocale;
58
59 @SuppressWarnings("java:S115")
60 protected enum PropertyKeys {
61
62
63 widgetVar,
64 singleRun,
65 timeout,
66 interval,
67 update,
68 listener,
69 immediate,
70 ontimercomplete,
71 ontimerstep,
72 onstart,
73 oncomplete,
74 process,
75 onerror,
76 onsuccess,
77 global,
78 delay,
79 async,
80 autoStart,
81 partialSubmit,
82 resetValues,
83 format,
84 style,
85 styleClass,
86 ignoreAutoUpdate,
87 visible,
88 forward,
89 locale,
90 formatFunction,
91 partialSubmitFilter,
92 form,
93 title,
94 ignoreComponentNotFound
95
96
97 }
98
99 public Timer() {
100 setRendererType(TimerRenderer.RENDERER_TYPE);
101 }
102
103 @Override
104 public String getFamily() {
105 return COMPONENT_FAMILY;
106 }
107
108 public Locale calculateLocale() {
109 if (appropriateLocale == null) {
110 final FacesContext fc = FacesContext.getCurrentInstance();
111 appropriateLocale = LocaleUtils.resolveLocale(fc, getLocale(), getClientId(fc));
112 }
113 return appropriateLocale;
114 }
115
116 public boolean isSingleRun() {
117 return Boolean.TRUE.equals(getStateHelper().eval(PropertyKeys.singleRun, true));
118 }
119
120 public void setSingleRun(final boolean singleRun) {
121 getStateHelper().put(PropertyKeys.singleRun, singleRun);
122 }
123
124 @Override
125 public int getTimeout() {
126 return (Integer) getStateHelper().eval(PropertyKeys.timeout, DEFAULT_TIMEOUT);
127 }
128
129 public void setTimeout(final int timeout) {
130 getStateHelper().put(PropertyKeys.timeout, timeout);
131 }
132
133 public int getInterval() {
134 return (Integer) getStateHelper().eval(PropertyKeys.interval, DEFAULT_INTERVAL_MS);
135 }
136
137 public void setInterval(final int interval) {
138 getStateHelper().put(PropertyKeys.interval, interval);
139 }
140
141 public java.lang.String getWidgetVar() {
142 return (java.lang.String) getStateHelper().eval(PropertyKeys.widgetVar, null);
143 }
144
145 public void setWidgetVar(final java.lang.String widgetVar) {
146 getStateHelper().put(PropertyKeys.widgetVar, widgetVar);
147 }
148
149 @Override
150 public java.lang.String getUpdate() {
151 return (java.lang.String) getStateHelper().eval(PropertyKeys.update, null);
152 }
153
154 public void setUpdate(final java.lang.String update) {
155 getStateHelper().put(PropertyKeys.update, update);
156 }
157
158 public MethodExpression getListener() {
159 return (MethodExpression) getStateHelper().eval(PropertyKeys.listener, null);
160 }
161
162 public void setListener(final MethodExpression listener) {
163 getStateHelper().put(PropertyKeys.listener, listener);
164 }
165
166 public boolean isImmediate() {
167 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.immediate, false);
168 }
169
170 public void setImmediate(final boolean immediate) {
171 getStateHelper().put(PropertyKeys.immediate, immediate);
172 }
173
174 @Override
175 public java.lang.String getOnstart() {
176 return (java.lang.String) getStateHelper().eval(PropertyKeys.onstart, null);
177 }
178
179 public void setOnstart(final java.lang.String onstart) {
180 getStateHelper().put(PropertyKeys.onstart, onstart);
181 }
182
183 @Override
184 public java.lang.String getOncomplete() {
185 return (java.lang.String) getStateHelper().eval(PropertyKeys.oncomplete, null);
186 }
187
188 public void setOncomplete(final java.lang.String oncomplete) {
189 getStateHelper().put(PropertyKeys.oncomplete, oncomplete);
190 }
191
192 public java.lang.String getOntimercomplete() {
193 return (java.lang.String) getStateHelper().eval(PropertyKeys.ontimercomplete, null);
194 }
195
196 public void setOntimercomplete(final java.lang.String oncomplete) {
197 getStateHelper().put(PropertyKeys.ontimercomplete, oncomplete);
198 }
199
200 public java.lang.String getOntimerstep() {
201 return (java.lang.String) getStateHelper().eval(PropertyKeys.ontimerstep, null);
202 }
203
204 public void setOntimerstep(final java.lang.String onstep) {
205 getStateHelper().put(PropertyKeys.ontimerstep, onstep);
206 }
207
208 @Override
209 public java.lang.String getProcess() {
210 return (java.lang.String) getStateHelper().eval(PropertyKeys.process, null);
211 }
212
213 public void setProcess(final java.lang.String process) {
214 getStateHelper().put(PropertyKeys.process, process);
215 }
216
217 @Override
218 public java.lang.String getOnerror() {
219 return (java.lang.String) getStateHelper().eval(PropertyKeys.onerror, null);
220 }
221
222 public void setOnerror(final java.lang.String onerror) {
223 getStateHelper().put(PropertyKeys.onerror, onerror);
224 }
225
226 @Override
227 public java.lang.String getOnsuccess() {
228 return (java.lang.String) getStateHelper().eval(PropertyKeys.onsuccess, null);
229 }
230
231 public void setOnsuccess(final java.lang.String onsuccess) {
232 getStateHelper().put(PropertyKeys.onsuccess, onsuccess);
233 }
234
235 @Override
236 public boolean isGlobal() {
237 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.global, true);
238 }
239
240 public void setGlobal(final boolean global) {
241 getStateHelper().put(PropertyKeys.global, global);
242 }
243
244 @Override
245 public java.lang.String getDelay() {
246 return (java.lang.String) getStateHelper().eval(PropertyKeys.delay, null);
247 }
248
249 public void setDelay(final java.lang.String delay) {
250 getStateHelper().put(PropertyKeys.delay, delay);
251 }
252
253 @Override
254 public boolean isAsync() {
255 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.async, false);
256 }
257
258 public void setAsync(final boolean async) {
259 getStateHelper().put(PropertyKeys.async, async);
260 }
261
262 public boolean isAutoStart() {
263 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.autoStart, true);
264 }
265
266 public void setAutoStart(final boolean autoStart) {
267 getStateHelper().put(PropertyKeys.autoStart, autoStart);
268 }
269
270 @Override
271 public boolean isPartialSubmit() {
272 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.partialSubmit, false);
273 }
274
275 public void setPartialSubmit(final boolean partialSubmit) {
276 getStateHelper().put(PropertyKeys.partialSubmit, partialSubmit);
277 }
278
279 @Override
280 public boolean isResetValues() {
281 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.resetValues, false);
282 }
283
284 public void setResetValues(final boolean resetValues) {
285 getStateHelper().put(PropertyKeys.resetValues, resetValues);
286 }
287
288 @Override
289 public boolean isIgnoreAutoUpdate() {
290 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.ignoreAutoUpdate, false);
291 }
292
293 public void setIgnoreAutoUpdate(final boolean ignoreAutoUpdate) {
294 getStateHelper().put(PropertyKeys.ignoreAutoUpdate, ignoreAutoUpdate);
295 }
296
297 @Override
298 public boolean isPartialSubmitSet() {
299 return getStateHelper().get(PropertyKeys.partialSubmit) != null || getValueExpression("partialSubmit") != null;
300 }
301
302 @Override
303 public boolean isResetValuesSet() {
304 return getStateHelper().get(PropertyKeys.resetValues) != null || getValueExpression("resetValues") != null;
305 }
306
307 @Override
308 public boolean isAjaxified() {
309 return true;
310 }
311
312 public java.lang.String getStyle() {
313 return (java.lang.String) getStateHelper().eval(PropertyKeys.style, Constants.EMPTY_STRING);
314 }
315
316 public void setFormat(final String format) {
317 getStateHelper().put(PropertyKeys.format, format);
318 }
319
320 public String getFormat() {
321 return (String) getStateHelper().eval(PropertyKeys.format, Constants.EMPTY_STRING);
322 }
323
324 public void setFormatFunction(final String format) {
325 getStateHelper().put(PropertyKeys.formatFunction, format);
326 }
327
328 public String getFormatFunction() {
329 return (String) getStateHelper().eval(PropertyKeys.formatFunction, Constants.EMPTY_STRING);
330 }
331
332 public void setStyle(final java.lang.String style) {
333 getStateHelper().put(PropertyKeys.style, style);
334 }
335
336 public java.lang.String getStyleClass() {
337 return (java.lang.String) getStateHelper().eval(PropertyKeys.styleClass, Constants.EMPTY_STRING);
338 }
339
340 public void setStyleClass(final java.lang.String styleClass) {
341 getStateHelper().put(PropertyKeys.styleClass, styleClass);
342 }
343
344 public java.lang.String getTitle() {
345 return (java.lang.String) getStateHelper().eval(PropertyKeys.title, Constants.EMPTY_STRING);
346 }
347
348 public void setTitle(final java.lang.String title) {
349 getStateHelper().put(PropertyKeys.title, title);
350 }
351
352 public boolean isVisible() {
353 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.visible, true);
354 }
355
356 public void setVisible(final boolean visible) {
357 getStateHelper().put(PropertyKeys.visible, visible);
358 }
359
360 public boolean isForward() {
361 return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.forward, false);
362 }
363
364 public void setForward(final boolean forward) {
365 getStateHelper().put(PropertyKeys.forward, forward);
366 }
367
368 public Object getLocale() {
369 return getStateHelper().eval(PropertyKeys.locale, null);
370 }
371
372 public void setLocale(final Object locale) {
373 getStateHelper().put(PropertyKeys.locale, locale);
374 }
375
376 @Override
377 public java.lang.String getPartialSubmitFilter() {
378 return (java.lang.String) getStateHelper().eval(PropertyKeys.partialSubmitFilter, null);
379 }
380
381 public void setPartialSubmitFilter(final java.lang.String partialSubmitFilter) {
382 getStateHelper().put(PropertyKeys.partialSubmitFilter, partialSubmitFilter);
383 }
384
385 @Override
386 public java.lang.String getForm() {
387 return (java.lang.String) getStateHelper().eval(PropertyKeys.form, null);
388 }
389
390 public void setForm(final java.lang.String form) {
391 getStateHelper().put(PropertyKeys.form, form);
392 }
393
394 @Override
395 public void broadcast(final javax.faces.event.FacesEvent event) {
396 super.broadcast(event);
397
398 final FacesContext facesContext = getFacesContext();
399 final MethodExpression me = getListener();
400
401 if (me != null) {
402 me.invoke(facesContext.getELContext(), new Object[] {});
403 }
404 }
405
406 @Override
407 public boolean isIgnoreComponentNotFound() {
408 return (Boolean) getStateHelper().eval(PropertyKeys.ignoreComponentNotFound, false);
409 }
410
411 public void setIgnoreComponentNotFound(final boolean ignoreComponentNotFound) {
412 getStateHelper().put(PropertyKeys.ignoreComponentNotFound, ignoreComponentNotFound);
413 }
414
415 @Override
416 public Object saveState(FacesContext context) {
417
418 appropriateLocale = null;
419
420 return super.saveState(context);
421 }
422 }