Package org.apache.wiki.ui

## Interface TemplateManager

All Superinterfaces:
  `ModuleManager`

All Known Implementing Classes:
  `DefaultTemplateManager`

    public interface TemplateManager
    extends ModuleManager

This class takes care of managing JSPWiki templates. This class also provides the ResourceRequest mechanism.

Since:
  2.1.62

### Field Summary

Fields
`static java.lang.String` `DEFAULT_TEMPLATE` The name of the default template.
`static java.lang.String` `DIRECTORY` The default directory for the properties.
`static java.lang.String` `I18NDEFAULT_LOCALE` I18N string to mark the default locale
`static java.lang.String` `I18NRESOURCE_EN` The default (en) RESOURCE name and id.
`static java.lang.String` `I18NRESOURCE_EN_ID`
`static java.lang.String` `I18NRESOURCE_PREFIX` Location of I18N Resource bundles, and path prefix and suffixes
`static java.lang.String` `I18NRESOURCE_SUFFIX`
`static java.lang.String` `I18NSERVER_TIMEZONE` I18N string to mark the server timezone
`static java.lang.String` `PROPERTYFILE` Name of the file that contains the properties.
`static java.lang.String` `RESOURCE_HTTPHEADER` Requests a HTTP header.
`static java.lang.String` `RESOURCE_INCLUDES` The name under which the resource includes map is stored in the WikiContext.
`static java.lang.String` `RESOURCE_INLINECSS` Requests inlined CSS.
`static java.lang.String` `RESOURCE_JSFUNCTION` Requests a JavaScript function to be called during window.onload.
`static java.lang.String` `RESOURCE_JSLOCALIZEDSTRINGS` Requests a JavaScript associative array with all localized strings.
`static java.lang.String` `RESOURCE_SCRIPT` Requests a script to be loaded.
`static java.lang.String` `RESOURCE_STYLESHEET` Requests a stylesheet to be inserted.
`static java.lang.String` `SKIN_DIRECTORY`
`static java.lang.String` `TIMEFORMATPROPERTIES` Prefix of the default timeformat properties.

### Fields inherited from interface org.apache.wiki.modules.ModuleManager

`PLUGIN_RESOURCE_LOCATION`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Default Methods
`static void` `addResourceRequest​(Context ctx, java.lang.String type, java.lang.String resource)` Adds a resource request to the current request context.
`java.lang.String` `findJSP​(javax.servlet.jsp.PageContext pageContext, java.lang.String name)` A utility method for finding a JSP page.
`java.lang.String` `findJSP​(javax.servlet.jsp.PageContext pageContext, java.lang.String template, java.lang.String name)` Attempts to locate a resource under the given template.
`java.lang.String` `findResource​(Context ctx, java.lang.String template, java.lang.String name)` Attempts to locate a resource under the given template.
`static java.lang.String` `getJSLocalizedStrings​(Context context)` Extract all i18n strings in the javascript domain.
`static java.lang.String` `getMarker​(Context context, java.lang.String type)` Returns the include resources marker for a given type.
`static java.lang.String[]` `getResourceRequests​(Context ctx, java.lang.String type)` Returns resource requests for a particular type.
`static java.lang.String[]` `getResourceTypes​(Context ctx)` Returns all those types that have been requested so far.
`default java.util.Map<java.lang.String,​java.lang.String>` `listLanguages​(javax.servlet.jsp.PageContext pageContext)` List all installed i18n language properties by classpath searching for files like : templates/default_*.properties templates/default.properties
`java.util.Set<java.lang.String>` `listSkins​(javax.servlet.jsp.PageContext pageContext, java.lang.String template)` Lists the skins available under this template.
`java.util.Map<java.lang.String,​java.lang.String>` `listTimeFormats​(javax.servlet.jsp.PageContext pageContext)` List all available timeformats, read from the jspwiki.properties
`default java.util.Map<java.lang.String,​java.lang.String>` `listTimeZones​(javax.servlet.jsp.PageContext pageContext)` List all timezones, with special marker for server timezone
`boolean` `templateExists​(java.lang.String templateName)` Check the existence of a template.

### Methods inherited from interface org.apache.wiki.modules.ModuleManager

`checkCompatibility, getModuleInfo, modules`

### Field Detail

