-
Notifications
You must be signed in to change notification settings - Fork 0
Controller
alekay2200 edited this page Sep 16, 2022
·
3 revisions
En el módulo controller/abstract_controller.py se encuentra la clase abstracta Controller en la que se deben basar todos los controladores.
Este componente esta destinado a gestionar la lógica de cambios de vistas.
Recibe el conjunto de señales que puede recibir.
Función para controlar las señales que recibe el controlador.
Devuelve el conjunto de señales que puede recibir.
Se asigna un sistema al controlador.
from controller.abstract_controller import Controller
from constants.views_ids import *
from constants.signals import *
from view.home_view import Home_View
from view.message_view import Message_View
from view.attraction_view import Attraction_View
from view.confirmation_view import Confirmation_View
class Band_Controller(Controller):
def __init__(self):
signals = {SIG_CHANGE_VIEW, SIG_RETURN}
super().__init__(signals)
def arrive_signal(self, signal: int, data = None):
if self._system_manager is None: return # If no system manager do nothing
if signal == SIG_CHANGE_VIEW:
view_id = data
if view_id == MESSAGE_ID:
self._system_manager.change_view(Message_View(self._system_manager.get_display()))
elif view_id == ATTRACTION_ID:
self._system_manager.change_view(Attraction_View(self._system_manager.get_display()))
elif view_id == CONFIRMATION_MENU_ID:
self._system_manager.change_view(Confirmation_View(self._system_manager.get_display()))
elif signal == SIG_RETURN:
view_id = self._system_manager.get_view_id()
if view_id == MESSAGE_ID or view_id == ATTRACTION_ID:
self._system_manager.change_view(Home_View(self._system_manager.get_display()))