Difference between revisions of "Plugin certification checklist"

Line 6: Line 6:
  
 
=== Computation Requirements ===
 
=== Computation Requirements ===
* Plugins should never initiate long running processing unless by explicit user request.
+
 
 +
* Plugins should never perform large computations upon reception of an event. All large processing should only occur as a result of a user request.
 
* With any long running processing the user must be presented with a progress bar and ability to cancel operation.
 
* With any long running processing the user must be presented with a progress bar and ability to cancel operation.
 
* Long running processes should always be executed in a worker thread to allow the user interface to be responsive. Helper classes will be provided to make this easy and consistent across the application.
 
* Long running processes should always be executed in a worker thread to allow the user interface to be responsive. Helper classes will be provided to make this easy and consistent across the application.

Revision as of 15:42, 2 January 2006

Major Checklist Items

  • All interface components (buttons, lists, etc.) of a plugin should be fully functional.
  • All components must have a full help section.
  • Plugins should not include large datasets or example data unless totally necessary. Large extra data should be downloaded seperately to save CVS overhead and to allow for easy plugin updates.

Computation Requirements

  • Plugins should never perform large computations upon reception of an event. All large processing should only occur as a result of a user request.
  • With any long running processing the user must be presented with a progress bar and ability to cancel operation.
  • Long running processes should always be executed in a worker thread to allow the user interface to be responsive. Helper classes will be provided to make this easy and consistent across the application.

Events and Dataset handling

  • Plugins should create dataset subnodes for their results so the user can see and navigate to the result.
  • Plugins should specify what datasets they can accept and process through the use of the @AcceptTypes annotation. They should only specify datasets that they can properly support and then will only be visible when relevant to the current data loaded.
  • Plugins should only generate events necessary to their function. Unnecessary event generation can seriously impact application performance.


Minor Items

  • Plugin should conform to look and feel guidelines, and should make use of standard button placements and layouts.