fiji/TrackMate — pull request #11 by tinevez (2014-01-14 15:13:15+00:00)
Title: Scijava detection plugins

Use the scijava facilities for spot detectors discovery, exemplified by Johannes on another branch.

This required some API changes:
The code that was responsible for the integration of a detector in TrackMate, namely:
* generating a default settings map;
* checking the validity of a settings map (can it be used with this detector?);
* marshalling the detector id and settings map to XML;
* unmarshalling the settings map from XML;
* returning a configuration panel (JPanel) that can be included in a GUI to configure the detector;
* returning an error message when one of those does not work.

has been moved from the DetectorProvider to each specific SpotDetectorFactory.
Which is way more elegant by the way.

Each SpotDetectorFactory now includes all these mixed tasks, which makes its list of import varies (from swing to JDom2). On top of that it is also the class that includes the scijava annotation:
@Plugin( type = SpotDetectorFactory.class )
which is used for detector discovery.

The discovery itself is left to the provider, which maintains lists of names, keys and info texts and a map of instances for all the implementation found.

This considerably improve the decoupling inside TrackMate, and will ease integrating other users custom detectors.