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.lightswitch;
23
24 import java.io.IOException;
25 import java.util.Map;
26
27 import javax.faces.component.UIComponent;
28 import javax.faces.context.FacesContext;
29
30 import org.primefaces.renderkit.CoreRenderer;
31 import org.primefaces.util.Constants;
32 import org.primefaces.util.WidgetBuilder;
33
34
35
36
37
38
39
40 public class LightSwitchRenderer extends CoreRenderer {
41
42 @Override
43 public void decode(final FacesContext context, final UIComponent component) {
44 decodeBehaviors(context, component);
45 }
46
47 @Override
48 public void encodeEnd(final FacesContext context, final UIComponent component) throws IOException {
49 LightSwitch lightSwitch = (LightSwitch) component;
50
51 final Map<String, String> params = context.getExternalContext().getRequestParameterMap();
52 final String eventName = params.get(Constants.RequestParams.PARTIAL_BEHAVIOR_EVENT_PARAM);
53 if (LightSwitch.EVENT_SWITCH.equals(eventName)) {
54 return;
55 }
56
57 String theme = params.get(lightSwitch.getClientId(context) + "_theme");
58 if (theme != null) {
59 lightSwitch.setSelectedByValueExpression(context, theme);
60 return;
61 }
62
63 encodeScript(context, lightSwitch);
64 }
65
66 protected void encodeScript(FacesContext context, LightSwitch lightSwitch) throws IOException {
67 final WidgetBuilder wb = getWidgetBuilder(context)
68 .init("ExtLightSwitch", lightSwitch)
69 .attr("selected", lightSwitch.getSelected())
70 .attr("light", lightSwitch.getLight())
71 .attr("dark", lightSwitch.getDark())
72 .attr("automatic", lightSwitch.isAutomatic())
73 .attr("parent", lightSwitch.getParent().getClientId());
74
75 encodeClientBehaviors(context, lightSwitch);
76
77 wb.finish();
78 }
79
80 }