Skip to content

Ciclo de vida

gdtel-cnig-develop edited this page Mar 17, 2023 · 5 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.

 const 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):
    • Añadir control al mapa, que llama al método addTo del control (4).
  • Cuando 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.

1.INICIO
   1.1. Componentes de la API-CNIG
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API CNIG

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
   • 2.1.1.3. Capas rápidas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

    2.3. Plugins

2.4. Paneles

  ■ Creación de panel desde cero sin controles

  ■ Tutorial Panel de un único control

  ■ Tutorial Panel de un único control con más de un botón

  ■ Tutorial Panel con más de un control

2.5. Eventos

  ■ Gestión de eventos
  ■ Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía de desarrollo de plugins
  > Guía de desarrollo de visualizadores con React
  > Guía de desarrollo de componentes
  > Guía para el desarrollo de API-CNIG
  > Compilación proyecto API-CNIG

Clone this wiki locally