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.renderkit.html.scarborough.standard.tag;
21
22 import org.apache.myfaces.tobago.component.Attributes;
23 import org.apache.myfaces.tobago.component.UIObject;
24 import org.apache.myfaces.tobago.context.ResourceManagerUtils;
25 import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
26 import org.apache.myfaces.tobago.renderkit.css.Classes;
27 import org.apache.myfaces.tobago.renderkit.css.Style;
28 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
29 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
30 import org.apache.myfaces.tobago.renderkit.html.util.HtmlRendererUtils;
31 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
32
33 import javax.faces.component.UIComponent;
34 import javax.faces.context.FacesContext;
35 import java.io.IOException;
36
37 public class ObjectRenderer extends LayoutComponentRendererBase {
38 public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
39 UIObject object = (UIObject) component;
40 TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
41
42 writer.startElement(HtmlElements.IFRAME, object);
43 writer.writeAttribute(HtmlAttributes.FRAMEBORDER, "0", false);
44 writer.writeIdAttribute(object.getClientId(facesContext));
45 writer.writeNameAttribute(object.getClientId(facesContext));
46 HtmlRendererUtils.writeDataAttributes(facesContext, writer, object);
47 Object src = object.getSrc();
48 if (src != null) {
49 writer.writeAttribute(HtmlAttributes.SRC, String.valueOf(src), true);
50 } else {
51 writer.writeAttribute(HtmlAttributes.SRC, ResourceManagerUtils.getBlankPage(facesContext), false);
52 }
53 writer.writeClassAttribute(Classes.create(object));
54 Style style = new Style(facesContext, object);
55 writer.writeStyleAttribute(style);
56
57 String noframes = ResourceManagerUtils.getPropertyNotNull(
58 facesContext, "tobago", "browser.noframe.message.prefix");
59 writer.writeText(noframes + " ");
60 writer.startElement(HtmlElements.A, object);
61 if (src != null) {
62 writer.writeAttributeFromComponent(HtmlAttributes.HREF, Attributes.SRC);
63 writer.writeTextFromComponent(Attributes.SRC);
64 }
65 writer.endElement(HtmlElements.A);
66 noframes = ResourceManagerUtils.getPropertyNotNull(facesContext, "tobago", "browser.noframe.message.postfix");
67 writer.writeText(" " + noframes);
68
69 writer.endElement(HtmlElements.IFRAME);
70 }
71 }