Class DocumentLinkerImpl

    • Constructor Detail

      • 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 Detail

      • 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