Preliminary controller layout work for plugin integration; controller base message refactor naming
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
# Lib imports
|
||||
|
||||
# Application imports
|
||||
from .controllers.controller_manager import ControllerManager
|
||||
from libs.controllers.controller_manager import ControllerManager
|
||||
|
||||
from .controllers.files_controller import FilesController
|
||||
from .controllers.tabs_controller import TabsController
|
||||
from .controllers.commands_controller import CommandsController
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
# Python imports
|
||||
|
||||
# Lib imports
|
||||
|
||||
# Application imports
|
||||
from libs.singleton import Singleton
|
||||
|
||||
from libs.controllers.controller_base import ControllerBase
|
||||
from libs.controllers.controller_context import ControllerContext
|
||||
|
||||
from libs.event_factory import Code_Event_Types
|
||||
|
||||
|
||||
|
||||
class ControllerManagerException(Exception):
|
||||
...
|
||||
|
||||
|
||||
|
||||
class ControllerManager(Singleton, dict):
|
||||
def __init__(self):
|
||||
super(ControllerManager, self).__init__()
|
||||
|
||||
|
||||
def _crete_controller_context(self) -> ControllerContext:
|
||||
controller_context = ControllerContext()
|
||||
controller_context.message_to = self.message_to
|
||||
controller_context.message_all = self.message_all
|
||||
|
||||
return controller_context
|
||||
|
||||
def register_controller(self, name: str, controller: ControllerBase):
|
||||
if not name or controller == None:
|
||||
raise ControllerManagerException("Must pass in a 'name' and 'controller'...")
|
||||
|
||||
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: Code_Event_Types.CodeEvent):
|
||||
self[name]._controller_message(event)
|
||||
|
||||
def message_all(self, event: Code_Event_Types.CodeEvent):
|
||||
for key in self.keys():
|
||||
self[key]._controller_message(event)
|
||||
@@ -67,7 +67,7 @@ class FilesController(ControllerBase, list):
|
||||
view = event.view,
|
||||
file = file
|
||||
)
|
||||
self.message_all(eve)
|
||||
self.message(eve)
|
||||
|
||||
self.append(file)
|
||||
|
||||
@@ -105,7 +105,7 @@ class FilesController(ControllerBase, list):
|
||||
file = popped_file,
|
||||
next_file = next_file
|
||||
)
|
||||
self.message_all(eve)
|
||||
self.message(eve)
|
||||
|
||||
return popped_file, next_file
|
||||
|
||||
@@ -127,7 +127,7 @@ class FilesController(ControllerBase, list):
|
||||
file = file,
|
||||
next_file = next_file
|
||||
)
|
||||
self.message_all(eve)
|
||||
self.message(eve)
|
||||
|
||||
self.remove(file)
|
||||
file.close()
|
||||
|
||||
@@ -53,7 +53,7 @@ class TabsController(ControllerBase):
|
||||
tab.get_parent().file.buffer
|
||||
)
|
||||
|
||||
self.message_all(event)
|
||||
self.message(event)
|
||||
|
||||
def close_tab(tab, eve, file):
|
||||
event = Event_Factory.create_event(
|
||||
@@ -61,7 +61,7 @@ class TabsController(ControllerBase):
|
||||
buffer = tab.get_parent().file.buffer
|
||||
)
|
||||
|
||||
self.message_all(event)
|
||||
self.message(event)
|
||||
|
||||
tab = TabWidget()
|
||||
tab.file = event.file
|
||||
|
||||
Reference in New Issue
Block a user