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>