Declare new methods for SpotDetectorFactory.

These factories are now in charge of loading/saving to XML, and
generating a suitable GUI panel.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Code style changes.

Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
Implements provider methods in detector factories.

Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
Add a public method to test settings validity for detectors.

Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
Use new detector factory design in TrackMate.

Could be simplified more. Since the factory has all the required behavior to be
used in the GUI, we can get rid of the provider at some places.
But first, let's focus on SciJava nagic.

Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
An attempt at using SciJava services for Detector factories.

Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
Use scijava-common 2.7.1-SNAPSHOT specifically.

So that the discovery mecanism works out of the box, even for small
test snippets.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Fix DetectorProvider fields.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Simplify the DetectorProvider.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Code style changes.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Use SciJava to discovers spot feature analyzer factories.

What we miss now is a proper ordering of them.
Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Code style changes.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Use SciJava to discovers edge feature analyzer.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Remove useless field.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Code style changes.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Use SciJava to discovers track feature analyzers.

Signed-off-by: Jean-Yves Tinevez <jean-yves.tinevez@pasteur.fr>
Merge remote-tracking branch 'origin/scijava-edgefeatures-plugins' into scijava-spotfeatures-plugins
Merge remote-tracking branch 'origin/scijava-trackfeatures-plugins' into scijava-spotfeatures-plugins
Feature analyzers can now be sorted by their priority annotation.

The fantastic PluginInfo we are using to discover feature analyzers has
a priority annotation that accepts a double as value. We use this value
to tag the priority of the analyzer.

Some analyzers rely on other analyzer features. So the depending
analyzers must be called AFTER the analyzer they depend on. We use the
priority value to sort them.

An analyzer that does not depend on anything will have - by convention -
a priority value of 0.
An analyzer that depends on other analyzers will have a priority equals
to the largest priority of the analyzers it depends on, plus one.

So far, we only use this for spot feature analyzers.
Signed-off-by: Jean-Yves Tinevez <jeanyves.tinevez@gmail.com>
Remove explicit dependency in scijava-2.7.1-SNAPSHOT

... now that Johannes released scijava-2.8.0.