Package org.ka2ddo.yaac.pluginapi


package org.ka2ddo.yaac.pluginapi

This package provides service classes and interface definitions for creating plugin extensions to YAAC.

A plugin consists of a JAR file containing:

  1. a class that is a subclass of the abstract Provider class in this package.
  2. a manifest file with the line:
    YAAC-Provider: fully.qualified.provider.subclass.name
  3. whatever other class files and resources are needed to implement the services defined by the Provider subclass.
This JAR file should be placed in the YAAC installation directory's plugins subdirectory.

The Provider subclass can define the following extensions to be added to YAAC:

  • code to be executed prior to loading the next plugin, which can also test whether current environment is acceptable (or not) for running the plugin.
  • classnames defining new panels to add to the expert-mode configuration dialog (should the extensions in the plugin require user configuration).
  • new drivers for different types of I/O devices (subclassing the abstract PortConnector class).
  • new menu actions to be inserted into the YAAC GUI menu hierarchy (subclassing the AbstractMenuAction class).
  • new contextually-conditional menu actions to be inserted into the map or table right-click popup menu (subclassing the AbstractPopupMenuAction class).
  • new automated query handlers for query-format messages (with body text "?xxxx") (subclassing the AbstractQueryHandler class).
  • new JavaHelp help sets to be merged into the online help.
  • new locales of ResourceBundles for the YAAC display strings.
  • credits and attributions to be displayed in the About dialog.
  • code to be executed after all plugins have been loaded to finish initializing the plugin.
If any extension is a duplicate of an extension defined by an earlier plugin (or the YAAC core software itself), such as an identically-named menu item, it will replace the earlier defined extension.

Plugin JAR files will be scanned in file modification date order.

  • Class
    Description
    This abstract class functions more or less the same as the javax.swing.AbstractAction class, but is not subclassed from that class, so that it can be used in non-Swing environments (such as Android).
    This interface defines an object associated with a specific AbstractMenuAction instance that wants to know about changes to the AbstractMenuAction's properties.
    This class defines the general contract for a popup menu action, using the same rules as for a menu bar action.
    This class defines some infrastructure for convenient creation of pluggable query handlers for YAAC.
    This interface defines a decision interface identifying AbstractMenuActions that should not go on the main window menu bar, but instead on a popup menu displayed because someone right-clicked on the map.
    This class defines (in a non-GUI-dependent way) an extra column of data for inclusion in the station/object list table view.
    This interface defines an object that can provide additional columns for table views in YAAC, in a GUI-platform-independent fashion.
    This interface specifies an object that wants to be informed when an ExtraColumnProvider modifies its list of custom columns in real-time.
    This interface defines the data for one of a sequential list of elements to render in a popup window for an ExtraColumn.
    This enumeration identifies the different rendering types for a set of ExtraContentElements obtained from an ExtraColumn object for a popup window.
    This enum defines content types for UI panels that can launch popup menus, to help popup menu actions decide whether they can be used in the launching context.
    This class defines the structure of a plugin extension's definition.
    This class describes the name and implementing Class of an interface port driver.
    This interface specifies how to generically get the identifier of a record within a record set, and and add, get, and remove extra data from the record.