#### SKIN_DIRECTORY

    static final java.lang.String SKIN_DIRECTORY

See Also:
  Constant Field Values

#### RESOURCE_JSFUNCTION

    static final java.lang.String RESOURCE_JSFUNCTION

Requests a JavaScript function to be called during window.onload. Value is "jsfunction".

See Also:
  Constant Field Values

#### RESOURCE_JSLOCALIZEDSTRINGS

    static final java.lang.String RESOURCE_JSLOCALIZEDSTRINGS

Requests a JavaScript associative array with all localized strings.

See Also:
  Constant Field Values

#### RESOURCE_STYLESHEET

    static final java.lang.String RESOURCE_STYLESHEET

Requests a stylesheet to be inserted. Value is "stylesheet".

See Also:
  Constant Field Values

#### RESOURCE_SCRIPT

    static final java.lang.String RESOURCE_SCRIPT

Requests a script to be loaded. Value is "script".

See Also:
  Constant Field Values

#### RESOURCE_INLINECSS

    static final java.lang.String RESOURCE_INLINECSS

Requests inlined CSS. Value is "inlinecss".

See Also:
  Constant Field Values

#### DIRECTORY

    static final java.lang.String DIRECTORY

The default directory for the properties. Value is "templates".

See Also:
  Constant Field Values

#### DEFAULT_TEMPLATE

    static final java.lang.String DEFAULT_TEMPLATE

The name of the default template. Value is "default".

See Also:
  Constant Field Values

#### PROPERTYFILE

    static final java.lang.String PROPERTYFILE

Name of the file that contains the properties.

See Also:
  Constant Field Values

#### I18NRESOURCE_PREFIX

    static final java.lang.String I18NRESOURCE_PREFIX

Location of I18N Resource bundles, and path prefix and suffixes

See Also:
  Constant Field Values

#### I18NRESOURCE_SUFFIX

    static final java.lang.String I18NRESOURCE_SUFFIX

See Also:
  Constant Field Values

#### I18NRESOURCE_EN

    static final java.lang.String I18NRESOURCE_EN

The default (en) RESOURCE name and id.

See Also:
  Constant Field Values

#### I18NRESOURCE_EN_ID

    static final java.lang.String I18NRESOURCE_EN_ID

See Also:
  Constant Field Values

#### I18NDEFAULT_LOCALE

    static final java.lang.String I18NDEFAULT_LOCALE

I18N string to mark the default locale

See Also:
  Constant Field Values

#### I18NSERVER_TIMEZONE

    static final java.lang.String I18NSERVER_TIMEZONE

I18N string to mark the server timezone

See Also:
  Constant Field Values

#### TIMEFORMATPROPERTIES

    static final java.lang.String TIMEFORMATPROPERTIES

Prefix of the default timeformat properties.

See Also:
  Constant Field Values

#### RESOURCE_INCLUDES

    static final java.lang.String RESOURCE_INCLUDES

The name under which the resource includes map is stored in the WikiContext.

See Also:
  Constant Field Values

#### RESOURCE_HTTPHEADER

    static final java.lang.String RESOURCE_HTTPHEADER

Requests a HTTP header. Value is "httpheader".

See Also:
  Constant Field Values

### Method Detail

#### templateExists

    boolean templateExists​(java.lang.String templateName)

Check the existence of a template.

#### findJSP

    java.lang.String findJSP​(javax.servlet.jsp.PageContext pageContext,
                             java.lang.String name)

A utility method for finding a JSP page. It searches only under either current context or by the absolute name.

Parameters:
  `pageContext` - the JSP PageContext
  `name` - The name of the JSP page to look for (e.g "Wiki.jsp")
Returns:
  The context path to the resource

#### findJSP

    java.lang.String findJSP​(javax.servlet.jsp.PageContext pageContext,
                             java.lang.String template,
                             java.lang.String name)

Attempts to locate a resource under the given template. If that template does not exist, or the page does not exist under that template, will attempt to locate a similarly named file under the default template.

Even though the name suggests only JSP files can be located, but in fact this method can find also other resources than JSP files.

Parameters:
  `pageContext` - The JSP PageContext
  `template` - From which template we should seek initially?
  `name` - Which resource are we looking for (e.g. "ViewTemplate.jsp")
Returns:
  path to the JSP page; null, if it was not found.

