Présentation

Un widget est un élément permettant d'afficher une ou plusieurs informations.

L'affichage d'un widget se fait via une grille ( Voir la page Concept et paramétrage de la grille - Edition - Météo ).

Il existe plusieurs types de widgets:

Description

Ajout d'un nouveau widget

Dans le format, JSON, Le rajout d'un nouveau widget se fait au niveau de la partie "grid_elements".

...    
"grid_elements": [
	{
		DEFINITION DU WIDGET 1
    },
	{
        DEFINITION DU WIDGET 2
    },
    ...
]
...


Définition d'un Widget

Paramètres des widgets

Les widgets vont être définis à l'aide de paramètres composés :

  • du nom 
  • et de la valeur.


...
    {
		"position_x": 0,
        "position_y": 3,
        ...
        }
	},
...


Un paramètre peut être non défini, mais avoir une valeur :

  • Si le paramètre n'est pas présente dans le JSON ou si elle existe, mais que sa valeur est égale à "default", la météo va le considérer comme ayant une valeur non définie et va calculer sa valeur par défaut ( voir le chapitre Calcul de la valeur par défaut ).
    • Dans la définition des widgets, choisir si vous préférez supprimer un paramètre pour qu'il soit à la valeur par défaut, ou explicitement écrire "default" dépendra uniquement de ce que vous trouvez le plus confortable :
      • Ne pas garder un champ réduira la longueur du JSON ;
      • Mettre les champs à "default" vous permettra de ne pas chercher le nom d'un paramètre, si vous voulez lui mettre une valeur ;


Calcul de la valeur d'un paramètre en cascade

La valeur d'un paramètre peut être définie à 3 niveaux différents :

  • Dans le widget ( ce qui servira pour ce widget uniquement ) ;
  • Dans le niveau "layout" d'une grille ( ce qui servira de valeur par défaut de ce paramètre pour cette météo ) ;
  • Dans les fichiers de configurations de la météo ( ces valeurs serviront alors de valeur par défaut de toutes les météos ) ;


La valeur d'un paramètre sera déterminée en parcourant les 3 niveaux dans l'ordre jusqu'à qu'il trouve une valeur définie

  1. le niveau "widget",
  2. le niveau "layout" de la grille,
  3. le niveau "fichier de configuration".


Remarque :

  • Si le paramètre n'est défini à aucun des trois niveaux précédents, le module de météo dispose de valeur par défaut.
  • Il est donc déconseillé de se baser dessus, car au fil des livraisons, nous pourrions être amenés à changer ces valeurs.


Définition des valeurs par défauts d'une météo

Les valeurs par défaut pour une météo vont être définies dans le chapitre "layouts".

  • Il ne faut définir que les valeurs pour lesquelles on souhaite mettre un paramètre par défaut.
  • Certains paramètres ne peuvent avoir de valeur par défaut.
    Ce sera mentionné dans la page spécifique à chaque widget.
    Exemple :
    • position_x ;
    • position_y ;

  • Certains paramètres ne pourront être définis qu'au niveau de la météo pour être sûr que tous les widgets du même type aient le même comportement.
    • Ce sera mentionné dans la page spécifique à chaque widget.


Il y a un chapitre spécifique pour chaque type de widget :

... 
"layouts" : { 
    "title_widget_layout": {
    ... 
    },

    "separator_widget_layout": {
	... 
    },

    "weather_widget_layout" : {
     ...
	},
},
...

Le contenu de ces 3 chapitres est décris dans les pages de chaque widget.

Voir les pages d’édition : 


Exemple


...     
"grids": [
    {
      "nb_tiles_in_width": "default",
      "type": "grid",
      "grid_elements": [
        {
          "position_x": 0,
          "position_y": 0,
          "content": {
            "type": "title_widget",
            "title": "DATACENTER",
            "text_color": "blue"
          }
        }
      ],
      "layouts": {
        "title_widget_layout": {
          "height": 2,
          "content": {
            "text_color": "black"
          }
        }
      }
    }
  ],
 ...

Dans cet exemple: 

  • la couleur du texte du titre sera "blue" car même s'il est défini en "black" dans le niveau "layout", cette valeur sera ignoré car défini dans l'objet.
  • la hauteur sera 2 car définie uniquement dans le niveau "layout" ( non définie dans le widget )
  • la largeur sera celui du fichier de configuration