Move EventManager to gaphor.core
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
import gaphas
|
||||
import pytest
|
||||
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.UML import Diagram
|
||||
from gaphor.UML.presentation import Presentation
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -1,8 +1,8 @@
|
||||
import pytest
|
||||
|
||||
import gaphor.UML as UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -5,8 +5,8 @@ Formatting of UML model elements into text tests.
|
||||
import pytest
|
||||
|
||||
import gaphor.UML.uml2 as UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.UML import model
|
||||
from gaphor.UML.umlfmt import format
|
||||
from gaphor.UML.umllex import parse
|
||||
|
@ -5,8 +5,8 @@ Parsing of UML model elements from string tests.
|
||||
import pytest
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.UML.umllex import attribute_pat, operation_pat, parameter_pat
|
||||
|
||||
|
||||
|
@ -5,6 +5,6 @@ An average module should only need to import this module.
|
||||
"""
|
||||
|
||||
from gaphor.action import action
|
||||
from gaphor.core.eventmanager import event_handler
|
||||
from gaphor.i18n import gettext
|
||||
from gaphor.services.eventmanager import event_handler
|
||||
from gaphor.transaction import Transaction, transactional
|
||||
|
@ -23,7 +23,7 @@ from gaphor.UML.event import ElementCreated, ElementDeleted, ModelFlushed, Model
|
||||
from gaphor.UML.uml2 import Diagram
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from gaphor.services.eventmanager import EventManager # noqa
|
||||
from gaphor.core.eventmanager import EventManager # noqa
|
||||
|
||||
|
||||
T = TypeVar("T", bound=Element)
|
||||
|
@ -1,9 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.core.modeling.elementdispatcher import ElementDispatcher, EventWatcher
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.tests import TestCase
|
||||
from gaphor.UML import Element
|
||||
from gaphor.UML.properties import association
|
||||
|
@ -4,8 +4,8 @@ import pytest
|
||||
|
||||
from gaphor.application import Session
|
||||
from gaphor.core import event_handler
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.UML import Parameter
|
||||
from gaphor.UML.event import (
|
||||
ElementCreated,
|
||||
|
@ -1,9 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.diagram.general.generalpropertypages import CommentItemPropertyPage
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -5,10 +5,10 @@ from gaphas.aspect import ConnectionSink
|
||||
from gaphas.aspect import Connector as ConnectorAspect
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.diagram.connectors import Connector
|
||||
from gaphor.misc.xmlwriter import XMLWriter
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.storage import storage
|
||||
|
||||
|
||||
|
@ -1,65 +0,0 @@
|
||||
"""
|
||||
Event Manager.
|
||||
"""
|
||||
|
||||
|
||||
from typing import Optional, Sequence, Type
|
||||
|
||||
from generic.event import Event, Handler
|
||||
from generic.event import Manager as _Manager
|
||||
|
||||
from gaphor.abc import Service
|
||||
|
||||
|
||||
def event_handler(*event_types):
|
||||
"""
|
||||
Mark a function/method as an event handler for a particular type of event.
|
||||
"""
|
||||
|
||||
def wrapper(func):
|
||||
func.__event_types__ = event_types
|
||||
return func
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
class EventManager(Service):
|
||||
"""
|
||||
The Event Manager.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._events = _Manager()
|
||||
|
||||
def shutdown(self) -> None:
|
||||
pass
|
||||
|
||||
def subscribe(self, handler: Handler) -> None:
|
||||
"""
|
||||
Register a handler. Handlers are triggered (executed) when specific
|
||||
events are emitted through the handle() method.
|
||||
"""
|
||||
event_types = getattr(handler, "__event_types__", None)
|
||||
if not event_types:
|
||||
raise Exception(f"No event types provided for function {handler}")
|
||||
|
||||
for et in event_types:
|
||||
self._events.subscribe(handler, et)
|
||||
|
||||
def unsubscribe(self, handler: Handler) -> None:
|
||||
"""
|
||||
Unregister a previously registered handler.
|
||||
"""
|
||||
event_types = getattr(handler, "__event_types__", None)
|
||||
if not event_types:
|
||||
raise Exception(f"No event types provided for function {handler}")
|
||||
|
||||
for et in event_types:
|
||||
self._events.unsubscribe(handler, et)
|
||||
|
||||
def handle(self, *events: Event) -> None:
|
||||
"""
|
||||
Send event notifications to registered handlers.
|
||||
"""
|
||||
for e in events:
|
||||
self._events.handle(e)
|
@ -3,8 +3,8 @@ Test the UndoManager.
|
||||
"""
|
||||
|
||||
from gaphor.core import event_handler
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.services.undomanager import UndoManager
|
||||
from gaphor.tests.testcase import TestCase
|
||||
from gaphor.transaction import Transaction
|
||||
|
@ -3,8 +3,8 @@ from io import StringIO
|
||||
import pytest
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.storage import storage
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.storage import diagramitems
|
||||
from gaphor.storage.parser import canvas, canvasitem, element
|
||||
from gaphor.storage.storage import load_elements
|
||||
|
@ -1,6 +1,6 @@
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.storage.verify import orphan_references
|
||||
|
||||
|
||||
|
@ -3,8 +3,8 @@
|
||||
from unittest import TestCase
|
||||
|
||||
from gaphor.core import event_handler
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.event import TransactionBegin, TransactionCommit, TransactionRollback
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.transaction import Transaction, TransactionError
|
||||
|
||||
begins = []
|
||||
|
@ -43,8 +43,8 @@ class Transaction:
|
||||
"""
|
||||
The transaction. On start and end of a transaction an event is emitted.
|
||||
|
||||
>>> import gaphor.services.eventmanager
|
||||
>>> event_manager = gaphor.services.eventmanager.EventManager()
|
||||
>>> import gaphor.core.eventmanager
|
||||
>>> event_manager = gaphor.core.eventmanager.EventManager()
|
||||
|
||||
Transactions can be nested. If the outermost transaction is committed or
|
||||
rolled back, an event is emitted.
|
||||
|
@ -28,7 +28,7 @@ from gaphor.UML.event import (
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
|
||||
# The following items will be shown in the treeview, although they
|
||||
# are UML.Namespace elements.
|
||||
|
@ -2,9 +2,9 @@ import pytest
|
||||
from gi.repository import Gtk
|
||||
|
||||
from gaphor import UML
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.diagram.diagramtoolbox import TOOLBOX_ACTIONS
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.services.properties import Properties
|
||||
from gaphor.tests.testcase import TestCase
|
||||
from gaphor.ui.diagrampage import DiagramPage
|
||||
|
@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.ui.elementeditor import ElementEditor
|
||||
from gaphor.ui.mainwindow import Diagrams
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
|
||||
import gaphor.services.eventmanager
|
||||
import gaphor.core.eventmanager
|
||||
import gaphor.UML as UML
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.ui.namespace import Namespace
|
||||
@ -8,7 +8,7 @@ from gaphor.ui.namespace import Namespace
|
||||
|
||||
@pytest.fixture
|
||||
def event_manager():
|
||||
return gaphor.services.eventmanager.EventManager()
|
||||
return gaphor.core.eventmanager.EventManager()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -3,7 +3,7 @@ import pathlib
|
||||
import pytest
|
||||
from gi.repository import GLib
|
||||
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.ui.event import FileLoaded
|
||||
from gaphor.ui.recentfiles import RecentFiles
|
||||
|
||||
|
@ -10,9 +10,9 @@ from gi.repository import Gdk, GLib, Gtk
|
||||
|
||||
from gaphor.abc import ActionProvider
|
||||
from gaphor.core import gettext
|
||||
from gaphor.core.eventmanager import event_handler
|
||||
from gaphor.diagram.diagramtoolbox import ToolDef
|
||||
from gaphor.diagram.diagramtoolbox_actions import toolbox_actions
|
||||
from gaphor.services.eventmanager import event_handler
|
||||
from gaphor.ui.abc import UIComponent
|
||||
from gaphor.ui.event import ProfileSelectionChanged
|
||||
|
||||
|
@ -67,7 +67,7 @@ gaphorconvert = 'gaphor.tools.gaphorconvert:main'
|
||||
|
||||
[tool.poetry.plugins."gaphor.services"]
|
||||
"component_registry" = "gaphor.services.componentregistry:ComponentRegistry"
|
||||
"event_manager" = "gaphor.services.eventmanager:EventManager"
|
||||
"event_manager" = "gaphor.core.eventmanager:EventManager"
|
||||
"properties" = "gaphor.services.properties:Properties"
|
||||
"undo_manager" = "gaphor.services.undomanager:UndoManager"
|
||||
"element_factory" = "gaphor.core.modeling:ElementFactory"
|
||||
|
@ -4,9 +4,9 @@ from gaphas.aspect import ConnectionSink, Connector
|
||||
from gaphor import UML
|
||||
from gaphor.application import Application
|
||||
from gaphor.core import transactional
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.core.modeling import ElementFactory
|
||||
from gaphor.diagram.classes import AssociationItem, ClassItem
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.services.undomanager import UndoManager
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ if __name__ == "__main__":
|
||||
from gaphor.plugins.xmiexport import XMIExport
|
||||
from gaphor.services.componentregistry import ComponentRegistry
|
||||
from gaphor.services.copyservice import CopyService
|
||||
from gaphor.services.eventmanager import EventManager
|
||||
from gaphor.core.eventmanager import EventManager
|
||||
from gaphor.services.helpservice import HelpService
|
||||
from gaphor.services.properties import Properties
|
||||
from gaphor.services.sanitizerservice import SanitizerService
|
||||
|
Reference in New Issue
Block a user