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
|
""" The application interface. """
# Enthought library imports.
from enthought.preferences.api import IPreferences
from enthought.traits.api import Event, Instance, Str, VetoableEvent
# Local imports.
from i_extension_registry import IExtensionRegistry
from i_import_manager import IImportManager
from i_plugin_manager import IPluginManager
from i_service_registry import IServiceRegistry
from application_event import ApplicationEvent
class IApplication(
IExtensionRegistry, IImportManager, IPluginManager, IServiceRegistry
):
""" The application interface. """
# The name of a directory (created for you) that the application can read
# and write to at will.
home = Str
# The application's globally unique identifier.
id = Str
# The root preferences node.
preferences = Instance(IPreferences)
#### Events ####
# Fired when the application is starting. This is the first thing that
# happens when the 'start' method is called.
starting = VetoableEvent(ApplicationEvent)
# Fired when all plugins have been started.
started = Event(ApplicationEvent)
# Fired when the plugin manager is stopping. This is the first thing that
# happens when the 'stop' method is called.
stopping = VetoableEvent(ApplicationEvent)
# Fired when all plugins have been stopped.
stopped = Event(ApplicationEvent)
def run(self):
""" Run the application.
The same as::
if application.start():
application.stop()
"""
#### EOF ######################################################################
|