/*
* $Id: ContentItemViewerRenderer.java,v 1.7 2008/11/14 12:56:32 valdas Exp $
* Created on 16.2.2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.content.renderkit;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import com.idega.content.business.ContentConstants;
import com.idega.content.presentation.ContentItemViewer;
import com.idega.util.RenderUtils;
import com.idega.webface.renderkit.ContainerRenderer;
/**
*
* Last modified: $Date: 2008/11/14 12:56:32 $ by $Author: valdas $
*
* @author <a href="mailto:gummi@idega.com">Gudmundur Agust Saemundsson</a>
* @version $Revision: 1.7 $
*/
public class ContentItemViewerRenderer extends ContainerRenderer {
/*
* (non-Javadoc)
*
* @see javax.faces.render.Renderer#encodeChildren(javax.faces.context.FacesContext,
* javax.faces.component.UIComponent)
*/
@Override
public void encodeChildren(FacesContext ctx, UIComponent comp) throws IOException {
if (!comp.isRendered()) {
return;
}
ContentItemViewer viewer = (ContentItemViewer)comp;
renderHeader(ctx,viewer);
renderCustomComponent(ctx, viewer, ContentItemViewer.FACET_COMMENTS_SCRIPTS);
boolean renderToolbarAbove = false;
if(renderToolbarAbove){
renderToolbar(ctx,viewer);
}
renderFields(ctx, viewer);
renderDetailsCommand(ctx,viewer);
if(!renderToolbarAbove){
renderToolbar(ctx,viewer);
}
renderFooter(ctx,viewer);
renderCustomComponent(ctx, viewer, ContentItemViewer.FACET_ITEM_COMMENTS);
renderCustomComponent(ctx, viewer, ContentItemViewer.FACET_FEED_SCRIPT);
renderCustomComponent(ctx, viewer, ContentItemViewer.FACET_JAVA_SCRIPT);
renderCustomComponent(ctx, viewer, ContentConstants.CONTENT_ITEM_IDENTIFIER_NAME);
}
public void renderFields(FacesContext context, ContentItemViewer viewer) throws IOException {
String attr[] = viewer.getViewerFieldNames();
for (int i = 0; i < attr.length; i++) {
RenderUtils.renderFacet(context,viewer,viewer.getFacetName(attr[i]));
}
}
/**
* @param ctx
* @param viewer
* @throws IOException
*/
public void renderFooter(FacesContext ctx, ContentItemViewer viewer) throws IOException {
RenderUtils.renderChild(ctx,viewer.getViewerFacetWrapper(ContentItemViewer.FACET_ITEM_FOOTER));
}
/**
* @param ctx
* @param viewer
* @throws IOException
*/
public void renderHeader(FacesContext ctx, ContentItemViewer viewer) throws IOException {
RenderUtils.renderChild(ctx,viewer.getViewerFacetWrapper(ContentItemViewer.FACET_ITEM_HEADER));
}
/**
* @param ctx
* @param comp
* @throws IOException
*/
public void renderDetailsCommand(FacesContext ctx, ContentItemViewer viewer) throws IOException {
RenderUtils.renderChild(ctx,viewer.getViewerFacetWrapper(ContentItemViewer.FACET_ITEM_DETAILS_COMMAND));
}
/**
* @param ctx
* @param comp
* @throws IOException
*/
public void renderToolbar(FacesContext ctx, ContentItemViewer viewer) throws IOException {
UIComponent toolbar = viewer.getFacets().get(ContentItemViewer.FACET_TOOLBAR);
RenderUtils.renderChild(ctx,toolbar);
}
private void renderCustomComponent(FacesContext ctx, ContentItemViewer viewer, String facetName) throws IOException {
Object o = viewer.getFacets().get(facetName);
if (o instanceof UIComponent) {
RenderUtils.renderChild(ctx, (UIComponent) o);
}
return;
}
}