Opened 18 years ago
Last modified 17 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:
- 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).
- 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 by , 18 years ago
Milestone: | → BASE 2.x+ |
---|
comment:2 by , 17 years ago
Milestone: | BASE 2.x+ → BASE 3.0 |
---|