def _service_initialized_handler(self, event): self.logger.debug('Handling ServiceInitializedEvent') self.logger.debug('Service is %s' % event.service) if IActionProvider.providedBy(event.service): self.logger.debug('Loading registered service %s' % event.service) self.register_action_provider(event.service)
def register_action_provider(self, action_provider): self.logger.debug('Registering action provider %s' % action_provider) action_provider = IActionProvider(action_provider) try: # Check if the action provider is not already registered action_provider.__ui_merge_id except AttributeError: assert action_provider.action_group self.ui_manager.insert_action_group(action_provider.action_group, -1) try: menu_xml = action_provider.menu_xml except AttributeError: pass else: action_provider.__ui_merge_id = \ self.ui_manager.add_ui_from_string(menu_xml)
def unregister_action_provider(self, action_provider): action_provider = IActionProvider(action_provider) try: # Check if the action provider is registered action_provider.__ui_merge_id except AttributeError: pass else: self.ui_manager.remove_ui(action_provider.__ui_merge_id) self.ui_manager.remove_action_group(action_provider.action_group) del action_provider.__ui_merge_id
def init_ui_components(self): component_registry = self.component_registry for ep in pkg_resources.iter_entry_points('gaphor.uicomponents'): log.debug('found entry point uicomponent.%s' % ep.name) cls = ep.load() if not IUIComponent.implementedBy(cls): raise NameError, 'Entry point %s doesn''t provide IUIComponent' % ep.name uicomp = cls() uicomp.ui_name = ep.name component_registry.register_utility(uicomp, IUIComponent, ep.name) if IActionProvider.providedBy(uicomp): self.action_manager.register_action_provider(uicomp)
def init_ui_components(self): component_registry = self.component_registry for ep in pkg_resources.iter_entry_points('gaphor.uicomponents'): log.debug('found entry point uicomponent.%s' % ep.name) cls = ep.load() if not IUIComponent.implementedBy(cls): raise NameError('Entry point %s doesn''t provide IUIComponent' % ep.name) uicomp = cls() uicomp.ui_name = ep.name component_registry.register_utility(uicomp, IUIComponent, ep.name) if IActionProvider.providedBy(uicomp): self.action_manager.register_action_provider(uicomp)