.. Authors :
.. mviewer team
.. _customcontrol:
Développer un customControl
###########################
Les **Customs Controls** permettent de créer des interactions entre l'utilisateur et un layer. Si on souhaite créer une nouvelle fonctionnalité en lien avec une couche particulière, c'est la solution à privilégier.
Le mécanisme de customControl permet le développement à façon de solution nouvelle sans modifier le coeur de mviewer.
.. admonition:: Convention
Un custom control consiste en deux fichiers - **JavaScript** et **HTML**. Ces deux fichiers doivent impérativement respecter la règle de nommage suivante :
- **layerid**.html
- **layerid**.js
- *où layerid correspond à l'id du layer tel que définit dans le config.xml.*
L'emplacement de ces fichiers doit être précisé dans le config.xml avec le paramètre ``customcontrolpath=""``
.. sidebar:: Exemple :
Le custom control - encadré rouge - s'affiche par défaut dans la légende en dessous des attributions :
.. image:: ../_images/develop/customcontrol_ihm.png
:alt: heatmap
:align: center
Ecrire le code - html
**************************
Le bloc écrit en HTML s'affichera dans le panneau légende associé à la couche. Il est possible de créer des éléments HTML qui permettront à l'utilisateur d'interagir avec la couche associée.
Dans l'exemple suivant, on affiche deux sliders qui vont nous permettre de modifier dynamiquement l'affichage de notre couche.
.. code-block:: HTML
:caption: customcontrol.html
:emphasize-lines: 7-8
*Tooltip*
Si vous souhaitez utiliser une infobulle (tooltip), vous pouvez utiliser les paramètres `title` et `tooltip` :
.. code-block:: HTML
:caption: customcontrol.html
:emphasize-lines: 7-8