#### findResource

    java.lang.String findResource​(Context ctx,
                                  java.lang.String template,
                                  java.lang.String name)

Attempts to locate a resource under the given template. This matches the functionality findJSP(), but uses the WikiContext as the argument. If there is no servlet context (i.e. this is embedded), will just simply return a best-guess.

This method is typically used to locate any resource, including JSP pages, images, scripts, etc.

Parameters:
  `ctx` - the wiki context
  `template` - the name of the template to use
  `name` - the name of the resource to fine
Returns:
  the path to the resource
Since:
  2.6

#### listSkins

    java.util.Set<java.lang.String> listSkins​(javax.servlet.jsp.PageContext pageContext,
                                              java.lang.String template)

Lists the skins available under this template. Returns an empty Set, if there are no extra skins available. Note that this method does not check whether there is anything actually in the directories, it just lists them. This may change in the future.

Parameters:
  `pageContext` - the JSP PageContext
  `template` - The template to search
Returns:
  Set of Strings with the skin names.
Since:
  2.3.26

#### listLanguages

    default java.util.Map<java.lang.String,​java.lang.String> listLanguages​(javax.servlet.jsp.PageContext pageContext)

List all installed i18n language properties by classpath searching for files like : templates/default_*.properties templates/default.properties

Parameters:
  `pageContext` - page context
Returns:
  map of installed Languages
Since:
  2.7.x

#### listTimeFormats

    java.util.Map<java.lang.String,​java.lang.String> listTimeFormats​(javax.servlet.jsp.PageContext pageContext)

List all available timeformats, read from the jspwiki.properties

Parameters:
  `pageContext` - page context
Returns:
  map of TimeFormats
Since:
  2.7.x

#### listTimeZones

    default java.util.Map<java.lang.String,​java.lang.String> listTimeZones​(javax.servlet.jsp.PageContext pageContext)

List all timezones, with special marker for server timezone

Parameters:
  `pageContext` - page context
Returns:
  map of TimeZones
Since:
  2.7.x

#### getMarker

    static java.lang.String getMarker​(Context context,
                                      java.lang.String type)

Returns the include resources marker for a given type. This is in an HTML or Javascript comment format.

Parameters:
  `context` - the wiki context
  `type` - the marker
Returns:
  the generated marker comment

#### getJSLocalizedStrings

    static java.lang.String getJSLocalizedStrings​(Context context)

Extract all i18n strings in the javascript domain. (javascript.*) Returns a javascript snippet which defines the LocalizedStings array.

Parameters:
  `context` - the `Context`
Returns:
  Javascript snippet which defines the LocalizedStrings array
Since:
  2.5.108

#### addResourceRequest

    static void addResourceRequest​(Context ctx,
                                   java.lang.String type,
                                   java.lang.String resource)

Adds a resource request to the current request context. The content will be added at the resource-type marker (see IncludeResourcesTag) in WikiJSPFilter.

The resources can be of different types. For RESOURCE_SCRIPT and RESOURCE_STYLESHEET this is a URI path to the resource (a script file or an external stylesheet) that needs to be included. For RESOURCE_INLINECSS the resource should be something that can be added between <style></style> in the header file (commonheader.jsp). For RESOURCE_JSFUNCTION it is the name of the Javascript function that should be run at page load.

The IncludeResourceTag inserts code in the template files, which is then filled by the WikiFilter after the request has been rendered but not yet sent to the recipient.

Note that ALL resource requests get rendered, so this method does not check if the request already exists in the resources. Therefore, if you have a plugin which makes a new resource request every time, you'll end up with multiple resource requests rendered. It's thus a good idea to make this request only once during the page life cycle.

Parameters:
  `ctx` - The current wiki context
  `type` - What kind of resource should be added?
  `resource` - The resource to add.

#### getResourceRequests

    static java.lang.String[] getResourceRequests​(Context ctx,
                                                  java.lang.String type)

Returns resource requests for a particular type. If there are no resources, returns an empty array.

Parameters:
  `ctx` - WikiContext
  `type` - The resource request type
Returns:
  a String array for the resource requests

#### getResourceTypes

    static java.lang.String[] getResourceTypes​(Context ctx)

Returns all those types that have been requested so far.

Parameters:
  `ctx` - the wiki context
Returns:
  the array of types requested