J'ai récemment commencé à travailler sur un projet concernant la construction d'une interface graphique utilisant une forme de langage déclaratif. Ce que je veux dire, c'est que j'ai besoin de décrire une hiérarchie d'objets, sans spécifier le type de widgets GUI qui seront utilisés pour "montrer" cette hiérarchie. Par exemple, pour une hiérarchie existante H en utilisant la notation JSON (ou quelque chose comme ça) :
H =
{
"title" : "Label_1"
"children" :
[
{
"title" : "Label_2"
"children":
[
{
"title": "Field_A"
"type": "Integer"
"value": 10
},
{
"title": "Field_B"
"type": "String"
"value": "YES"
}
]
}
]
}
Quelqu'un pourrait construire une fenêtre simple, qui serait montrée à l'utilisateur en appuyant sur un bouton intitulé "Label_1". La fenêtre pourrait alors s'intituler "Label_2" et comporter deux champs intitulés "Field_A" et "Field_B" acceptant des valeurs entières et booléennes. respectivement.
Quelqu'un d'autre pourrait placer cette hiérarchie sur une liste arborescente, par exemple
--------------------------------------------------------
>Label_1 |
>Label_2 |
>Field_A | 10
>Field_B | YES
Ma première question est la suivante : dois-je construire une sorte d'analyseur de langage pour réaliser quelque chose comme cela ? Pourrais-je utiliser JSON ? Bien que je n'ai pas besoin de supporter des hiérarchies complexes, il est nécessaire de supporter des hiérarchies mutuellement exclusives (quelque chose comme des boutons radio activant/désactivant des options). J'ai l'impression que cela ressemble à une forme d'analyse de langage avec quelques opérateurs. Je suis ingénieur en mécanique et je ne suis pas un programmeur expérimenté.
Merci d'avance pour vos commentaires et votre aide.