This document discusses the paradigm how MAEPlugins are used with MAExplorer and the design used to give them access to MAExplorer data. The first part discuss the top level design and the second part gives an example of using a plugin. The details on the internals for MAExplorer itself are described in a Design doc (PDF) or (PPT). However, an understanding of the MAExplorer internals is not required to write a MAEPlugin.
1. Overview of MAEPlugin design
The MAExplorer Open Java API (Applications Programming Interface)
allows users to access almost all data structures without
understanding the details of the system. Specialized
interfacing classes (MJAxxxx), organized by function, are accessed
from the MaeJavaAPI class. The MJAxxxx classes map internal data to
user data in a protected manner. Users do not have direct access to
internal MAExplorer data structures. However, MAEPlugins do have
access to relevant data. This allows us to improve and change the
internal data structures without causing problems with plugins using
those data structures. The following figures show the top level
plugin design.
Figure 1. Overall MAEPlugin design for MAExplorer.
Plugins are dynamically loaded into MAExplorer where they may be
invoked from a menu entry or by various other means such as startup,
normalization, data filtering, etc. Any number of plugins may be
loaded simultaneously. They may be loaded and unloaded dynamically,
and saved for automatic loading when the current database is saved.
Figure 2. Open Java API for MAEPlugins. Each type of
application could be derived from specialized Java classes that
contain most of the access methods required for that type of analysis.
The Gather - Scatter API is a means of "gathering" data from MAExplorer
internal data structures for the plugin. When a plugin wants to store data
back into MAExplorer, it is "scattered" back into the internal data structures.
This is implemented using the MaeJavaAPI and MJAxxx classes described in the
Open Java API.
Figure 3. Loading a MAEPlugin from your file system using
the Load Plugins command in the Plugins pull down menu. If you
have a plugin .jar or .class file, it may be specified using the "Load
plugin" command. This pops up a file browser to let you specify the
plugin file.
Figure 4. Executing the new command previously loaded in the
Plugin menu. Selecting the new "Show List Active Filters" command
that now appears in the Plugins menu invokes the plugin. This pops up
a report shown in the next figure.
Figure D.5. Popup window from executing the MAEPlugin.
This plugin gives a full report on the data Filter status in a new
pop up window.
2. Example of using a Plugin
This shows a short demonstration of what is involved in using a
MAEPlugin. The user first load the plugin from the disk. Generally the
plugins .jar or .class files are stored in the Plugins/ directory
where you have installed MAExplorer. Then they load a particular
plugin which installs it in the Plugins pull-down menu. Then they
revisit that menu to invoke the particular plugin. You may load any
number of plugins (until you run out of computer memory if that should
occur).