1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.renderkit.renderer;
21
22 import org.apache.myfaces.tobago.internal.component.AbstractUISelectOneBase;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import javax.faces.context.FacesContext;
27 import java.lang.invoke.MethodHandles;
28
29 public abstract class SelectOneRendererBase<T extends AbstractUISelectOneBase> extends MessageLayoutRendererBase<T> {
30
31 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
32
33 @Override
34 protected boolean isOutputOnly(T component) {
35 return component.isDisabled() || component.isReadonly();
36 }
37
38 @Override
39 public void decodeInternal(final FacesContext facesContext, final T component) {
40 if (isOutputOnly(component)) {
41 return;
42 }
43
44 final String clientId = component.getClientId(facesContext);
45 final Object newValue =
46 facesContext.getExternalContext().getRequestParameterMap().get(clientId);
47 if (LOG.isDebugEnabled()) {
48 LOG.debug("decode: key='" + clientId + "' value='" + newValue + "'");
49 }
50 component.setSubmittedValue(newValue);
51
52 decodeClientBehaviors(facesContext, component);
53 }
54 }