The anatomy of a plugin

A plugin is made up of one or more modules that each have one or more tools contained in it. The module can have the scoringTools, infoTools, and totalTools array objects defined. If defined the ModuleManager will process each tool and add the appropriate events and callbacks to the tools. The contract for the module looks like figure 1 below

Figure 1: The module contract (TypeScript)

//Required properties
public id: string;      
public author: string;
public version: string;

//The different types of tools. Each type is optional. 
//There must be at least one tool defined in at least 
//one of these arrays for the module to do anything in
//the system.
public scoringTools: IScoreToolOptions[];
public infoTools: ITool[];
public totalTools: ITotalTool[];

//Setup and cleanup routines that the module can 
//define. Defaults to null functions.
public init: ICallback;
public destroy: ICallback;
public activate: ICallback;
public deactivate: ICallback;

contains tools

the common tool contract

Plugin Types

Plugin Types

  • Scoring plugin
  • Totals (aggregation) plugin
  • Info plugin

Scoring Plugin


Last edited Aug 18, 2014 at 7:26 PM by brantpeery, version 6