Vous êtes sur la page 1sur 15

Vues en arbre parametrables

Spcifications fonctionnelles
Lobjectif de ce projet est de permettre lutilisateur de choisir les colonnes quil souhaite utiliser comme nud dans la vue en arbre. Aujourdhui les colonnes utilises comme nud sont fixes dans le code ADL et transmises avec le contenu du tableau. Lutilisateur ne peut pas modifier les colonnes utilises pour construire larbre.

Rappels de terminologie
La capture dcran ci-dessous dfinit la terminologie autour de la vue en arbre. Larbre est la structure de donnes arborescente principale de la vue. Elle est compose de plusieurs niveaux de nuds. Chaque niveau de nud correspond une colonne de la vue tableau. Le premier niveau est appel racine (root) et ne correspond aucune colonne, il permet juste de rattacher tous les nuds du premier niveau un mme nud parent. Les nuds dun mme niveau correspondent aux valeurs distinctes des donnes contenues dans la colonne et satisfaisant aux critres des niveaux de nuds en amont dans larbre.

Paramtrage de la vue en arbre


Un nouveau bouton sera ajout la barre doutils de la vue en arbre entre le bouton dextension / rduction et le bouton de passage en vue tableau, comme indiqu par la flche ci-dessous.

Ce bouton aura laspect dun bouton de configuration comme le montre licne ci-dessous

Source : http://icones.pro/avance-parametres-avances-reglages-configuration-image-png.html Lorsque lutilisateur cliquera sera ce bouton, une nouvelle boite de dialogue modale sera affiche. Cette boite de dialogue est dcrite en dtail ci-dessous. A son ouverture, cette boite de dialogue sera pr-remplie selon le paramtrage courant de la vue en arbre. Si lutilisateur ferme la boite de dialogue laide du bouton de fermeture en haut droite, la boite de dialogue sera ferme et la vue en arbre ne sera pas modifie (mme action que le bouton Cancel dcrit plus bas).

,,

Cette boite de dialogue sera organise en 4 parties.

Liste des nuds (zone de gauche)

Cette zone est compose de la liste des colonnes nuds et de deux boutons permettant de grer lordre de ces colonnes. La liste des colonnes nuds contiendra la liste des colonnes du tableau IHM servant construire larbre de la vue en arbre. Les libells des colonnes seront affichs (dans la langue du tableau IHM) Les entres de la liste seront tries selon le niveau du nud correspondant dans larbre. Le nud de premier niveau tant affich en premier. Lutilisateur pourra slectionner une ou plusieurs entres dans la liste laide de la souris ou du clavier. Lutilisateur pourra raliser des slections disjointes laide de la touche Control du clavier et de la souris. 10 entres pourront tre affiches simultanment et une scrollbar verticale permettra de naviguer dans la liste.

Les boutons de gestion de lordre des colonnes Up et Down permettront de modifier lordre des colonnes dans la liste et ainsi de configurer le niveau de nud correspondant la colonne dans larbre. Le bouton Up sera activ si une seule colonne est slectionne dans la liste des colonnes nuds et si cette colonne nest pas la premire colonne. Lorsque lutilisateur clique sur le bouton Up la colonne slectionne dans la liste des colonnes nuds est dplace dune position vers le haut. La colonne en question devra rester slectionne aprs son dplacement.

Lexemple ci-dessous illustre lutilisation du bouton Up . Au dpart, ce bouton est dsactiv car aucune colonne nest active dans la liste des colonnes nuds. Lorsque lutilisateur slectionne la colonne Column 3 , les boutons Up et Down sont activs. Si lutilisateur clique sur le bouton Up , la colonne Column 3 passe en premire position dans la liste, le bouton Up devient inactif et le bouton Down reste actif .

Le bouton Down sera activ si une seule colonne est slectionne dans la liste des colonnes nuds et si cette colonne nest pas la dernire de la liste. Lorsque lutilisateur clique sur le bouton down , la colonne slectionne dans la liste des colonnes nuds sera dplace dune position vers le bas. La colonne en question devra rester slectionne aprs son dplacement.

Lexemple ci-dessous illustre le fonctionnement de bouton Down . Lorsque lutilisateur slectionne la colonne Column 3 dans la liste des colonnes nuds, les boutons Up et Down sont activs. Si lutilisateur clique sur le bouton Down , la colonne Column 3 est dplace en dernire position de la liste et le bouton Down est dsactiv. Le bouton up reste activ.

Liste de donnes (zone de droite) La zone de liste de donnes permettra de configurer les colonnes de donnes affiches dans la vue en arbre. Cette zone est compose de la liste des colonnes donnes et de deux boutons permettant de grer lordre daffichage des colonnes de donnes.

Les libells des colonnes seront affichs (dans la langue du tableau IHM) Les entres de la liste seront tries selon leur ordre daffichage dans la partie donne du tableau. Lutilisateur pourra slectionner une ou plusieurs entres dans la liste laide de la souris ou du clavier. Lutilisateur pourra raliser des slections disjointes laide de la touche Control du clavier et de la souris. 10 entres pourront tre affiches simultanment et une scrollbar verticale permettra de naviguer dans la liste. Chaque nom de colonne sera prcd dune boite cocher indiquant si la colonne est affiche ou non. La boite cocher sera indpendante de la slection au sein de la liste comme le montrent les trois exemples ci-dessous.

