diff --git a/force_bdss/bdss_application.py b/force_bdss/bdss_application.py index a822528477d75c8a36ca856b41a5c753d46106b2..4e5d49b188c33e50ee6e364d78fd95afc8b374ad 100644 --- a/force_bdss/bdss_application.py +++ b/force_bdss/bdss_application.py @@ -6,8 +6,9 @@ from stevedore.exception import NoMatches from envisage.api import Application from envisage.core_plugin import CorePlugin -from traits.api import Unicode, Bool +from traits.api import Unicode, Bool, Property +from force_bdss.ids import InternalPluginID from .factory_registry_plugin import FactoryRegistryPlugin from .core_evaluation_driver import CoreEvaluationDriver from .core_mco_driver import CoreMCODriver @@ -28,6 +29,9 @@ class BDSSApplication(Application): #: coordination of the MCO itself. See design notes for more details. evaluate = Bool() + #: Gives the currently opened workflow + workflow = Property() + def __init__(self, evaluate, workflow_filepath): self.evaluate = evaluate self.workflow_filepath = workflow_filepath @@ -53,6 +57,15 @@ class BDSSApplication(Application): super(BDSSApplication, self).__init__(plugins=plugins) + def _get_workflow(self): + if self.evaluate: + plugin = self.get_plugin( + InternalPluginID.CORE_EVALUATION_DRIVER_ID) + else: + plugin = self.get_plugin(InternalPluginID.CORE_MCO_DRIVER_ID) + + return plugin.workflow + def _import_extensions(plugins, ext): """Service routine extracted for testing.