Package com.microstrategy.web.app.utils
Class PageResourceManager
- java.lang.Object
-
- com.microstrategy.web.app.utils.PageResourceManager
-
- All Implemented Interfaces:
EnumPageResourceManagerModes
public class PageResourceManager extends java.lang.Object implements EnumPageResourceManagerModes
This class represents the resource manager associated with the page. It is used for managing the resources like JavaScript/CSS for the page.- Since:
- MicroStrategy Web 9.0.0
-
-
Field Summary
-
Fields inherited from interface com.microstrategy.web.app.utils.EnumPageResourceManagerModes
MODE_DISABLED, MODE_ENABLED, MODE_RENDER_INLINE
-
-
Constructor Summary
Constructors Constructor Description PageResourceManager()
Default Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBundle(java.lang.String fileName, boolean includeInHead)
Add a JS bundle to the manager.void
addInterScriptFileDependency(java.lang.String fromScriptFileName, java.lang.String toScriptFileName)
This method programmatically specify a dependency relationship between two JavaScript files.void
addScript(MarkupOutput mo)
Add a scriptlet to the manager.void
addScript(java.lang.StringBuilder script)
Add a scriptlet to the manager.void
addScriptFile(java.lang.String fileName, boolean includeInHead)
Add a script file to the manager.java.util.List<java.lang.String>
getAllBundles()
java.util.Iterator<java.lang.String>
getAllBundlesAsIterator()
java.util.List<java.lang.String>
getBundles(boolean includeInHead)
Returns an iterator over the list of JS Bundles.java.util.Iterator<java.lang.String>
getBundlesAsIterator(boolean includeInHead)
java.util.Iterator<java.lang.String>
getScriptFiles(boolean includeInHead)
java.util.Iterator<java.lang.String>
getScriptFilesNotSorted(boolean includeInHead)
Returns an iterator over the list of files.java.util.Iterator<java.lang.StringBuilder>
getScripts()
Returns an iterator over the list of scriptlets.java.util.List<java.lang.String>
getTailUniqueFiles(boolean isDebugMode)
build a list of unique files to be included in document body steps 1. build a list of unique files in all HEAD Bundles 2. build a list of unique files in all HeAD/TAIL Bundles 3. for dynamic files that are depends-sorted, remove all dependency files that are in the list of unique files built at step 2.
-
-
-
Method Detail
-
addBundle
public void addBundle(java.lang.String fileName, boolean includeInHead)
Add a JS bundle to the manager.- Parameters:
fileName
- - name of the JavaScript Bundle file.includeInHead
- - whether it is needed at the head section of the page
-
getBundles
public java.util.List<java.lang.String> getBundles(boolean includeInHead)
Returns an iterator over the list of JS Bundles.
-
getBundlesAsIterator
public java.util.Iterator<java.lang.String> getBundlesAsIterator(boolean includeInHead)
-
getAllBundles
public java.util.List<java.lang.String> getAllBundles()
-
getAllBundlesAsIterator
public java.util.Iterator<java.lang.String> getAllBundlesAsIterator()
-
getTailUniqueFiles
public java.util.List<java.lang.String> getTailUniqueFiles(boolean isDebugMode)
build a list of unique files to be included in document body steps 1. build a list of unique files in all HEAD Bundles 2. build a list of unique files in all HeAD/TAIL Bundles 3. for dynamic files that are depends-sorted, remove all dependency files that are in the list of unique files built at step 2. now the result of step 3 is the list of files to be included as 'tail' files.- Parameters:
isDebugMode
- Flag Indicating whether JS bundles are requested in debug mode.- Returns:
- List
-
addScriptFile
public void addScriptFile(java.lang.String fileName, boolean includeInHead)
Add a script file to the manager.- Parameters:
fileName
- - name of the JavaScript file.includeInHead
- - whether it is needed at the head section of the page
-
addInterScriptFileDependency
public void addInterScriptFileDependency(java.lang.String fromScriptFileName, java.lang.String toScriptFileName)
This method programmatically specify a dependency relationship between two JavaScript files. If JavaScrit file B.js depends on A.js, then the A.js will be regarded as "fromScriptFileName", the B.js will be regarded as the "toScriptFileName". This relationship is represented by a graph. Normally,JavaScriptDependencyAnalyzer
can automatically capture most dependency relationships in our JavaScript library by analyzing JavaScript source codes. When it comes to few exceptions that the dependency relationship is unable to be captured, we need to invoke this method to explicitly specify the relationship between two JavaScript files. More importantly, you can use this method to define different relationships on the same file in different pages.- Parameters:
fromScriptFileName
- - the file name of the JavaScript file which is at the "from" endtoScriptFileName
- - the file name of the JavaScript file which is at the "to" end- Since:
- MicroStrategy Web 9.0.1
-
addScript
public void addScript(java.lang.StringBuilder script)
Add a scriptlet to the manager.- Parameters:
script
- : StringBuilder - body of the script tag.
-
addScript
public void addScript(MarkupOutput mo)
Add a scriptlet to the manager.- Parameters:
mo
- - MarkupOutput - body of the script tag
-
getScriptFilesNotSorted
public java.util.Iterator<java.lang.String> getScriptFilesNotSorted(boolean includeInHead)
Returns an iterator over the list of files.- Parameters:
includeInHead
- : Boolean - files to be included in the head section of the page.- Returns:
- Iterator - list of files added to the resource manager.
-
getScriptFiles
public java.util.Iterator<java.lang.String> getScriptFiles(boolean includeInHead)
-
getScripts
public java.util.Iterator<java.lang.StringBuilder> getScripts()
Returns an iterator over the list of scriptlets.- Returns:
- Iterator - list of scriptlets added to the resource manager.
-
-