Dans le premier exemple, les colonnes 2, 4, 7 et 6 sont affiches mais aucune colonne nest slectionne. Dans le second exemple, la colonne 1 est slectionne mais ne sera pas affiche. Dans le troisime exemple, la colonne 4 est slectionne et sera affiche. Si lutilisateur clique sur le libell dune colonne au sein de la liste, la colonne sera slectionne. Si lutilisateur clique sur la boite cocher correspondant une colonne, la boite cocher changera dtat (coche ou dcoche) mais la colonne ne sera pas slectionne.

Dans lexemple suivant, lutilisateur clique sur le libell Column 1 (tape 2) ce qui a pour effet de slectionner la colonne, puis clique sur la case cocher de la colonne Column 2 (tape 3) ce qui la rend non visible dans la vue en arbre tout en gardant la slection sur Column 1 . Enfin, lutilisateur clique sur le libell Column 2 (tape 4) ce qui slectionne cette colonne.

Les deux boutons de gestion de lordre des colonnes de donnes Up et Down permettront de grer lordre daffichage des colonnes de donnes dans la vue en arbre. Ces deux boutons suivront exactement le mme fonctionnement que ceux permettant de grer lordre des colonnes nuds. Interactions des slections entre les deux listes Si des colonnes sont slectionnes dans la liste des colonnes nuds et que lutilisateur slectionne des colonnes dans la liste des colonnes donnes, alors les colonnes slectionnes dans la liste des colonnes nuds seront automatiquement dslectionnes. Inversement, si des colonnes sont slectionnes dans la liste des colonnes donnes et que lutilisateur slectionne des colonnes dans la liste des colonnes nuds, alors les colonnes slectionnes dans la liste des colonnes donnes seront automatiquement dslectionnes. Les boutons daction (zone du milieu) Les deux boutons daction se situant entre les deux listes permettront lutilisateur de passer des colonnes dune liste lautre. Le premier bouton droite vers gauche permettra de passer la et les colonnes slectionnes dans la liste des colonnes donnes vers la liste des colonnes nuds. Ce bouton ne sera activ que si au moins une colonne est slectionne dans la liste des colonnes donnes Si lutilisateur clique sur ce bouton alors o toutes les colonnes slectionnes dans la liste des colonnes donnes seront insres la fin de la liste des colonnes nuds o Les colonnes seront insres dans lordre dans lequel elles apparaissaient dans la liste des colonnes donnes o toutes les colonnes slectionnes seront supprimes de la liste des colonnes donnes. o Les colonnes insres dans la liste des colonnes nuds seront slectionnes

Lexemple ci-dessous illustre le cas o lutilisateur clique sur le bouton droite vers gauche dans le cas o la colonne Column 1 est slectionne.

Le bouton gauche vers droite permettra de faire passer la ou les colonnes slectionnes dans la liste des colonnes nuds vers la liste des colonnes donnes. Ce bouton ne sera activ que si au moins une colonne est slectionne dans la liste des colonnes nuds Si lutilisateur clique sur ce bouton alors o Toutes les colonnes slectionnes dans la liste des colonnes nuds seront insres au dbut de la liste des colonnes donnes o Les colonnes seront insres dans lordre dans lequel elles taient dans la liste des colonnes nuds o Toutes les colonnes insres seront visibles par dfaut (boite cocher coche) o Les colonnes insres seront slectionnes dans la liste des colonnes donnes o Les colonnes seront supprimes dans la liste des colonnes nuds.

Lexemple ci-dessous illustre le passage de la colonne Column 3 de la liste des colonnes nuds la liste des colonnes donnes.

Boutons de validation (zone en bas) La boite de dialogue sera munie de deux boutons Ok et Cancel . Si lutilisateur clique sur le bouton Cancel , la boite de dialogue de configuration de la vue en arbre disparatra et la vue en arbre sera inchange Si lutilisateur clique sur le bouton Ok o Si la liste des colonnes nuds est vide alors une boite de dialogue derreur sera affiche indiquant lutilisateur quau moins une colonne doit tre prsente dans la liste des nuds. La boite de dialogue de configuration devra rester affiche, une fois la boite de dialogue derreur ferme. o Si la liste des colonnes donnes est vide alors une boite de dialogue derreur sera affiche indiquant lutilisateur quun moins une colonne doit tre prsente dans la liste des donnes. La boite de dialogue de configuration devra rester affiche, une fois la boite de dialogue derreur ferme.

Si la liste des colonnes donnes ne contient aucune colonne affiche (toutes les boites cocher sont dcoches) alors une boite de dialogue derreur sera affiche indiquant lutilisateur quune moins une colonne de donnes doit tre visible. La boite de dialogue de configuration devra rester affiche, une fois la boite de dialogue derreur ferme. Sinon, la configuration ralise par lutilisateur sera applique la vue en arbre.

