com.xpn.xwiki.plugin.skinx
Class SkinExtensionPlugin

java.lang.Object
  extended by com.xpn.xwiki.plugin.XWikiDefaultPlugin
      extended by com.xpn.xwiki.plugin.skinx.SkinExtensionPlugin
All Implemented Interfaces:
com.xpn.xwiki.plugin.XWikiPluginInterface
Direct Known Subclasses:
AbstractDocumentSkinExtensionPlugin, CssResourceSkinExtensionPlugin, JsResourceSkinExtensionPlugin

public abstract class SkinExtensionPlugin
extends com.xpn.xwiki.plugin.XWikiDefaultPlugin

Skin Extensions base plugin. It allows templates and document content to pull required skin files in the generated XHTML (or whatever XML) content.

The API provides a method SkinExtensionPluginApi.use(String), which, when called, marks an extension as used in the current result. Later on, all the used extensions are inserted in the content, by replacing the first occurence of the following string: <!-- canonical.plugin.classname -->, where the actual extension type classname is used. For example, JS extensions are inserted in place of <!-- com.xpn.xwiki.plugin.skinx.JsSkinExtensionPlugin -->.

See Also:
SkinExtensionPluginApi, JsSkinExtensionPlugin, CssSkinExtensionPlugin

Constructor Summary
SkinExtensionPlugin(java.lang.String name, java.lang.String className, com.xpn.xwiki.XWikiContext context)
          
 
Method Summary
 void beginParsing(com.xpn.xwiki.XWikiContext context)
          
 java.lang.String endParsing(java.lang.String content, com.xpn.xwiki.XWikiContext context)
          
abstract  java.util.Set<java.lang.String> getAlwaysUsedExtensions(com.xpn.xwiki.XWikiContext context)
           
 java.lang.String getImportString(com.xpn.xwiki.XWikiContext context)
           
abstract  java.lang.String getLink(java.lang.String documentName, com.xpn.xwiki.XWikiContext context)
          Abstract method for obtaining a link that points to the actual pulled resource.
 com.xpn.xwiki.api.Api getPluginApi(com.xpn.xwiki.plugin.XWikiPluginInterface plugin, com.xpn.xwiki.XWikiContext context)
          
protected  java.util.Set<java.lang.String> getRequestList(com.xpn.xwiki.XWikiContext context)
           
protected  void initializeRequestListIfNeeded(com.xpn.xwiki.XWikiContext context)
          Initializes the list of pulled extensions corresponding to this request, if it wasn't already initialized.
 void use(java.lang.String skinFile, com.xpn.xwiki.XWikiContext context)
          Mark a skin extension document as used in the current result.
 
Methods inherited from class com.xpn.xwiki.plugin.XWikiDefaultPlugin
beginRendering, commonTagsHandler, downloadAttachment, endRendering, endRenderingHandler, flushCache, flushCache, getClassName, getName, init, insidePREHandler, outsidePREHandler, setClassName, setName, startRenderingHandler, virtualInit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkinExtensionPlugin

public SkinExtensionPlugin(java.lang.String name,
                           java.lang.String className,
                           com.xpn.xwiki.XWikiContext context)

See Also:
XWikiDefaultPlugin.XWikiDefaultPlugin(String,String,com.xpn.xwiki.XWikiContext)
Method Detail

getLink

public abstract java.lang.String getLink(java.lang.String documentName,
                                         com.xpn.xwiki.XWikiContext context)
Abstract method for obtaining a link that points to the actual pulled resource. Each type of resource has its own format for the link, for example Javascript uses <script src="/path/to/Document">, while CSS uses <link rel="stylesheet" href="/path/to/Document"> (the actual syntax is longer, this is just a simplified example).

Parameters:
documentName - the name of the wiki document holding the resource.
context - the current request context, needed to access the URLFactory.
Returns:
A String representation of the linking element that should be printed in the generated HTML.

getAlwaysUsedExtensions

public abstract java.util.Set<java.lang.String> getAlwaysUsedExtensions(com.xpn.xwiki.XWikiContext context)

getPluginApi

public com.xpn.xwiki.api.Api getPluginApi(com.xpn.xwiki.plugin.XWikiPluginInterface plugin,
                                          com.xpn.xwiki.XWikiContext context)

Specified by:
getPluginApi in interface com.xpn.xwiki.plugin.XWikiPluginInterface
Overrides:
getPluginApi in class com.xpn.xwiki.plugin.XWikiDefaultPlugin
See Also:
XWikiDefaultPlugin.getPluginApi(com.xpn.xwiki.plugin.XWikiPluginInterface, com.xpn.xwiki.XWikiContext)

getRequestList

protected java.util.Set<java.lang.String> getRequestList(com.xpn.xwiki.XWikiContext context)

initializeRequestListIfNeeded

protected void initializeRequestListIfNeeded(com.xpn.xwiki.XWikiContext context)
Initializes the list of pulled extensions corresponding to this request, if it wasn't already initialized. This method is not thread safe, since a context should not be shared among threads.

Parameters:
context - The current context where this list is stored.

use

public void use(java.lang.String skinFile,
                com.xpn.xwiki.XWikiContext context)
Mark a skin extension document as used in the current result.

Parameters:
skinFile -

getImportString

public java.lang.String getImportString(com.xpn.xwiki.XWikiContext context)
Returns:
a XHMTL fragment with all extensions imports statements for this request. This includes both extensions that are defined as being "used always" and "on demand" extensions explicitely requested for this page.

beginParsing

public void beginParsing(com.xpn.xwiki.XWikiContext context)

Specified by:
beginParsing in interface com.xpn.xwiki.plugin.XWikiPluginInterface
Overrides:
beginParsing in class com.xpn.xwiki.plugin.XWikiDefaultPlugin
See Also:
XWikiDefaultPlugin.beginParsing(XWikiContext)

endParsing

public java.lang.String endParsing(java.lang.String content,
                                   com.xpn.xwiki.XWikiContext context)

Specified by:
endParsing in interface com.xpn.xwiki.plugin.XWikiPluginInterface
Overrides:
endParsing in class com.xpn.xwiki.plugin.XWikiDefaultPlugin
See Also:
XWikiDefaultPlugin.endParsing(String, XWikiContext)


Copyright © 2004-2008 XWiki. All Rights Reserved.