/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program 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.
*
* Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved.
*/
package org.pentaho.platform.api.ui;
import java.util.List;
/**
* Class responsible for collecting information about all available system module local themes. All implementations
* should utilize a caching mechanism to prevent unnecessary overhead.
*
* User: nbaker Date: 5/15/11
*/
public interface IThemeManager {
/**
* Set the collection of IThemeResolver objects used to find available themes
*
* @param resolvers
*/
void setThemeResolvers( List<IThemeResolver> resolvers );
/**
* Return a list of available system themes.
*
* @return List of themes
*/
public List<String> getSystemThemeIds();
/**
* Returns the named theme or null if not found.
*
* @param themeName
* @return Theme for the supplied name
*/
Theme getSystemTheme( String themeName );
/**
* Returns the named local theme for the given named module or null if either is not found
*
* @param moduleName
* @param themeName
* @return
*/
Theme getModuleTheme( String moduleName, String themeName );
/**
* Returns the MoudleThemeInfo object containing all themes for the given module name or null if not found.
*
* @param moduleName
* @return
*/
ModuleThemeInfo getModuleThemeInfo( String moduleName );
/**
* Force the Theme Manager to recalculate system and module themes
*/
void refresh();
}