Class ThemeUtil


  • public class ThemeUtil
    extends java.lang.Object
    Utility class for theme related actions.
    Since:
    7.0.0
    Version:
    $Revision$ $Date$
    • Constructor Summary

      Constructors 
      Constructor Description
      ThemeUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addNewTheme​(java.lang.String themeName, java.lang.String themeDescription, java.lang.String themePath, java.lang.String moduleId, IResource resource)  
      static void addNewTheme​(java.lang.String themeName, java.lang.String themeDescription, java.lang.String themePath, java.lang.String moduleId, IResource resource, java.lang.String publicFilesChannelId)  
      static java.lang.String getThemeIdByPath​(java.lang.String path)
      Returns the theme identifier of the given theme path.
      static java.lang.String getThemePathById​(java.lang.String themeId)
      Returns the theme path of the given theme identifier.
      static IFile getThemeRootDir​(java.lang.String themePath)  
      static java.util.List<? extends ITheme> getThemes​(PageConfig page)
      Returns the applied themes in the given page.
      static java.util.List<? extends ITheme> getThemesByChannelId​(java.lang.String channelId)
      Returns the themes applied (either directly or inherited) on the channel with the given id.
      static boolean isEditableTheme​(java.lang.String themeId)
      Returns whether the given theme is editable.
      static boolean isLumisTheme​(ITheme theme)
      Returns whether the given theme is one of the LumisPortal standard themes.
      static java.lang.String resolveDefinitionFilePath​(java.lang.String definitionFilePath, java.util.List<? extends ITheme> themes)
      Resolves the definition file path with the given applied themes applying the following rules:
      If the appliedThemes parameter is null or if it is empty the original resource path will be returned The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.DEF)
      If the resource was found in any applied theme, the resolved resource will be compound as: <the path of the theme where the resource was found><the resource folder><the resource path> If the resource was not found, the original one will be returned
      static java.lang.String resolveLayoutFilePath​(java.lang.String layoutFilePath, java.util.List<? extends ITheme> themes)
      Resolves the layout file path with the given applied themes applying the following rules:
      If the appliedThemes parameter is null or if it is empty the original resource path will be returned The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.DEF)
      If the resource was found in any applied theme, the resolved resource will be compound as: <the path of the theme where the resource was found><the resource folder><the resource path> If the resource was not found, the original one will be returned
      static java.lang.String resolveWWWResourcePath​(java.lang.String resourcePath, java.util.List<? extends ITheme> themes, boolean includeFileHash)
      Resolves the resources' paths with the given applied themes applying the following rules:
      If the resource path start with no theme prefix, then the returned resource path will be the original one without the prefix If the appliedThemes parameter is null or if it is empty the original resource path will be returned The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.WWW)
      If the resource was found in any applied theme, the resolved resource will be compound as: <theme www prefix><the path of the theme where the resource was found><the resource path> (where <theme www prefix> is ThemeManager.THEME_WWW_RESOURCE_PREFIX) If the resource was not found, the original one will be returned
      static java.lang.String resolveWWWResourcePath​(java.lang.String resourcePath, java.util.List<? extends ITheme> themes, boolean includeFileHash, boolean unencodeResourcePath)
      Resolves the resources' paths with the given applied themes applying the following rules:
      If the resource path start with no theme prefix, then the returned resource path will be the original one without the prefix If the appliedThemes parameter is null or if it is empty the original resource path will be returned The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.WWW)
      If the resource was found in any applied theme, the resolved resource will be compound as: <theme www prefix><the path of the theme where the resource was found><the resource path> (where <theme www prefix> is ThemeManager.THEME_WWW_RESOURCE_PREFIX) If the resource was not found, the original one will be returned
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ThemeUtil

        public ThemeUtil()
    • Method Detail

      • getThemeIdByPath

        public static java.lang.String getThemeIdByPath​(java.lang.String path)
                                                 throws lumis.portal.theme.InvalidThemePathException
        Returns the theme identifier of the given theme path.
        Parameters:
        path - the path.
        Returns:
        the theme identifier of the given theme path.
        Throws:
        lumis.portal.theme.InvalidThemePathException - if the given path is null.
        lumis.portal.theme.InvalidThemePathException - if the trimmed version of the given path is empty.
        Since:
        7.0.0
      • getThemePathById

        public static java.lang.String getThemePathById​(java.lang.String themeId)
                                                 throws lumis.portal.theme.InvalidThemeIdException
        Returns the theme path of the given theme identifier.
        Parameters:
        themeId - the theme identifier.
        Returns:
        the theme path of the given theme identifier.
        Throws:
        lumis.portal.theme.InvalidThemeIdException - if the given identifier is null.
        lumis.portal.theme.InvalidThemeIdException - if the given identifier is empty.
        Since:
        7.0.0
      • resolveWWWResourcePath

        public static java.lang.String resolveWWWResourcePath​(java.lang.String resourcePath,
                                                              java.util.List<? extends ITheme> themes,
                                                              boolean includeFileHash)
                                                       throws PortalException
        Resolves the resources' paths with the given applied themes applying the following rules:
        1. If the resource path start with no theme prefix, then the returned resource path will be the original one without the prefix
        2. If the appliedThemes parameter is null or if it is empty the original resource path will be returned
        3. The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.WWW)
          1. If the resource was found in any applied theme, the resolved resource will be compound as: <theme www prefix><the path of the theme where the resource was found><the resource path> (where <theme www prefix> is ThemeManager.THEME_WWW_RESOURCE_PREFIX)
          2. If the resource was not found, the original one will be returned
        Parameters:
        resourcePath - the requested resource path.
        themes - the applied themes.
        includeFileHash - indicates whether to include the files' hashes.
        Returns:
        the resolved resource path as described above.
        Throws:
        java.lang.NullPointerException - if the resourcePath is null or if the resourceFolder is null.
        PortalException
        Since:
        16.1.0
      • resolveWWWResourcePath

        public static java.lang.String resolveWWWResourcePath​(java.lang.String resourcePath,
                                                              java.util.List<? extends ITheme> themes,
                                                              boolean includeFileHash,
                                                              boolean unencodeResourcePath)
                                                       throws PortalException
        Resolves the resources' paths with the given applied themes applying the following rules:
        1. If the resource path start with no theme prefix, then the returned resource path will be the original one without the prefix
        2. If the appliedThemes parameter is null or if it is empty the original resource path will be returned
        3. The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.WWW)
          1. If the resource was found in any applied theme, the resolved resource will be compound as: <theme www prefix><the path of the theme where the resource was found><the resource path> (where <theme www prefix> is ThemeManager.THEME_WWW_RESOURCE_PREFIX)
          2. If the resource was not found, the original one will be returned
        Parameters:
        resourcePath - the requested resource path.
        themes - the applied themes.
        includeFileHash - indicates whether to include the files' hashes.
        unencodeResourcePath - indicates whether to unencode the resource path.
        Returns:
        the resolved resource path as described above.
        Throws:
        java.lang.NullPointerException - if the resourcePath is null or if the resourceFolder is null.
        PortalException
        Since:
        16.1.0
      • resolveLayoutFilePath

        public static java.lang.String resolveLayoutFilePath​(java.lang.String layoutFilePath,
                                                             java.util.List<? extends ITheme> themes)
                                                      throws PortalException
        Resolves the layout file path with the given applied themes applying the following rules:
        1. If the appliedThemes parameter is null or if it is empty the original resource path will be returned
        2. The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.DEF)
          1. If the resource was found in any applied theme, the resolved resource will be compound as: <the path of the theme where the resource was found><the resource folder><the resource path>
          2. If the resource was not found, the original one will be returned
        Parameters:
        layoutFilePath - the layout file path to be resolved.
        themes - the applied themes.
        Returns:
        the resolved layout file path as described above.
        Throws:
        java.lang.NullPointerException - if the resourcePath is null or if the resourceFolder is null.
        PortalException
        Since:
        7.0.0
      • getThemes

        public static java.util.List<? extends ITheme> getThemes​(PageConfig page)
                                                          throws PortalException
        Returns the applied themes in the given page.
        Parameters:
        page - the page
        Returns:
        the applied themes in the given page
        Throws:
        PortalException
        Since:
        16.0.0
      • getThemesByChannelId

        public static java.util.List<? extends ITheme> getThemesByChannelId​(java.lang.String channelId)
                                                                     throws PortalException
        Returns the themes applied (either directly or inherited) on the channel with the given id.
        Parameters:
        channelId - the channel id
        Returns:
        the themes applied (either directly or inherited) on the channel with the given id.
        Throws:
        PortalException
        Since:
        16.0.0
      • resolveDefinitionFilePath

        public static java.lang.String resolveDefinitionFilePath​(java.lang.String definitionFilePath,
                                                                 java.util.List<? extends ITheme> themes)
                                                          throws PortalException
        Resolves the definition file path with the given applied themes applying the following rules:
        1. If the appliedThemes parameter is null or if it is empty the original resource path will be returned
        2. The given resource will be searched through the applied themes' resource (under IThemeSPI.ResourceFolder.DEF)
          1. If the resource was found in any applied theme, the resolved resource will be compound as: <the path of the theme where the resource was found><the resource folder><the resource path>
          2. If the resource was not found, the original one will be returned
        Parameters:
        definitionFilePath - the definition file path to be resolved.
        themes - the applied themes.
        Returns:
        the resolved definition file path as described above.
        Throws:
        java.lang.NullPointerException - if the resourcePath is null or if the resourceFolder is null.
        PortalException
        Since:
        7.0.0
      • addNewTheme

        public static void addNewTheme​(java.lang.String themeName,
                                       java.lang.String themeDescription,
                                       java.lang.String themePath,
                                       java.lang.String moduleId,
                                       IResource resource)
                                throws PortalException
        Throws:
        PortalException
      • addNewTheme

        public static void addNewTheme​(java.lang.String themeName,
                                       java.lang.String themeDescription,
                                       java.lang.String themePath,
                                       java.lang.String moduleId,
                                       IResource resource,
                                       java.lang.String publicFilesChannelId)
                                throws PortalException
        Throws:
        PortalException
      • isLumisTheme

        public static boolean isLumisTheme​(ITheme theme)
        Returns whether the given theme is one of the LumisPortal standard themes.
        Parameters:
        theme - the theme
        Returns:
        whether the given theme is one of the LumisPortal standard themes.
        Since:
        8.0.0
      • isEditableTheme

        public static boolean isEditableTheme​(java.lang.String themeId)
                                       throws PortalException
        Returns whether the given theme is editable.
        Parameters:
        themeId - the theme identifier
        Returns:
        true if the given theme is editable.
        false otherwise.
        Throws:
        PortalException
        Since:
        10.3.0