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.component; 016 017import java.io.IOException; 018import java.net.URL; 019import java.util.HashMap; 020import java.util.Map; 021 022import javax.faces.component.UIOutput; 023import javax.faces.context.ExternalContext; 024import javax.faces.context.FacesContext; 025import javax.faces.context.ResponseWriter; 026import javax.servlet.ServletRequest; 027 028import org.nuxeo.theme.html.ui.Head; 029import org.nuxeo.theme.jsf.URLUtils; 030import org.nuxeo.theme.themes.ThemeManager; 031 032public class UIHead extends UIOutput { 033 034 @Override 035 public void encodeAll(final FacesContext context) throws IOException { 036 final ResponseWriter writer = context.getResponseWriter(); 037 final ExternalContext externalContext = context.getExternalContext(); 038 039 final URL themeUrl = (URL) externalContext.getRequestMap().get("org.nuxeo.theme.url"); 040 Map<String, String> params = new HashMap<String, String>(); 041 042 params.put("themeName", ThemeManager.getThemeNameByUrl(themeUrl)); 043 params.put("path", externalContext.getRequestContextPath()); 044 String baseUrl = URLUtils.getBaseURL((ServletRequest) externalContext.getRequest()); 045 if (!baseUrl.endsWith("/")) { 046 baseUrl += "/"; 047 } 048 params.put("baseUrl", baseUrl); 049 050 writer.write(Head.render(params)); 051 } 052}