Skip to content

Ciclo de vida

Proyecto SIG Corporativo de la Junta de Andalucía edited this page Feb 17, 2017 · 2 revisions

Conocida la estructura que organiza los paneles, plugins y controles, veamos ahora el ciclo de vida típico a nivel introductorio, los métodos a los que se hace referencia se describen en detalle en las siguientes secciones de la wiki:

1.- Se instancia un plugin que, en su constructor, define sus atributos.

 var p = new M.plugin.miPlugin();

2.- Se añade el plugin a un mapa. El mapa llama al método addTo del plugin (3).

  mapajs.addPlugin(p);

3.- Facade - Plugin - addTo(map):

  • Asigna su variable mapa, si tiene.
  • Crea los controles que contenga.
    • En su constructor, cada control crea su impl interno.
  • Si tiene o gestiona panel propio:
    • Crea panel y le añade los controles
      • Se registra automáticamente un evento para eliminar un control de Panel en caso de DESTROY del control.
      • Se añade el control al mapa automáticamente, que llama al método addTo del control (4).
    • Añadir el panel al mapa.
  • Si no tiene o no gestiona su propio panel (controles básicos de Mapea):
    • Añadir control al mapa, que llama al método addTo del control (4).
  • Cando los controles se han creado, lanza M.evt.ADDED_TO_MAP

4.- Facade - Control - addTo(map) - en facade/controlbase.js:

  • Asigna su variable mapa.
  • Llama a su método createView(map).
    • Una vez creada la vista, para gestionar eventos puede llamar a addEvents(html)
  • Llama a manageActivation(html)
    • Asigna a this.element_ el html resultante de crear la vista.
    • Si el control tendrá activación/desactivación, lo gestiona.
  • Añade al mapa su implementación - impl.addTo(map)
  • Lanza M.evt.ADDED_TO_MAP

5.- Impl - Control - addTo(map):

  • Asigna su variable mapa (fachada)
  • Declara el resto de lógica que depende de la librería base

Este ciclo de vida es genérico, y se completa con los atributos, métodos y lógica propia de cada plugin y control, que se integra en el punto donde necesite hacerlo cada caso. Un control puede llamar desde su fachada a los métodos de su implementación, únicamente hay que seguir la regla de no llevarse nada dependiente de la librería base a la fachada.