package org.argeo.api.cms; import java.io.IOException; import java.io.InputStream; import java.util.Set; /** A CMS theme which can be applied to web apps as well as desktop apps. */ public interface CmsTheme { /** Unique ID of this theme. */ String getThemeId(); /** * Load a resource as an input stream, base don its relative path, or * null if not found */ InputStream getResourceAsStream(String resourceName) throws IOException; /** Relative paths to standard web CSS. */ Set getWebCssPaths(); /** Relative paths to RAP specific CSS. */ Set getRapCssPaths(); /** Relative paths to SWT specific CSS. */ Set getSwtCssPaths(); /** Relative paths to images such as icons. */ Set getImagesPaths(); /** Relative paths to fonts. */ Set getFontsPaths(); /** Tags to be added to the header section of the HTML page. */ String getHtmlHeaders(); /** The HTML body to use. */ String getBodyHtml(); /** The default icon size (typically the smallest). */ Integer getDefaultIconSize(); /** Loads one of the relative path provided by the other methods. */ InputStream loadPath(String path) throws IOException; }