Class ThemeManager

  • All Implemented Interfaces:
    IThemeManagerSPI

    public class ThemeManager
    extends java.lang.Object
    implements IThemeManagerSPI
    Implements theme related operations.
    Since:
    7.0.0
    Version:
    $Revision: 26565 $ $Date: 2024-08-13 11:49:40 -0300 (Tue, 13 Aug 2024) $
    • Field Detail

      • THEME_DEFINITION_FILE

        public static final java.lang.String THEME_DEFINITION_FILE
        The theme definition file name.
        Since:
        7.0.0
        See Also:
        Constant Field Values
      • APPLIED_THEME_PROPERTY_BAG_NAME

        public static final java.lang.String APPLIED_THEME_PROPERTY_BAG_NAME
        Applied themes property bag name.
        Since:
        7.0.0
        See Also:
        Constant Field Values
      • BASE_THEME_PREFIX

        public static final java.lang.String BASE_THEME_PREFIX
        Base theme prefix lum_basetheme/.
        Since:
        7.0.0
        See Also:
        Constant Field Values
      • NO_THEME_PREFIX

        public static final java.lang.String NO_THEME_PREFIX
        No theme prefix lum_notheme/.
        Since:
        7.0.0
        See Also:
        Constant Field Values
      • THEME_WWW_RESOURCE_PREFIX

        public static final java.lang.String THEME_WWW_RESOURCE_PREFIX
        The WWW resource prefix lumis-theme/.
        Since:
        7.0.0
        See Also:
        Constant Field Values
      • LUMIS_PORTAL_ADMIN_THEME_ID

        public static final java.lang.String LUMIS_PORTAL_ADMIN_THEME_ID
        The Lumis Portal 7.0 theme identifier.
        Since:
        7.1.0
        See Also:
        Constant Field Values
    • Constructor Detail

      • ThemeManager

        public ThemeManager()
    • Method Detail

      • register

        public void register​(java.lang.String themePath)
                      throws PortalException
        Description copied from interface: IThemeManagerSPI
        Registers a theme in the specified classpath relative path.

        The theme will be added or updated in the themes registry.

        Specified by:
        register in interface IThemeManagerSPI
        Parameters:
        themePath - the relative path in the classpath, referencing the folder that contains the themedefintion.xml file.
        Throws:
        PortalException - if an error occurs during register.
      • register

        public void register​(java.lang.String themePath,
                             ModuleObject originalModuleObject,
                             ModuleObject newModuleObject)
                      throws PortalException
        Registers a theme and uses the given (optional) module objects to sync the public files differences to website's root folders.
        Parameters:
        themePath - The theme path
        originalModuleObject - The original module object
        newModuleObject - The new module object
        Throws:
        PortalException
        Since:
        16.1.0
      • unregister

        public void unregister​(java.lang.String themeId)
                        throws PortalException
        Description copied from interface: IThemeManagerSPI
        Unregisters a theme, removing it from the themes registry.
        Specified by:
        unregister in interface IThemeManagerSPI
        Parameters:
        themeId - the theme identifier.
        Throws:
        PortalException - if an error occurs during unregister.
      • unregister

        public void unregister​(java.lang.String themeId,
                               boolean verifyUsage)
                        throws PortalException
        Unregisters a theme, removing it from the themes registry.
        Parameters:
        themeId - the theme identifier.
        verifyUsage - indicates whether the theme usage must be done.
        Throws:
        PortalException
        Since:
        7.0.0
      • getAppliedThemesIds

        public java.util.List<java.lang.String> getAppliedThemesIds​(ChannelConfig channel)
                                                             throws PortalException
        Return the applied themes (identifiers) in the given channel.
        Parameters:
        channel - the channel.
        Returns:
        the applied themes in the given channel.
        Throws:
        PortalException
        Since:
        7.0.0
      • getAppliedThemesIds

        public java.util.List<java.lang.String> getAppliedThemesIds​(PageConfig page)
                                                             throws PortalException
        Returns the applied themes (identifiers) in the given page.
        Parameters:
        page - the page.
        Returns:
        the applied themes in the given page.
        Throws:
        PortalException
        Since:
        7.0.0
      • getThemes

        public java.util.List<ITheme> getThemes​(WebResource webResource)
                                         throws PortalException
        Returns the applied themes in the given web resource. Ignores the inexistent themes.
        Parameters:
        webResource - the web resource.
        Returns:
        the applied themes in the given web resource.
        Throws:
        PortalException
        Since:
        11.0.0
      • getThemes

        public java.util.List<ITheme> getThemes​(java.util.List<java.lang.String> appliedThemeIds)
                                         throws PortalException
        Returns the applied themes from an applied themes identifiers list. Ignores the inexistent themes.
        Parameters:
        appliedThemeIds - the applied themes identifiers list.
        Returns:
        the applied themes from an applied themes identifiers list.
        Throws:
        PortalException
        Since:
        7.0.0
      • copyThemesFilesToWebRoots

        public void copyThemesFilesToWebRoots​(java.util.Collection<? extends ITheme> themes,
                                              java.util.Collection<IWebRootPortalBaseFolder> webRoots)
                                       throws PortalException
        Copies the given themes' WWW resources to the given web root folders.
        Parameters:
        themes - the themes.
        webRoots - the web root folders.
        Throws:
        PortalException
        Since:
        7.0.0
      • removeThemeFolderFromWebRoots

        public void removeThemeFolderFromWebRoots​(java.util.Collection<? extends ITheme> themes,
                                                  java.util.Collection<IWebRootPortalBaseFolder> webRoots)
                                           throws PortalException
        Removes the given themes' folders from the given web root folders. If the remaining folder "lumis-theme" is empty after the themes' folders removal it will also be removed.
        Parameters:
        themes - the themes.
        webRoots - the web root folders.
        Throws:
        PortalException
        Since:
        7.0.0