001/* 002 * (C) Copyright 2006-2007 Nuxeo SAS <http://nuxeo.com> and others 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * Jean-Marc Orliaguet, Chalmers 011 * 012 * $Id$ 013 */ 014 015package org.nuxeo.theme.jsf.filters.widgets; 016 017import org.nuxeo.theme.elements.Element; 018import org.nuxeo.theme.models.Region; 019import org.nuxeo.theme.rendering.RenderingInfo; 020import org.nuxeo.theme.views.AbstractView; 021 022public final class FaceletRegionView extends AbstractView { 023 024 @Override 025 public String render(final RenderingInfo info) { 026 final Region region = (Region) info.getModel(); 027 final StringBuilder s = new StringBuilder(); 028 029 final Element element = info.getElement(); 030 String className = element.getCssClassName(); 031 032 if ("".equals(region.name)) { 033 if (className == null) { 034 className = "nxthemesRegionNotSet"; 035 } 036 s.append("<div class=\"").append(className).append("\">").append("No facelet region name is set...").append( 037 "</div>"); 038 } else { 039 if (className == null) { 040 className = "themeRegion"; 041 } 042 s.append("<div xmlns:ui=\"http://java.sun.com/jsf/facelets\"").append(" class=\"").append(className).append( 043 "\">"); 044 s.append("<ui:insert name=\"").append(region.name).append("\">"); 045 if ("".equals(region.defaultSrc)) { 046 s.append(region.defaultBody); 047 } else { 048 s.append("<ui:include src=\"").append(region.defaultSrc).append("\" />"); 049 } 050 s.append("</ui:insert>"); 051 s.append("</div>"); 052 } 053 return s.toString(); 054 } 055}