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.component;
21
22 import org.apache.myfaces.tobago.renderkit.RendererBase;
23 import org.apache.myfaces.tobago.util.AjaxUtils;
24 import org.apache.myfaces.tobago.util.ComponentUtils;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
27
28 import javax.faces.component.behavior.ClientBehaviorHolder;
29 import javax.faces.context.FacesContext;
30 import javax.faces.render.Renderer;
31 import java.io.IOException;
32 import java.lang.invoke.MethodHandles;
33
34
35
36
37 public abstract class AbstractUIPanel extends AbstractUICollapsiblePanel implements ClientBehaviorHolder {
38
39 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
40
41 @Override
42 public void encodeAll(FacesContext facesContext) throws IOException {
43
44 final AbstractUIReload reload = ComponentUtils.getReloadFacet(this);
45
46 if (reload != null && AjaxUtils.isAjaxRequest(facesContext) && reload.isRendered() && !reload.isUpdate()) {
47
48 final Renderer renderer = getRenderer(facesContext);
49 if (renderer instanceof RendererBase) {
50 ((RendererBase) renderer).encodeReload(facesContext, reload);
51 } else {
52 LOG.warn("Found reload facet but no renderer support for it id='{}'!", getClientId(facesContext));
53 }
54 } else {
55 super.encodeAll(facesContext);
56 }
57 }
58 }