Added controller manager registery guard; localized event type access for code to event factory
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
# Application imports
|
# Application imports
|
||||||
from libs.singleton import Singleton
|
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 .emit_dispatcher import EmitDispatcher
|
||||||
from .controller_context import ControllerContext
|
from .controller_context import ControllerContext
|
||||||
@@ -24,15 +24,15 @@ class ControllerBase(Singleton, EmitDispatcher):
|
|||||||
self.controller_context: ControllerContext = None
|
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'...")
|
raise ControllerBaseException("Controller Base must override '_controller_message'...")
|
||||||
|
|
||||||
def set_controller_context(self, controller_context: ControllerContext):
|
def set_controller_context(self, controller_context: ControllerContext):
|
||||||
self.controller_context = controller_context
|
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)
|
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)
|
return self.controller_context.message_all(event)
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application 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__()
|
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...")
|
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...")
|
raise ControllerContextException("Controller Context 'message_all' must be overriden by Controller Manager...")
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# Application imports
|
# Application imports
|
||||||
from libs.singleton import Singleton
|
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_base import ControllerBase
|
||||||
from .controller_context import ControllerContext
|
from .controller_context import ControllerContext
|
||||||
@@ -33,16 +33,19 @@ class ControllerManager(Singleton, dict):
|
|||||||
if not name or controller == None:
|
if not name or controller == None:
|
||||||
raise ControllerManagerException("Must pass in a 'name' and 'controller'...")
|
raise ControllerManagerException("Must pass in a 'name' and 'controller'...")
|
||||||
|
|
||||||
controller.set_controller_context(
|
if name in self.keys():
|
||||||
self._crete_controller_context()
|
raise ControllerManagerException(f"Can't bind controller to registered name of '{name}'...")
|
||||||
)
|
|
||||||
|
controller.set_controller_context( self._crete_controller_context() )
|
||||||
|
|
||||||
self[name] = controller
|
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)
|
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():
|
for key in self.keys():
|
||||||
self[key]._controller_message(event)
|
self[key]._controller_message(event)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application 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__()
|
super(EmitDispatcher, self).__init__()
|
||||||
|
|
||||||
|
|
||||||
def emit(self, event: CodeEvent):
|
def emit(self, event: Event_Factory_Types.CodeEvent):
|
||||||
self.message_all(event)
|
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)
|
self.message_to(controller, event)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ gi.require_version('Gtk', '3.0')
|
|||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from libs.dto.code.code_event import CodeEvent
|
from .event_factory import Event_Factory_Types
|
||||||
|
|
||||||
from .source_view import SourceView
|
from .source_view import SourceView
|
||||||
from .source_file import SourceFile
|
from .source_file import SourceFile
|
||||||
@@ -37,7 +37,7 @@ class TabsWidget(Gtk.ButtonBox):
|
|||||||
def _load_widgets(self):
|
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."""
|
"""Add a tab widget for the given file event."""
|
||||||
if not hasattr(self, 'tabs'):
|
if not hasattr(self, 'tabs'):
|
||||||
return
|
return
|
||||||
@@ -61,7 +61,7 @@ class TabsWidget(Gtk.ButtonBox):
|
|||||||
|
|
||||||
self.tabs.add(tab)
|
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."""
|
"""Remove a tab widget for the given file event."""
|
||||||
if not hasattr(self, 'tabs'):
|
if not hasattr(self, 'tabs'):
|
||||||
return
|
return
|
||||||
@@ -75,7 +75,7 @@ class TabsWidget(Gtk.ButtonBox):
|
|||||||
|
|
||||||
return
|
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."""
|
"""Update tab label for the given file event."""
|
||||||
if not hasattr(self, 'tabs'):
|
if not hasattr(self, 'tabs'):
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user