treeview.bbc
treeview.bbc
DESCRIPTION.
Le module treeview.bbc propose des procédures et des fonctions permettant de gérer une présentation de données dans vue arborescente.
SYNTAXE.
INSTALL @lib$ + "treeview.bbc"
REMARQUES.
Les procédures et fonctions du module treeview.bbc permettent de visualiser des données dans une présentation sous une forme d'arborescence graphique, c'est-à-dire avec des relations parent-enfants, et de gérer l'exploration dans celui-ci avec la souris et/ou le clavier. Le module treeview.bbc gère :
- la structure hiérarchique et le rendu graphique ;
- la navigation avec la souris et/ou le clavier ;
- le scrolling, le développement et/ou la fermeture des éléments.
Actions disponibles depuis la souris et/ou le clavier :
- sélectionner un élément, clic gauche de la souris sur cet élément ou flèches haut et bas du clavier ;
- développer un élément, clic gauche de la souris sur [+] ou flèche vers la droite du clavier ;
- fermer un élément, clic gauche de la souris sur [-] ou flèche vers la gauche du clavier ;
- sélectionner le premier élément de l'arbre, touche home ou PgUp du clavier ;
- sélectionner le dernier élément visible de l'arbre, touche end ou PgDn du clavier ;
- un double clique gauche de la souris sur un élément, développe ou ferme cet élément ;
- l'appui sur une lettre du clavier, sélectionne l'élément suivant commençant par cette lettre ;
- un clique droit de la souris sur n'importe quel élément, ouvre un menu permettant, à l'aide de la souris, de :
- développer cet élément (Expand) ;
- fermer cet élément (Compress) ;
- copier l'intitulé de cet élément dans le presse papier (Copy) ;
- sauvegarder l'intégralité de l'arbre, et indiquer l'emplacement du fichier (Save) ;
- fermer le menu de l'arbre et retourner 1 (Run again) ;
- ouvrir une fenêtre d'information (Info) ;
- stopper la surveillance des événements sur l'arbre, et retourner 2 (Quit).
Note : ce module ne semble pas disposer de documentation et être toujours en phase de développement expérimentale.
Voici la suite, minimale, des actions qu'il faudra respecter pour créer et utiliser une arborescence dans votre application. Les procédures et fonctions seront détaillées dans les pages qui leur sont dédiées.
1. Initialisation des prérequis.
INSTALL @lib$ + "treeview.bbc" : REM - importe les procedures et fonctions du modules dans le script
MODE 8 : REM - bascule la fenetre de sortie avec un mode graphique
VDU 26 : REM - restaure les paramettres de surfaces textuelle et graphique par défaut
VDU 23,23,10;0;0;0;0; : REM - optimisation du rendu des polices sous SDL
CLS : COLOUR 12 : COLOUR 142 : REM - modifie les couleurs de la surface textuelle
CLG : GCOL 12 : GCOL 142 : REM - modifie les couleurs de la surface graphique
2. Création d'un arbre de visualisation.
TRV_Arbre%% = FN_TVcreatetree( @lib$ + "DejaVuSans" , 12 ) : REM - cree un nouvel arbre avec une police specifique
PROC_Elements( TRV_Arbre%% ) : REM - appel la procédure qui placera les elements dans l'arbre
2. Gestionnaire d'événement de l'arbre.
REPEAT : REM - debute un boucle pour la survaillance des actions sur l'arbre
kelement%% = FN_TVviewtree( TRV_Arbre%% ) : REM - attend une action sur l'arbre pour continuer le programme
VDU 4 : PRINT TAB( 0 , 15 ) "Identifiant : " ; kelement%% : REM - affiche la valeur retournee par FN_TVviewtree()
PRINT "Appuyez sur entree pour continuer ..." : kpause$ = GET$
PRINT TAB( 0 , 15 ) "En attente ... " : PRINT TAB( 0 , 16 ) STRING$( 70 , " " )
UNTIL kelement%% = 2 : REM - sort de la boucle de la surveillance de l'arbre
CLS : CLG : REM - efface l'arbre
PRINT ' "Test du module treeview.bbc termine."
PRINT " Au revoir."
END
4. Mise en place des données dans l'arbre.
DEF PROC_Elements( TRV_Arbre%% )
LOCAL klevel1%% , klevel2%% , klevel3%%
klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 01", 10 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 A" , 1010 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 B" , 1020 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 C" , 1030 )
klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Ca" , 103010 )
klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cb" , 103020 )
klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cc" , 103030 )
klevel3%% = FN_TVinsertitem( TRV_Arbre%% , klevel2%% , "Niveau 01 Cd" , 103040 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 01 D" , 1040 )
klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 02" , 20 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 02 A" , 2010 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 02 B" , 2020 )
klevel1%% = FN_TVinsertitem( TRV_Arbre%% , 0 , "Niveau 03" , 30 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 A" , 3010 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 B" , 3020 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 C" , 3030 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 D" , 3040 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 E" , 3050 )
klevel2%% = FN_TVinsertitem( TRV_Arbre%% , klevel1%% , "Niveau 03 F" , 3060 )
ENDPROC
L'insertion d'éléments dans l'arbre se référant à des adresses mémoires, il est important de la faire dans une procédure personnalisée dédié, où l'on pourra utiliser des variables locales.
Cette version minimaliste de l'utilisation du module treeview.bbc ne retournera que deux valeurs : 1, si l'utilisateur choisi l'option Run again dans le menu ou 2, si l'utilisateur choisi l'option Quit dans le menu. Voir la fonction FN_TVviewtree() pour obtenir l'identifiant de l'élément de l'arbre qui a été sélectionné.
Le module doit être chargé depuis votre programme à l'aide de l'instruction : INSTALL @lib$ + "treeview.bbc"
LISTE DES PROCEDURES DU MODULE.
FN_TVcreatetree() : crée et initialise un nouvel arbre.
FN_TVviewtree() : attend une action, provenant de la souris ou du clavier, sur l'arbre.
FN_TVinsertitem() : place un nouvel élément dans un arbre.
PROC_TVmodifyitem() : modifie l'intitulé et/ou l'identifiant d'un élément.
PROC_TVreaditem() : retourne l'intitulé et l'identifiant d'un élément.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.