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 de BaseActionController (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.
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 evento resource-request-starting del browser, esto es para poder atender a nuevas peticiones de URI.

Parameters:
  • uri (str) – the URI of the HTML to open with the web view.
  • settings (list) – the settings send to webkit.
  • debug (boolean) – to indicate if it should output debug and add context menu and inspector.
  • webkit_version (int) – the webkit gtk version (1 or 2)
Returns:

el objeto WebView

Return type:

WebKit2.WebView

on_navigation_requested(webview, resource, request, *args)

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:

process_uri(uri)

Por cada procesador registrado manda a procesar la URI.

Parameters:uri (str) – la URI a procesar.
send_command(command, data=None)

Inyecta la ejecucion de un comando en el browser.

Parameters:
  • command (str) – el comando a ejecutar en el browser.
  • data (any) – los datos que se envian como parametros del comando.
set_screen(screen, **kwargs)

Envia el comando ‘change_screep’ al broswer.

Parameters:
  • screen (str) – pantalla a la que se quiere cambiar.
  • kargs – otros argumentos