Class ThemeManagerImpl
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.assets.AbstractAssetManager<String,String>
com.inductiveautomation.perspective.gateway.assets.themes.ThemeManagerImpl
- All Implemented Interfaces:
ThemeManager
-
Field Summary
Fields inherited from class com.inductiveautomation.perspective.gateway.assets.AbstractAssetManager
assetPath, cacheLock, perspectiveContext
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected CopyOption[]
copyOptions
(byte[] existingAssetDigest, byte[] currentExistingAssetDigest) generateKey
(Path path) Generate a cache key for the givenPath
ENTRY Delivers a processed theme file.Fetch a list of all of the available theme names.protected void
Processes themes that are already in cache, and which have been requested via getTheme.parseValue
(Path path) Parse the cache value for the givenPath
protected void
Operates under the assumption that if the dark and light theme folders do not exist in the themes folder, then the user has not upgraded.void
setup()
Setup the Asset Manager.Methods inherited from class com.inductiveautomation.perspective.gateway.assets.AbstractAssetManager
copyInputStreamToPath, copyInputStreamToPath, getCache, getCachedValue, getDigestCopy, getDigestFor, onShutdown, onStartup
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
Constructor Details
-
ThemeManagerImpl
-
-
Method Details
-
setup
public void setup()Description copied from class:AbstractAssetManager
Setup the Asset Manager. Copies any defaults into the asset home directory. Should be run beforeAbstractLifecycle.startup()
- Overrides:
setup
in classAbstractAssetManager<String,
String>
-
performUpgradeCheckAndBackup
Operates under the assumption that if the dark and light theme folders do not exist in the themes folder, then the user has not upgraded. In this case, we copy anything in the themes folder into a backup folder.- Throws:
IOException
-
getTheme
ENTRY Delivers a processed theme file. The first time a theme is requested, the processed css is stored in cache. Subsequent requests return the cached css.- Specified by:
getTheme
in interfaceThemeManager
- Parameters:
themeName
- - The base name, ie. theme-dark, of the theme to fetch. Assumes that the theme does not contain the css file extension.- Returns:
- - Returns an optional string representing the requested theme as css.
-
getThemesList
Description copied from interface:ThemeManager
Fetch a list of all of the available theme names.- Specified by:
getThemesList
in interfaceThemeManager
- Returns:
- A string list of available themes that may be fetched
using
ThemeManager.getTheme(String themeName)
.
-
generateKey
Description copied from class:AbstractAssetManager
Generate a cache key for the givenPath
- Specified by:
generateKey
in classAbstractAssetManager<String,
String> - Parameters:
path
- ThePath
for which we want to generate a cache key- Returns:
- An
Optional
containing the cache key or an empty Optional if the cache key could not be generated
-
parseValue
Description copied from class:AbstractAssetManager
Parse the cache value for the givenPath
- Specified by:
parseValue
in classAbstractAssetManager<String,
String> - Parameters:
path
- ThePath
for which we want to generate a cache value- Returns:
- An
Optional
containing the cache value or an empty Optional if the cache value could not be generated
-
onCacheChanged
protected void onCacheChanged()Processes themes that are already in cache, and which have been requested via getTheme.- Overrides:
onCacheChanged
in classAbstractAssetManager<String,
String>
-
copyOptions
protected CopyOption[] copyOptions(@Nonnull byte[] existingAssetDigest, @Nonnull byte[] currentExistingAssetDigest) - Overrides:
copyOptions
in classAbstractAssetManager<String,
String>
-