File: browser_plugin.py

package info (click to toggle)
mayavi2 4.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 21,892 kB
  • sloc: python: 49,447; javascript: 32,885; makefile: 129; fortran: 60
file content (66 lines) | stat: -rw-r--r-- 1,831 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
""" The TVTK pipeline browser plugin. """


# Enthought library imports.
from envisage.api import Plugin
from traits.api import List


class BrowserPlugin(Plugin):
    """ The TVTK pipeline browser plugin. """

    # Extension point Ids.
    VIEWS = 'envisage.ui.workbench.views'

    #### 'IPlugin' interface ##################################################

    # The plugin's name (suitable for displaying to the user).
    name = 'TVTK Pipeline Browser'

    # Our ID.
    id = 'tvtk.browser'

    #### Extension points offered by this plugin ##############################

    # None.

    #### Contributions to extension points made by this plugin ################

    views = List(contributes_to=VIEWS)

    def _views_default(self):
        """ Trait initializer. """

        return [self._browser_view_factory]

    ###########################################################################
    # Private interface.
    ###########################################################################

    def _browser_view_factory(self, window, **traits):
        """ Factory method for browser views. """

        from tvtk.plugins.browser.browser_view import (
            BrowserView
        )

        browser_view = BrowserView(
            scene_manager = self._get_scene_manager(window),
            window        = window,
            **traits
        )

        return browser_view

    def _get_scene_manager(self, window):
        """ Lookup the window's scene manager service. """

        # Get the scene manager (a 'per window' service, so we look it up via
        # the window!).
        from tvtk.plugins.scene.i_scene_manager import (
            ISceneManager
        )

        return window.get_service(ISceneManager)

#### EOF ######################################################################