Permalink
Fetching contributors…
Cannot retrieve contributors at this time
93 lines (61 sloc) 2.43 KB
""" The Lorenz UI plugin. """
# Enthought library imports.
from envisage.api import Plugin
from pyface.workbench.api import Perspective, PerspectiveItem
from pyface.workbench.api import TraitsUIView
from traits.api import List
class LorenzPerspective(Perspective):
""" A perspective containing the default Lorenz views. """
name = 'Lorenz'
show_editor_area = False
contents = [
PerspectiveItem(id='lorenz.data'),
PerspectiveItem(id='lorenz.plot2d')
]
class LorenzUIPlugin(Plugin):
""" The Lorenz UI plugin.
This plugin is part of the 'Lorenz' example application.
"""
# Extension points Ids.
PERSPECTIVES = 'envisage.ui.workbench.perspectives'
VIEWS = 'envisage.ui.workbench.views'
#### 'IPlugin' interface ##################################################
# The plugin's unique identifier.
id = 'acme.lorenz.ui'
# The plugin's name (suitable for displaying to the user).
name = 'Lorenz UI'
#### Contributions to extension points made by this plugin ################
# Perspectives.
perspectives = List(contributes_to=PERSPECTIVES)
def _perspectives_default(self):
""" Trait initializer. """
return [LorenzPerspective]
# Views.
views = List(contributes_to=VIEWS)
def _views_default(self):
""" Trait initializer. """
return [self._create_data_view, self._create_plot2d_view]
###########################################################################
# Private interface.
###########################################################################
def _create_data_view(self, **traits):
""" Factory method for the data view. """
from acme.lorenz.api import DataView, Lorenz
data_view = TraitsUIView(
id = 'lorenz.data',
name = 'Data',
obj = DataView(lorenz=self.application.get_service(Lorenz)),
**traits
)
return data_view
def _create_plot2d_view(self, **traits):
""" Factory method for the plot2D view. """
from acme.lorenz.api import Lorenz, Plot2DView
plot2d_view = TraitsUIView(
id = 'lorenz.plot2d',
name = 'Plot 2D',
obj = Plot2DView(lorenz=self.application.get_service(Lorenz)),
**traits
)
return plot2d_view
#### EOF ######################################################################