Source code for simphony_mayavi.plugins.engine_manager_standalone_ui

from mayavi import mlab
from traitsui.api import View, VGroup, Group, Item
from traits.api import HasTraits, Instance

from simphony_mayavi.plugins.engine_manager import EngineManager
from simphony_mayavi.plugins.add_engine_panel import AddEnginePanel
from simphony_mayavi.plugins.add_source_panel import AddSourcePanel
from simphony_mayavi.plugins.run_and_animate_panel import RunAndAnimatePanel
from simphony_mayavi.plugins.tabbed_panel_collection import (
    TabbedPanelCollection)


[docs]class EngineManagerStandaloneUI(EngineManager): ''' Standalone GUI for visualising datasets from a modeling engine, running the engine and animating the results ''' panels = Instance(TabbedPanelCollection) traits_view = View( VGroup( Group(Item("engine_name", label="Engine Wrapper")), Group(Item("panels", style="custom", show_label=False))), title="Engine Manager", resizable=True) def __init__(self, engine_name="", engine=None, mayavi_engine=None): ''' Parameters ---------- engine_name : str Name of the Simphony Modeling Engine wrapper engine : ABCModelingEngine Simphony Modeling Engine wrapper mayavi_engine : mayavi.api.engine Default to be mayavi.mlab.get_engine() ''' # Traits initialisation HasTraits.__init__(self) if mayavi_engine is None: # Standalone Mayavi Engine mayavi_engine = mlab.get_engine() else: mayavi_engine = mayavi_engine # Add panels self.panels = TabbedPanelCollection.create( add_engine=AddEnginePanel(engine_manager=self), add_source=AddSourcePanel(engine_name=self.engine_name, engine=self.engine, mayavi_engine=mayavi_engine), run_and_animate=RunAndAnimatePanel(engine=self.engine, mayavi_engine=mayavi_engine)) if engine and engine_name: self.add_engine(engine_name, engine) def _engine_name_changed(self): # Sync panels when engine_name (i.e. engine) changes for panel in self.panels: if hasattr(panel, "engine"): panel.engine = self.engine self.panels.add_source.engine_name = self.engine_name # -------------------------------------------------------------- # Public methods # --------------------------------------------------------------
[docs] def show_config(self): ''' Show the GUI with all the panels ''' return self.edit_traits()