Class DocumentLinkerImpl

java.lang.Object
org.apache.tapestry5.internal.services.DocumentLinkerImpl
All Implemented Interfaces:
DocumentLinker

public class DocumentLinkerImpl extends Object implements DocumentLinker
  • Constructor Details

    • DocumentLinkerImpl

      public DocumentLinkerImpl(ModuleManager moduleManager, boolean omitGeneratorMetaTag, boolean enablePageloadingMask, String tapestryVersion)
      Parameters:
      moduleManager - used to identify the root folder for dynamically loaded modules
      omitGeneratorMetaTag - via symbol configuration
      enablePageloadingMask -
      tapestryVersion -
  • Method Details

    • addStylesheetLink

      public void addStylesheetLink(StylesheetLink sheet)
      Description copied from interface: DocumentLinker
      Adds a link to load a CSS stylesheet.
      Specified by:
      addStylesheetLink in interface DocumentLinker
    • addCoreLibrary

      public void addCoreLibrary(String libraryURL)
      Description copied from interface: DocumentLinker
      A special case used only for the libraries that are part of the core stack, which itself contains RequireJS and is used to bootstrap up to adding non-core libraries.
      Specified by:
      addCoreLibrary in interface DocumentLinker
    • addLibrary

      public void addLibrary(String libraryURL)
      Description copied from interface: DocumentLinker
      Adds a link to load a non-core JavaScript library. These libraries are loaded, sequentially, only once the core libraries have loaded and initialized. Thus difference between core libraries and other libraries is new in 5.4, and represents a conflict between asynchronous loading of modules (introduced in 5.4) and sequential loading of libraries (in 5.3 and earlier).
      Specified by:
      addLibrary in interface DocumentLinker
    • addScript

      public void addScript(InitializationPriority priority, String script)
      Description copied from interface: DocumentLinker
      Adds JavaScript code. The code is collected into a single block that is injected just before the close body tag of the page (in a full page render) and collected as the "script" property of the partial page render response. The JavaScript is executed after the page loads (or in an Ajax update, after external JavaScript libraries are loaded and the DOM is updated). This method may be called multiple times for the same priority and the script will be accumulated.
      Specified by:
      addScript in interface DocumentLinker
      Parameters:
      priority - when to execute the provided script
      script - statement to add to the block (a newline will be appended as well)
    • addInitialization

      public void addInitialization(InitializationPriority priority, String moduleName, String functionName, JSONArray arguments)
      Description copied from interface: DocumentLinker
      Adds initialization, based on invoking functions exported by JavaScript modules.
      Specified by:
      addInitialization in interface DocumentLinker
      Parameters:
      priority - priority at which to perform initialization
      moduleName - name of module; the module exports a single function, or a map of functions
      functionName - name of function exported by module, or null (if the module exports a single function)
      arguments - arguments to pass to the function, or null if no arguments
    • updateDocument

      public void updateDocument(Document document)
      Updates the supplied Document, possibly adding <head> or <body> elements.
      Parameters:
      document - to be updated
    • addContentToBody

      protected void addContentToBody(Element body)
      Adds <script> elements for the RequireJS library, then any statically includes JavaScript libraries (including JavaScript stack virtual assets), then the initialization script block.
      Parameters:
      body - element to add the dynamic scripting to
    • addStylesheetsToHead

      protected void addStylesheetsToHead(Element root, List<StylesheetLink> stylesheets)
      Locates the head element under the root ("html") element, creating it if necessary, and adds the stylesheets to it.
      Parameters:
      root - element of document
      stylesheets - to add to the document
    • addModuleConfigurationCallback

      Description copied from interface: DocumentLinker
      Adds a module configuration callback for this request.
      Specified by:
      addModuleConfigurationCallback in interface DocumentLinker
      Parameters:
      callback - a ModuleConfigurationCallback. It cannot be null.