Preliminary controller layout work for plugin integration; controller base message refactor naming
This commit is contained in:
@@ -3,7 +3,8 @@
|
|||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from .controllers.controller_manager import ControllerManager
|
from libs.controllers.controller_manager import ControllerManager
|
||||||
|
|
||||||
from .controllers.files_controller import FilesController
|
from .controllers.files_controller import FilesController
|
||||||
from .controllers.tabs_controller import TabsController
|
from .controllers.tabs_controller import TabsController
|
||||||
from .controllers.commands_controller import CommandsController
|
from .controllers.commands_controller import CommandsController
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class FilesController(ControllerBase, list):
|
|||||||
view = event.view,
|
view = event.view,
|
||||||
file = file
|
file = file
|
||||||
)
|
)
|
||||||
self.message_all(eve)
|
self.message(eve)
|
||||||
|
|
||||||
self.append(file)
|
self.append(file)
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ class FilesController(ControllerBase, list):
|
|||||||
file = popped_file,
|
file = popped_file,
|
||||||
next_file = next_file
|
next_file = next_file
|
||||||
)
|
)
|
||||||
self.message_all(eve)
|
self.message(eve)
|
||||||
|
|
||||||
return popped_file, next_file
|
return popped_file, next_file
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ class FilesController(ControllerBase, list):
|
|||||||
file = file,
|
file = file,
|
||||||
next_file = next_file
|
next_file = next_file
|
||||||
)
|
)
|
||||||
self.message_all(eve)
|
self.message(eve)
|
||||||
|
|
||||||
self.remove(file)
|
self.remove(file)
|
||||||
file.close()
|
file.close()
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class TabsController(ControllerBase):
|
|||||||
tab.get_parent().file.buffer
|
tab.get_parent().file.buffer
|
||||||
)
|
)
|
||||||
|
|
||||||
self.message_all(event)
|
self.message(event)
|
||||||
|
|
||||||
def close_tab(tab, eve, file):
|
def close_tab(tab, eve, file):
|
||||||
event = Event_Factory.create_event(
|
event = Event_Factory.create_event(
|
||||||
@@ -61,7 +61,7 @@ class TabsController(ControllerBase):
|
|||||||
buffer = tab.get_parent().file.buffer
|
buffer = tab.get_parent().file.buffer
|
||||||
)
|
)
|
||||||
|
|
||||||
self.message_all(event)
|
self.message(event)
|
||||||
|
|
||||||
tab = TabWidget()
|
tab = TabWidget()
|
||||||
tab.file = event.file
|
tab.file = event.file
|
||||||
|
|||||||
@@ -30,9 +30,12 @@ class ControllerBase(Singleton, EmitDispatcher):
|
|||||||
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(self, event: BaseEvent):
|
||||||
|
return self.controller_context.message(event)
|
||||||
|
|
||||||
def message_to(self, name: str, event: BaseEvent):
|
def message_to(self, name: str, event: BaseEvent):
|
||||||
return self.controller_context.message_to(name, event)
|
return self.controller_context.message_to(name, event)
|
||||||
|
|
||||||
def message_all(self, event: BaseEvent):
|
def message_to_selected(self, names: list[str], event: BaseEvent):
|
||||||
return self.controller_context.message_all(event)
|
for name in names:
|
||||||
|
self.controller_context.message_to_selected(name, event)
|
||||||
|
|||||||
@@ -17,8 +17,11 @@ class ControllerContext:
|
|||||||
super(ControllerContext, self).__init__()
|
super(ControllerContext, self).__init__()
|
||||||
|
|
||||||
|
|
||||||
|
def message(self, event: BaseEvent):
|
||||||
|
raise ControllerContextException("Controller Context 'message' must be overriden by Controller Manager...")
|
||||||
|
|
||||||
def message_to(self, name: str, event: BaseEvent):
|
def message_to(self, name: str, event: BaseEvent):
|
||||||
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: BaseEvent):
|
def message_to_selected(self, name: list, event: BaseEvent):
|
||||||
raise ControllerContextException("Controller Context 'message_all' must be overriden by Controller Manager...")
|
raise ControllerContextException("Controller Context 'message_to_selected' must be overriden by Controller Manager...")
|
||||||
|
|||||||
@@ -3,12 +3,11 @@
|
|||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from libs.singleton import Singleton
|
from ..singleton import Singleton
|
||||||
|
from ..event_factory import Code_Event_Types
|
||||||
|
|
||||||
from libs.controllers.controller_base import ControllerBase
|
from .controller_base import ControllerBase
|
||||||
from libs.controllers.controller_context import ControllerContext
|
from .controller_context import ControllerContext
|
||||||
|
|
||||||
from libs.event_factory import Code_Event_Types
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -25,7 +24,7 @@ class ControllerManager(Singleton, dict):
|
|||||||
def _crete_controller_context(self) -> ControllerContext:
|
def _crete_controller_context(self) -> ControllerContext:
|
||||||
controller_context = ControllerContext()
|
controller_context = ControllerContext()
|
||||||
controller_context.message_to = self.message_to
|
controller_context.message_to = self.message_to
|
||||||
controller_context.message_all = self.message_all
|
controller_context.message = self.message
|
||||||
|
|
||||||
return controller_context
|
return controller_context
|
||||||
|
|
||||||
@@ -46,6 +45,6 @@ class ControllerManager(Singleton, dict):
|
|||||||
def message_to(self, name: str, event: Code_Event_Types.CodeEvent):
|
def message_to(self, name: str, event: Code_Event_Types.CodeEvent):
|
||||||
self[name]._controller_message(event)
|
self[name]._controller_message(event)
|
||||||
|
|
||||||
def message_all(self, event: Code_Event_Types.CodeEvent):
|
def message(self, event: Code_Event_Types.CodeEvent):
|
||||||
for key in self.keys():
|
for key in self.keys():
|
||||||
self[key]._controller_message(event)
|
self[key]._controller_message(event)
|
||||||
@@ -13,7 +13,7 @@ class EmitDispatcher:
|
|||||||
|
|
||||||
|
|
||||||
def emit(self, event: BaseEvent):
|
def emit(self, event: BaseEvent):
|
||||||
self.message_all(event)
|
self.message(event)
|
||||||
|
|
||||||
def emit_to(self, controller: str, event: BaseEvent):
|
def emit_to(self, controller: str, event: BaseEvent):
|
||||||
self.message_to(controller, event)
|
self.message_to(controller, event)
|
||||||
|
|||||||
3
src/libs/dto/plugins/__init__.py
Normal file
3
src/libs/dto/plugins/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
"""
|
||||||
|
Libs Plugin DTO(s) Package
|
||||||
|
"""
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
"""
|
|
||||||
Gtk Plugins DTO Module
|
|
||||||
"""
|
|
||||||
@@ -6,8 +6,8 @@ from os.path import join
|
|||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from .dto.manifest_meta import ManifestMeta
|
from libs.dto.plugins.manifest_meta import ManifestMeta
|
||||||
from .dto.manifest import Manifest
|
from libs.dto.plugins.manifest import Manifest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class PluginBaseException(Exception):
|
|||||||
|
|
||||||
|
|
||||||
class PluginBase:
|
class PluginBase:
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super(PluginBase, self).__init__(*args, **kwargs)
|
||||||
self.name = "Example Plugin" # NOTE: Need to remove after establishing private bidirectional 1-1 message bus
|
self.name = "Example Plugin" # NOTE: Need to remove after establishing private bidirectional 1-1 message bus
|
||||||
# where self.name should not be needed for message comms
|
# where self.name should not be needed for message comms
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ import gi
|
|||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from .dto.manifest_meta import ManifestMeta
|
from libs.dto.plugins.manifest_meta import ManifestMeta
|
||||||
|
|
||||||
from .plugin_reload_mixin import PluginReloadMixin
|
from .plugin_reload_mixin import PluginReloadMixin
|
||||||
from .manifest_manager import ManifestManager
|
from .manifest_manager import ManifestManager
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user