Sous-propriétés et clés de conteneur
Sous-propriétés
De nombreuses propriétés de configuration dans la configuration des composants incluent des sous-propriétés. Une sous-propriété est une propriété contenue dans une autre propriété et n'est souvent pertinente que pour certaines configurations de la propriété parente. Une sous-propriété peut être facultative ou obligatoire, selon le cas.
Voici un exemple : le composant Liste des éléments peut contenir une zone de recherche ; pour activer la zone de recherche, la propriété de configuration enableSearch est définie sur true. Lorsque la zone de recherche est activée, vous pouvez inclure un texte d'information à l'intérieur de la zone de recherche. Pour définir le texte d'information, une sous-propriété searchHintText est disponible pour enableSearch, qui admet une chaîne en entrée. Dans ce cas, la sous-propriété searchHintText n'est pertinente que lorsque enableSearch est défini sur true. Cette sous-propriété est facultative. Si elle n'est pas définie, aucun texte d'information n'est affiché dans la zone de recherche.
Pour référence, voici un exemple de code pour la propriété enableSearch :
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
En revanche, certaines sous-propriétés sont pertinentes quelle que soit la configuration de la propriété parente. Par exemple, pour définir le champ par défaut selon lequel filtrer Liste des éléments, vous pouvez utiliser la propriété de configuration defaultSortFields. Quelle que soit la façon dont cette propriété est configurée, elle peut contenir la sous-propriété defaultSortDirection, ce qui vous permet de définir le tri par défaut, à savoir l'ordre croissant ou décroissant.
Sous-propriétés complexes
Parfois, les sous-propriétés sont plus complexes. Leur profondeur peut dépasser deux couches, ou elles sont susceptibles de changer en fonction des différentes configurations de la propriété.
Voici un exemple plus complexe : vous pouvez configurer le composant Attributs pour afficher les attributs verticalement ou horizontalement en définissant la propriété layout sur horizontal ou sur vertical.
Lorsque layout est défini sur horizontal, il inclut deux sous-propriétés obligatoires, maxHeight et maxWidth. Chacune de ces sous-propriétés admet un entier en entrée et détermine la hauteur et la largeur du composant en pixels.
Lorsque layout est défini sur vertical, il inclut la sous-propriété obligatoire isMultiLine, qui détermine si les attributs sont renvoyés à la ligne dans l'interface utilisateur. (Notez que lorsque layout est défini sur horizontal, les attributs sont automatiquement renvoyés à la ligne.) Lorsque isMultiLine est défini sur true, il possède la sous-propriété obligatoire maxHeight, et lorsque isMultiLine est défini sur false, il dispose de la sous-propriété obligatoire maxWidth. Dans ce cas, les sous-propriétés changent en fonction des configurations définies. Les sous-propriétés atteignent également deux couches de profondeur.
A titre de référence, voici des exemples de codes pour la propriété layout :
Pour layout défini sur horizontal :
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
Pour layout défini sur vertical et isMultiLine défini sur true :
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
}
}
},
"version":"1.0.0",
"value":true
}
}
},
"version":"1.0.0"
}
}
Pour layout défini sur vertical et isMultiLine défini sur false :
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0",
"value":false
}
}
},
"version":"1.0.0"
}
}
Clés de conteneur
Dans le fichier de configuration JSON, toute propriété avec au moins une sous-propriété contient la clé additionalData. Dans la clé additionalData se trouve une autre clé, dite clé de conteneur, qui contient la sous-propriété.
A titre d'exemple, examinons à nouveau la propriété enableSearch :
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
La propriété de niveau le plus élevé est enableSearch, qui contient additionalData. additionalData contient la clé de conteneur itemListSearchDefinition, qui contient la sous-propriété searchHintText.
Une propriété n'a généralement qu'une clé de conteneur, qui contient toutes les sous-propriétés. Toutefois, il peut y avoir des cas où une propriété unique contient plusieurs clés de conteneur, qui contiennent chacune une ou plusieurs sous-propriétés.
Est-ce que cela a été utile ?