Opened 15 years ago

Last modified 14 years ago

#376 new enhancement

Better system for checking which plugins that can be executed in a given context

Reported by: Nicklas Nordborg Owned by: Nicklas Nordborg
Priority: major Milestone: BASE Future Release
Component: core Version:
Keywords: Cc:

Description

The current implementation leads to lots of situation where you think you can run a plugin but when you try you are given a list of explanations why you can't run 10+ plugins in the given context. For example all installed plugins require 2-channel data, but you only have 1-channel data.

The current implementation works like this:

  1. Ask the database for a count of how many possible plugins there are. The only parameters are the the type of plugin and the current context (ie. reporter list, file item, etc).
  2. When the user click the "Run plugin" (or "Import" or "Export") button the core loads

the possible plugins found in step 1 and calls the Plugin.isInContext() method. It is possible that all plugins have a reason for not beeing executable given the current item. For example, a raw bioassay that already has raw data cannot import more data.

The enhanced system must do both 1 and 2 for all plugins before adding the Run plugin/Import/Export buttons to the interface. However the only way to do so is to load and create a new instance of each plugin every time. This has to be changed. Maybe it is possible to have one global instance of some object that represents each plugin/configuration combination that can handle the checking.

Change History (2)

comment:1 Changed 15 years ago by Jari Häkkinen

Milestone: BASE 2.x+

comment:2 Changed 14 years ago by Jari Häkkinen

Milestone: BASE 2.x+BASE 3.0
Note: See TracTickets for help on using tickets.