-
Notifications
You must be signed in to change notification settings - Fork 2
Ciclo de vida
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.
- Crea panel y le añade los controles
- 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.