package de.ipk.ag_ba.plugins;
import iap.blocks.data_structures.ImageAnalysisBlock;
import java.util.Collection;
import org.graffiti.plugin.GenericPlugin;
import de.ipk.ag_ba.commands.experiment.view_or_export.ActionDataProcessing;
import de.ipk.ag_ba.datasources.DataSource;
import de.ipk.ag_ba.gui.interfaces.NavigationAction;
import de.ipk.ag_ba.gui.util.ExperimentReference;
import de.ipk.ag_ba.plugins.pipelines.AnalysisPipelineTemplate;
/**
* IAP extension API. Use AbstractIAPplugin to more easily provide a subset of all possible new
* feature types.
*
* @author Christian Klukas
*/
public interface IAPplugin extends GenericPlugin {
/**
* @return A list of NavigationAction commands, which is shown to the user
* in the beginning and after clicking 'Start'.
*/
public NavigationAction[] getHomeNavigationActions();
/**
* @return A list of remote data source providers for pathways, web-links or other
* types of datasets.
*/
public DataSource[] getDataSources();
/**
* Override this method to provide the system information about a list
* of known ImageAnalysisBlocks. While arbitrary blocks may be specified by the user,
* the blocks should also be made available to the IAP tool using this methods.
* The information will is used to provide the user with a list of known analysis blocks.
*
* @return A list of image analysis blocks.
*/
public ImageAnalysisBlock[] getImageAnalysisBlocks();
/**
* @param experimentReference
* Experiment data set (reference), the particular command will
* work on the given data.
* @return A list of NavigationAction commands, which may process the particular experiment
* data set. The commands are shown once a experiment is loaded.
*/
public ActionDataProcessing[] getDataProcessingActions(ExperimentReference experimentReference);
/**
* @param experimentReference
* Experiment data set (reference), the particular command will
* work on the given data.
* @return A list of NavigationAction commands, which may process the particular experiment
* dataset. The commands are shown after the user clicks the Tool command when a experiment is loaded.
*/
public ActionDataProcessing[] getDataProcessingTools(ExperimentReference experimentReference);
/**
* Override this method to provide help text(s), displayed by the settings editor for a specific
* settings group.
*
* @param iniFileName
* The settings iniFile or null, if this variable should not be decisive for the filtering.
* @param section
* The settings section or null, if this variable should not be decisive for the filtering.
* @param setting
* The setting for which help is returned.
* @return Null (no custom help), or one or more setting text paragraphs. You may use HTML tags, to format the help text.
*/
public Collection<String> getHelpForSettings(String iniFileName, String section, String setting);
/**
* Override this method to provide additional analysis templates to the user. These templates
* are automatically saved and may be modified by the user. A stored template (.pipeline.ini) file
* will not be updated or changed, if the add-on for a plugin provides a new version of a template.
*
* @return A list of templates (containing a block list, a pipeline name and description, which will be
* available to the user.
*/
public AnalysisPipelineTemplate[] getAnalysisTemplates();
}
|