controller¶
-
class
zaguan.controller.
WebContainerController
¶ Bases:
object
Clase base para los controladores de contenedores web. Controla la interaccion con el browser en ambas direcciones.
Variables: - processors (list) – lista de procesadores.
- inspector (ZaguanInspector) – se instancia solo cuando se usa WebKit version 1.
-
__init__
()¶ Constructor de la clase. Inicializa
WebContainerController.processors
con una lista vacía.
-
add_processor
(url_word, instance=None)¶ Agrega una instancia de la funcion
_inner
a la lista de procesadores para que desde el browser se pueda llamar a metodos de Python. Para mas detalles ver la documentacion de_inner()
.Parameters: - url_word (str) – Clave que linkea una URI con el procesador
instance
. - instance (zaguan.actions.BaseActionController) – Una instancia de
BaseActionController
que debe tener implementados los metodos que se intentaran ejecutar desde el browser para la URI.
-
add_processor.
_inner
(uri)¶ Si alguna parte de la URI coincide con
url_word
entonces procesa el texto restante y lo divide en dos partes: el nombre del método y los datos (parámetros a pasar al metodo). Busca el método en la instancia deBaseActionController
(instance
) y si existe lo ejecuta.Parameters: uri (str) – la URI a parsear. Raises: NotImplementedError – excepcion que se lanza cuando el método que está llamando el browser no fué implementado en la instancia de BaseActionController
.
- url_word (str) – Clave que linkea una URI con el procesador
-
get_browser
(uri, settings=None, debug=False, webkit_version=None, debug_callback=None)¶ Obtiene el browser, el metodo para inyectar JS y la implementacion del wrapper de WebKit. Conecta el método
WebContainerController.on_navigation_requested
al eventoresource-request-starting
del browser, esto es para poder atender a nuevas peticiones de URI.Parameters: Returns: el objeto
WebView
Return type:
Este es el método que se ejecuta cada vez que en el browser se pide cargar una URI. Llama a
WebContainerController.process_uri()
con la URI que obtiene de la request que se pasa como parametro.Los argumentos cambian segun la version de WebKit:
- Version 1: no existe documentacion.
- Version 2: http://lazka.github.io/pgi-docs/WebKit2-4.0/classes/WebView.html#WebKit2.WebView.signals.resource_load_started
-
process_uri
(uri)¶ Por cada procesador registrado manda a procesar la URI.
Parameters: uri (str) – la URI a procesar.