Added controller manager registery guard; localized event type access for code to event factory

This commit is contained in:
2026-01-12 23:59:13 -06:00
parent a07123d165
commit a507469bf8
5 changed files with 23 additions and 20 deletions

View File

@@ -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)

View File

@@ -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...")

View File

@@ -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)

View File

@@ -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)

View File

@@ -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