/* * Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.arsdigita.london.theme; import com.arsdigita.templating.PatternGenerator; import com.arsdigita.dispatcher.DispatcherHelper; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.ArrayList; /** * This looks at the current state and returns the correct directory * to look for the themes. This is especially useful when the distinction * between "dev" and "prod" is needed. */ public class ThemeDirectoryPatternGenerator implements PatternGenerator, ThemeConstants { public String[] generateValues(String key, HttpServletRequest req) { List themes = new ArrayList(); // Create a list of theme directories, most preferrable // theme listed first. // if it is in "preview" mode, we use the devevlopment directory; // otherwise, we use the production directory String value = DispatcherHelper.getDispatcherPrefix(req); if (value != null) { themes.add(DEV_DIR_STUB); } else { themes.add(PROD_DIR_STUB); } return (String[])themes.toArray(new String[themes.size()]); } }