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.waypoint;
23
24 import java.io.IOException;
25
26 import javax.faces.component.UIComponent;
27 import javax.faces.context.FacesContext;
28
29 import org.primefaces.expression.SearchExpressionUtils;
30 import org.primefaces.renderkit.CoreRenderer;
31 import org.primefaces.util.WidgetBuilder;
32
33
34
35
36
37
38
39 public class WaypointRenderer extends CoreRenderer {
40
41 @Override
42 public void decode(final FacesContext context, final UIComponent component) {
43 decodeBehaviors(context, component);
44 }
45
46 @Override
47 public void encodeEnd(final FacesContext fc, final UIComponent component) throws IOException {
48 final Waypoint waypoint = (Waypoint) component;
49 encodeScript(fc, waypoint);
50 }
51
52 private void encodeScript(final FacesContext fc, final Waypoint waypoint) throws IOException {
53 final String context = SearchExpressionUtils.resolveClientIdsForClientSide(fc, waypoint, waypoint.getForContext());
54 final String target = SearchExpressionUtils.resolveClientIdsForClientSide(fc, waypoint, waypoint.getFor());
55
56 final WidgetBuilder wb = getWidgetBuilder(fc);
57 wb.init("ExtWaypoint", waypoint);
58 wb.attr("target", target);
59 wb.attr("continuous", waypoint.isContinuous());
60 wb.attr("enabled", waypoint.isEnabled());
61 wb.attr("horizontal", waypoint.isHorizontal());
62 wb.attr("triggerOnce", waypoint.isTriggerOnce());
63
64 if (context != null) {
65 wb.attr("context", context);
66 }
67
68 if (waypoint.getOffset() != null) {
69 wb.nativeAttr("offset", waypoint.getOffset());
70 }
71
72 encodeClientBehaviors(fc, waypoint);
73
74 wb.finish();
75 }
76 }