/**
* Copyright (c) 2000-present Liferay, 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.
*/
package com.liferay.portal.kernel.model;
import aQute.bnd.annotation.ProviderType;
import com.liferay.portal.kernel.theme.ThemeCompanyLimit;
import com.liferay.portal.kernel.theme.ThemeGroupLimit;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.ServletContext;
/**
* @author Brian Wing Shun Chan
* @author Raymond Augé
*/
@ProviderType
public interface Theme extends Comparable<Theme>, Plugin, Serializable {
public void addSetting(
String key, String value, boolean configurable, String type,
String[] options, String script);
public List<ColorScheme> getColorSchemes();
public Map<String, ColorScheme> getColorSchemesMap();
public Map<String, ThemeSetting> getConfigurableSettings();
public String getContextPath();
public String getCssPath();
public String getDevice();
public String getFreeMarkerTemplateLoader();
public String getImagesPath();
public String getJavaScriptPath();
public boolean getLoadFromServletContext();
public String getName();
public List<PortletDecorator> getPortletDecorators();
public Map<String, PortletDecorator> getPortletDecoratorsMap();
public String getResourcePath(
ServletContext servletContext, String portletId, String path);
public String getRootPath();
public String getServletContextName();
public String getSetting(String key);
public String[] getSettingOptions(String key);
public Map<String, ThemeSetting> getSettings();
public Properties getSettingsProperties();
public SpriteImage getSpriteImage(String fileName);
public String getStaticResourcePath();
public String getTemplateExtension();
public String getTemplatesPath();
public ThemeCompanyLimit getThemeCompanyLimit();
public ThemeGroupLimit getThemeGroupLimit();
public String getThemeId();
public long getTimestamp();
public String getVelocityResourceListener();
public String getVirtualPath();
public boolean getWARFile();
public boolean hasColorSchemes();
public boolean isCompanyAvailable(long companyId);
public boolean isControlPanelTheme();
public boolean isGroupAvailable(long groupId);
public boolean isLoadFromServletContext();
public boolean isPageTheme();
public boolean isWARFile();
public boolean resourceExists(
ServletContext servletContext, String portletId, String path)
throws Exception;
public void setControlPanelTheme(boolean controlPanelTheme);
public void setCssPath(String cssPath);
public void setImagesPath(String imagesPath);
public void setJavaScriptPath(String javaScriptPath);
public void setLoadFromServletContext(boolean loadFromServletContext);
public void setName(String name);
public void setPageTheme(boolean pageTheme);
public void setRootPath(String rootPath);
public void setServletContextName(String servletContextName);
public void setSetting(String key, String value);
public void setSpriteImages(
String spriteFileName, Properties spriteProperties);
public void setTemplateExtension(String templateExtension);
public void setTemplatesPath(String templatesPath);
public void setThemeCompanyLimit(ThemeCompanyLimit themeCompanyLimit);
public void setThemeGroupLimit(ThemeGroupLimit themeGroupLimit);
public void setTimestamp(long timestamp);
public void setVirtualPath(String virtualPath);
}