The following plugin is an example. It is used in <oXygen/> for capitalizing the characters in the current selection. This example consist of two classes and the plugin descriptor:
package ro.sync.sample.plugin.uppercase; import ro.sync.exml.plugin.Plugin; import ro.sync.exml.plugin.PluginDescriptor; public class UppercasePlugin extends Plugin { /** * Plugin instance. */ private static UppercasePlugin instance = null; /** * UppercasePlugin constructor. * * @param descriptor Plugin descriptor object. */ public UppercasePlugin(PluginDescriptor descriptor) { super(descriptor); if (instance != null) { throw new IllegalStateException("Already instantiated !"); } instance = this; } /** * Get the plugin instance. * * @return the shared plugin instance. */ public static UppercasePlugin getInstance() { return instance; } }
package ro.sync.sample.plugin.uppercase; import ro.sync.exml.plugin.selection.SelectionPluginContext; import ro.sync.exml.plugin.selection.SelectionPluginExtension; import ro.sync.exml.plugin.selection.SelectionPluginResult; import ro.sync.exml.plugin.selection.SelectionPluginResultImpl; public class UppercasePluginExtension implements SelectionPluginExtension { /** * Convert the text to uppercase. * *@param context Selection context. *@return Uppercase plugin result. */ public SelectionPluginResult process(SelectionPluginContext context) { return new SelectionPluginResultImpl( context.getSelection().toUpperCase()); } }
<!DOCTYPE plugin SYSTEM "../plugin.dtd"> <plugin name="UpperCase" description="Convert the selection to uppercase" version="1.0.0" vendor="SyncRO" class="ro.sync.sample.plugin.uppercase.UppercasePlugin"> <runtime> <library name="lib/uppercase.jar"/> </runtime> <extension type="selectionProcessor" class="ro.sync.sample.plugin.uppercase.UppercasePluginExtension"/> </plugin>