Device Type Renderer Module

Available:

Confluence 4.3.3 and later

This plugin module enable you to register a new device-type specific renderer to be used when rendering Confluence content for a specific device type (where device type is known at render time by ConversionContext.html#getOutputDeviceType(). The Renderer you are registering must already exist as a named bean in your plugins Spring configuration.

Configuration

The root element for the Component plugin module is device-type-renderer. It allows the following attributes and child elements for configuration:

Attributes

Name

Required

Description

Default

key

(tick)

The identifier of the plugin module. This key must be unique within the plugin where it is defined. The key must match the id of a Spring configured bean present in your plugins Spring context. The bean must implement the Renderer interface.

N/A

i18n-name-key

The localisation key for the human-readable name of the plugin module.

name

The human-readable name of the plugin module. I.e. the human-readable name of the component.

The plugin key.

Elements

Name

Required

Description

Default

description

The description of the plugin module. The 'key' attribute can be specified to declare a localisation key for the value instead of text in the element body.

device-type

(tick)

The device type that this renderer will be used for (e.g. at render time ConversionContext.html#getOutputDeviceType() will be queried and the Renderer with a configured 'device-type' that matches will be used.

This element can be repeated for each device type this renderer applies to.

Example

Here is an example atlassian-plugin.xml file containing a single public component:

< atlassian-plugin name = "Hello World" key = "example.plugin.helloworld" plugins-version = "2" >
     < plugin-info >
         < description >A basic component module test</ description >
         < vendor name = "Atlassian Software Systems" url = "http://www.atlassian.com" />
         < version >1.0</ version >
     </ plugin-info >

<device-type-renderer name="Mobile Renderer" key="mobileViewRenderer">
<description>The renderer used for rendering content in Confluence Mobile.</description>
<device-type>mobile</device-type>
</device-type-renderer>
</atlassian-plugin>

The matching Spring configuration for the plugin would need to have a bean configured with the id 'mobileViewRenderer' to match the key on the <device-type-renderer> element, e.g.

pluginContext.xml Snippet
<beans:bean id="mobileViewRenderer" class="com.atlassian.confluence.content.render.xhtml.DefaultRenderer">
    <beans:constructor-arg index="0">
        <beans:bean class="com.atlassian.confluence.content.render.xhtml.TransformerChain">
        etc...

Notes

Some information to be aware of when developing or configuring a Device Type Renderer plugin module:

  • Your plugin must have a Spring configured bean with an id matching the key of the device-type-renderer element. See Advanced Configuration with Spring XML Files for details on creating Spring components.
  • The renderer component referred to must implement the Renderer interface. For example, it could be a DefaultRenderer
  • If multiple renderers register against the same device type only the last one registered will be used.

RELATED TOPICS

Writing Confluence Plugins 
Installing a Plugin

Information sourced from Plugin Framework documentation

Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport