diff --git a/src/core/widgets/code/controllers/controller_base.py b/src/core/widgets/code/controllers/controller_base.py index 6f1cdc5..67eb76d 100644 --- a/src/core/widgets/code/controllers/controller_base.py +++ b/src/core/widgets/code/controllers/controller_base.py @@ -5,7 +5,7 @@ # Application imports from libs.singleton import Singleton -from libs.dto.code.code_event import CodeEvent +from ..event_factory import Event_Factory_Types from .emit_dispatcher import EmitDispatcher from .controller_context import ControllerContext @@ -24,15 +24,15 @@ class ControllerBase(Singleton, EmitDispatcher): self.controller_context: ControllerContext = None - def _controller_message(self, event: CodeEvent): + def _controller_message(self, event: Event_Factory_Types.CodeEvent): raise ControllerBaseException("Controller Base must override '_controller_message'...") def set_controller_context(self, controller_context: ControllerContext): self.controller_context = controller_context - def message_to(self, name: str, event: CodeEvent): + def message_to(self, name: str, event: Event_Factory_Types.CodeEvent): return self.controller_context.message_to(name, event) - def message_all(self, event: CodeEvent): + def message_all(self, event: Event_Factory_Types.CodeEvent): return self.controller_context.message_all(event) diff --git a/src/core/widgets/code/controllers/controller_context.py b/src/core/widgets/code/controllers/controller_context.py index 0fd5672..67bb5b4 100644 --- a/src/core/widgets/code/controllers/controller_context.py +++ b/src/core/widgets/code/controllers/controller_context.py @@ -3,7 +3,7 @@ # Lib imports # Application imports -from libs.dto.code.code_event import CodeEvent +from ..event_factory import Event_Factory_Types @@ -17,8 +17,8 @@ class ControllerContext: super(ControllerContext, self).__init__() - def message_to(self, name: str, event: CodeEvent): + def message_to(self, name: str, event: Event_Factory_Types.CodeEvent): raise ControllerContextException("Controller Context 'message_to' must be overriden by Controller Manager...") - def message_all(self, event: CodeEvent): + def message_all(self, event: Event_Factory_Types.CodeEvent): raise ControllerContextException("Controller Context 'message_all' must be overriden by Controller Manager...") diff --git a/src/core/widgets/code/controllers/controller_manager.py b/src/core/widgets/code/controllers/controller_manager.py index c87a01d..3dc8810 100644 --- a/src/core/widgets/code/controllers/controller_manager.py +++ b/src/core/widgets/code/controllers/controller_manager.py @@ -5,7 +5,7 @@ # Application imports from libs.singleton import Singleton -from libs.dto.code.code_event import CodeEvent +from ..event_factory import Event_Factory_Types from .controller_base import ControllerBase from .controller_context import ControllerContext @@ -33,16 +33,19 @@ class ControllerManager(Singleton, dict): if not name or controller == None: raise ControllerManagerException("Must pass in a 'name' and 'controller'...") - controller.set_controller_context( - self._crete_controller_context() - ) + if name in self.keys(): + raise ControllerManagerException(f"Can't bind controller to registered name of '{name}'...") + + controller.set_controller_context( self._crete_controller_context() ) self[name] = controller + def get_controllers_key_list(self) -> list[str]: + return self.keys() - def message_to(self, name: str, event: CodeEvent): + def message_to(self, name: str, event: Event_Factory_Types.CodeEvent): self[name]._controller_message(event) - def message_all(self, event: CodeEvent): + def message_all(self, event: Event_Factory_Types.CodeEvent): for key in self.keys(): self[key]._controller_message(event) diff --git a/src/core/widgets/code/controllers/emit_dispatcher.py b/src/core/widgets/code/controllers/emit_dispatcher.py index 79bf70a..41d5621 100644 --- a/src/core/widgets/code/controllers/emit_dispatcher.py +++ b/src/core/widgets/code/controllers/emit_dispatcher.py @@ -3,7 +3,7 @@ # Lib imports # Application imports -from libs.dto.code.code_event import CodeEvent +from ..event_factory import Event_Factory_Types @@ -12,8 +12,8 @@ class EmitDispatcher: super(EmitDispatcher, self).__init__() - def emit(self, event: CodeEvent): + def emit(self, event: Event_Factory_Types.CodeEvent): self.message_all(event) - def emit_to(self, controller: str, event: CodeEvent): + def emit_to(self, controller: str, event: Event_Factory_Types.CodeEvent): self.message_to(controller, event) diff --git a/src/core/widgets/code/tabs_widget.py b/src/core/widgets/code/tabs_widget.py index f9225da..1d82fe7 100644 --- a/src/core/widgets/code/tabs_widget.py +++ b/src/core/widgets/code/tabs_widget.py @@ -6,7 +6,7 @@ gi.require_version('Gtk', '3.0') from gi.repository import Gtk # Application imports -from libs.dto.code.code_event import CodeEvent +from .event_factory import Event_Factory_Types from .source_view import SourceView from .source_file import SourceFile @@ -37,7 +37,7 @@ class TabsWidget(Gtk.ButtonBox): def _load_widgets(self): ... - def add_tab(self, event: CodeEvent): + def add_tab(self, event: Event_Factory_Types.CodeEvent): """Add a tab widget for the given file event.""" if not hasattr(self, 'tabs'): return @@ -61,7 +61,7 @@ class TabsWidget(Gtk.ButtonBox): self.tabs.add(tab) - def remove_tab(self, event: CodeEvent): + def remove_tab(self, event: Event_Factory_Types.CodeEvent): """Remove a tab widget for the given file event.""" if not hasattr(self, 'tabs'): return @@ -75,7 +75,7 @@ class TabsWidget(Gtk.ButtonBox): return - def update_tab_label(self, event: CodeEvent): + def update_tab_label(self, event: Event_Factory_Types.CodeEvent): """Update tab label for the given file event.""" if not hasattr(self, 'tabs'): return