Package org.apache.tapestry5.annotations

# Annotation Type Import

@Target({TYPE,METHOD}) @Retention(RUNTIME) @Documented @UseWith({COMPONENT,MIXIN,PAGE}) public @interface Import
Annotations to control the importing of JavaScript stacks and libraries as well as stylesheets. This annotation may be placed on a class, in which case importing will occur as part of the `SetupRender` render phase. Alternately, the annotation maybe placed on any method (though typically it will be placed on a render phase method) and the import operations will be associated of that method. Use of this annotation is translated into invocations against the `JavaScriptSupport` environmental; all imports there will implicitly import the core stack. Assets are localized during the `PageLifecycleAdapter.containingPageDidLoad()` lifecycle method.

Since:
  5.2.0

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String[]`
  `library`
  JavaScript libraries to import.
  `String[]`
  `module`
  Names of modules to import.
  `String[]`
  `stack`
  JavaScript Stacks to import.
  `String[]`
  `stylesheet`
  Stylesheets to import.

- ## Element Details

  - ### stack

    String[] stack
    JavaScript Stacks to import. Stacks are imported before individual libraries. Note that stacks themselves may have dependencies on other stacks.
    See Also:
      - `JavaScriptStack`
      - `JavaScriptSupport.importStack(String)`
    Default:
      {}

  - ### library

    String[] library
    JavaScript libraries to import. Each value is an asset path; symbols in each path are expanded. The library may be localized.
    See Also:
      - `JavaScriptSupport.importJavaScriptLibrary(org.apache.tapestry5.Asset)`
    Default:
      {}

  - ### stylesheet

    String[] stylesheet
    Stylesheets to import. Each value is an asset path; symbols in each path are expanded. The stylesheet may be localized. The stylesheet is imported with no options.
    See Also:
      - `JavaScriptSupport.importStylesheet(org.apache.tapestry5.Asset)`
    Default:
      {}

  - ### module

    String[] module
    Names of modules to import. A module name consists of a path, with the terms seperated by a slash character. The first term is the library name (or "app" for the application), e.g. `flash/gordon` would map to the file `META-INF/modules/flash/gordon.js`. Alternately a function name can be included, after a colon seperator. e.g., `flash/gordon:setup`. Module initializations specified this way may not have an parameters, so they are typically doing single-use setup.
    Since:
      5.4
    See Also:
      - `ModuleManager`
      - `JavaScriptSupport.require(String)`
    Default:
      {}