Application de la configuration la vue en arbre


Comme vu ci-dessus, la configuration de la vue en arbre contient les informations suivantes : La liste ordonne des colonnes nuds servant construire larbre de la vue en arbre. Lordre des colonnes figurant dans cette liste indique le niveau du nud correspondant dans larbre La liste ordonne des colonnes afficher dans la partie de donnes de la vue en arbre. Chaque colonne pouvant tre affiche ou non.

Lors de lapplication dune configuration la vue en arbre, larbre sera construit rcursivement de la manire suivante : Le premier niveau de larbre (la racine) sera constitu dun nud unique appel racine La liste des nuds du premier niveau sera constitue de la liste des valeurs distinctes contenues dans la premire colonne de la liste des colonnes nuds. Ces valeurs distinctes seront ordonnes selon lordre naturel de tri de la colonne selon le type de donnes quelle contient (chanes de caractres, dates, valeurs numriques). La liste des nuds de niveau N rattachs un nud du niveau N-1 sera constitue de lensemble des valeurs distinctes de la colonne correspondant au niveau N dont la valeur des colonnes N-1, N-2, 1 sont gales aux valeurs des nuds N-1, N-2 1 de larbre. La liste des nuds de niveau N sera ordonne selon lordre naturel de tri de la colonne N.

Lors de laffichage de la vue en arbre, la colonne contenant larbre lui-mme sera situ en premire position et sera suivi des colonnes de donnes visibles. Chaque feuille de larbre correspondra une unique ligne dans le tableau IHM et elle sera suivie de la liste des valeurs correspondant aux colonnes de donnes configures. Lordre des lignes rattaches une mme feuille sera dfinir par lordre de transmission des donnes du tableau par lADL (ordre des lignes en vue tableau dans la configuration par dfaut). Le nombre de feuilles de larbre devra tre gale au nombre de lignes du tableau en vue en arbre. Toutes les colonnes dclares comme sommables par lADL devront tre pourvues de sous-totaux par niveau de rupture de la vue en arbre comme cest le cas aujourdhui.

Gestion de la configuration de la vue en arbre


La configuration de la vue en arbre (liste des colonnes nuds et liste des colonnes donnes ainsi que leur visibilit) devra tre rattach la notion de configuration de tableau IHM telle que dveloppe en V4.

1) Si lutilisateur modifie la configuration de la vue en arbre en passant par la boite de dialogue de configuration, la configuration courante devra tre marque comme modifie. Afin dviter de dtecter les fausses modifications , on pourra simplifier le problme en admettant que la configuration courante est modifie ds que lutilisateur clique sur le bouton OK de la boite de dialogue de configuration de la vue en arbre. Alors la configuration courant devra tre marque comme modifie (*) dans la liste droulante des configurations 2) Si lutilisateur rinitialise la configuration courant du tableau, la vue en arbre devra galement tre rinitialise (liste des colonnes nud et liste des colonnes donnes)

3) Si lutilisateur slectionne une configuration diffrente laide de la liste droulante des configurations, alors la vue en arbre devra tre reconfigure avec cette nouvelle configuration. 4) Si lutilisateur sauvegarde la configuration courante, alors la configuration de la vue en arbre devra galement tre sauvegarde de manire ce que si cette configuration est rappele par la suite, la vue en arbre soit affiche de la mme manire. 5) Lors du passage de la vue en tableau la vue en arbre, la configuration courante sera applique la vue en arbre. Si cette configuration na pas t pralablement sauvegarde, elle devra rester dans son tat modifi lors du passage la vue arbre. De cette manire si lutilisateur fait une modification sur la configuration de la vue en arbre, puis repasse la vue en tableau, la mme configuration modifie doit tre applique la vue en arbre lorsque lutilisateur revient sur la vue en arbre 6) Si lutilisateur ouvre la boite de dialogue de configuration de la vue en arbre, celle-ci devra tre pr-remplie fidlement la configuration courante de la vue en arbre (liste et ordre des colonnes nuds, liste ordre et visibilit des colonnes donnes).

La configuration par dfaut de la vue en arbre restera fidle aux informations transmises par lADL (liste des nuds et leur ordre, liste des donnes ordre et visibilit).

Spcifications techniques
Algorithme de construction de la vue en arbre
1) Soit MAX le nombre de colonnes slectionnes comme nud 2) Trier les donnes du tableau sur lensemble des colonnes slectionnes comme nud (tri ascendant en respectant lordre des colonnes selon lordre naturel du type de donnes contenues dans la colonne) 3) Pour chaque ligne du tableau a. Pour chaque colonne slectionne comme nud (dans lordre de la slection) i. Si aucun nud na t cr au niveau N, crer un nouveau nud contenant la valeur de la cellule et le rattacher au dernier nud cr au niveau N-1 ii. Sinon si la valeur de la cellule est diffrente de la valeur du dernier nud cr pour le niveau N, alors crer un nouveau nud de niveau N contenant la valeur de la cellule et le rattacher au dernier nud cr de niveau N-1 b. Rattacher la ligne au dernier nud cr de niveau MAX