Specify Plugins

Specify Software Project Staff
10 July 2011
Version 1.0

Overview

There are four types of plugins that can be used within Specify. The table below provides a short description of each.

  Plugin Description
1. Task plugin Major sub-system like search or reports etc. It can add items to the menu system and the Specify toolbar.
2. UI plugin A user interface component that 'lives' only within a Specify form.
3. Record Set plugin This is an interface for a plugin that can recieve Record Sets and then performs a process on all of the records. For example, a RecordSet of Collecting Events can be processed by the GoogleEarth plugin to create a single KMZ file.
4. WorkBench Plugin A plugin that can operate on one or more WorkBench data rows.

Each plugin has but just a few interfaces to be implemeted, or they can be derived from nearly fully functioning base classes.

Task Plugin

Overivew

 

Interfaces

Interface Required Description
Taskable
Yes
The required interface for implementing a Task plugin.
CommandListener
No
This interface enables the Task to register to receive Command notifications on the message backplane.
SubPaneMgrListener
No
The interface to assist in managing SubPaneIFace.
SubPaneIFace
No
The SubPaneIFace is used to display a panel in the work area of Specify.

The registry file is plugin_registry.xml in the installation 'config' directory of Specify. The user configurable file is found in the Specify profile directory. The 'core' portion of the XML is a subset of the entire file.

    <core>
        <plugin name="StartUpTask" class="edu.ku.brc.specify.tasks.StartUpTask" addui="true" default="true"/>
        <plugin name="DataEntryTask" class="edu.ku.brc.specify.tasks.DataEntryTask" addui="true"/>
        ...
    </core>

User Interface Plugin

Overivew

 

Interfaces

Interface Required Description
UIPluginable
Yes
The required interface for implementing a UI plugin. This enables it to 'live' inside a form and send the appropriate messages to the parent form and multiview.
GetSetValueIFace
No
This interface enables the UI plugin to get and set data. Although, it is not technically required it is essential to properly modifying data.

The registry file is plugin_registry.xml in the installation 'config' directory of Specify. The user configurable file is found in the Specify profile directory. The 'uiplugins' portion of the XML is a subset of the entire file.

<uiplugins>
    <plugin name="PartialDateUI"  class="edu.ku.brc.specify.plugins.PartialDateUI"/>
    <plugin name="LocalityGeoRef" class="edu.ku.brc.specify.plugins.LocalityGeoRefPlugin"/>
    ...
</uiplugins>

 

RecordSet Plugin

Overivew

 

Interfaces

Interface Required Description
RecordSetToolsIFace
Yes
The required interface for implementing a Task plugin.

 

The registry file is rstools_registry.xml in the installation 'config' directory of Specify. The user configurable file is found in the Specify profile directory.

<?xml version="1.0" encoding="UTF-8"?>
<tools>
    <tool name="GoogleEarthExporter" class="edu.ku.brc.specify.rstools.GoogleEarthExporter" addui="true"/>
    <tool name="ExportToFile" class="edu.ku.brc.specify.rstools.ExportToFile" addui="false"/>
    <tool name="GeoLocRSProcessor" class="edu.ku.brc.specify.rstools.GeoLocateRecordSetProcessor" addui="true"/>
    ...
</tools>

 

WorkBench Plugin

Overivew

 

Interfaces

Interface Required Description
WorkBenchPluginIFace
Yes
The required interface for implementing a Task plugin.

 

The registry file is wb_registry.xml in the installation 'config' directory of Specify. The user configurable file is found in the Specify profile directory.

<?xml version="1.0" encoding="UTF-8"?>
<plugins>
    <plugin name="SGR" class="edu.ku.brc.specify.plugins.sgr.SGRPluginImpl" icon="SGR" tooltip="" pref="SRG_PLUGIN"/>
</plugins>