Code source wiki de Gestion du Glisser Déposer

Modifié par Julien EYMERY le 2015/08/31 11:07

Masquer les derniers auteurs
Julien EYMERY 1.1 1 (((
2 = Introduction =
3 )))
4
5 (% style="color: rgb(0,0,0);" %)La fonctionnalité **(% style="color: rgb(255,102,0);" %)Glisser-Déposer(%%)** consiste à transférer des données entre deux composants graphiques (Liste, Arbre-Liste, Arborescence et Image) à l’aide de la souris.
6 Plus précisément, l’utilisateur clique sur le composant source et déplace la souris au-dessus du composant cible en conservant le bouton appuyé, puis relâche le bouton.
7 Il peut aussi annuler l’opération en appuyant sur la touche Echap.(%%)
8
9 (% style="color: rgb(0,0,0);" %)Les composants peuvent appartenir à des applications ou à des fenêtres différentes.(%%)
10 (((
11 = Scénario usuel =
12 )))
13 * Lorsque l’utilisateur clique sur un objet source avec le bouton gauche ou droit de la souris, l’objet reçoit l’**(% style="color: rgb(255,102,0);" %)évènement GD_DebutGlissement(%%)**.
14 Les propriétés **(% style="color: rgb(255,102,0);" %)GD_ETAT_CLAVIER(%%)** et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)** permettent de savoir quels sont les boutons et les touches enfoncés.
15
16 * Sur cet événement, le développeur utilise les méthodes (% style="color: rgb(255,102,0);" %)**GD_ECRIRE_DONNEES**(%%) et **(% style="color: rgb(255,102,0);" %)GD_EXECUTER_GLISSEMENT(%%)** pour indiquer les données à transférer et démarrer le mécanisme de glisser-déposer.
17 Ces données peuvent être déplacées ou copiées dans l’objet cible.
18
19 {{hardis-info type="note" icon="true"}}
20 (% style="color: rgb(0,0,0);" %)Il faut noter que les (%%)instructions placées après la méthode **(% style="color: rgb(255,102,0);" %)GD_EXECUTER_GLISSEMENT(%%)** ne s’exécutent pas tant que l’action de glisser-déposer n’est pas terminée.
21 {{/hardis-info}}
22
23
24 * Lorsque l’utilisateur déplace la souris en maintenant le bouton appuyé, il peut survoler un objet qui peut être une cible. Un tel objet doit avoir la propriété **(% style="color: rgb(255,102,0);" %)GD_DEPOSE_AUTORISEE(%%)** à **(% style="color: rgb(255,102,0);" %)*VRAI(%%)**. Si ce n’est pas le cas, ou si l’objet survolé ne gère pas le glisser-déposer, le système affiche un panneau d'interdiction comme curseur de souris. Dans un objet cible, les événements suivants sont déclenchés:
25 ** Lorsque la souris entre dans la zone de l’objet cible, ce dernier reçoit un **(% style="color: rgb(255,102,0);" %)évènement GD_EntreeGlissement(%%)**.
26 Sur cet évènement, le développeur peut indiquer à travers la propriété **(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)** de l’objet cible quel serait le résultat de l’opération si l’utilisateur relâchait la souris à ce moment.
27 Le développeur peut utiliser éventuellement les propriétés **(% style="color: rgb(255,102,0);" %)GD_ETAT_CLAVIER(%%)** et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)**, ainsi que la méthode **(% style="color: rgb(255,102,0);" %)GD_DONNEES_DISPONIBLES(%%)** pour déterminer si l’objet cible accepte une copie, un déplacement ou refuse les données.
28 Il doit aussi prendre en compte la propriété GD_ACTIONS_PERMISES, qui contient les actions autorisées par l’objet source (paramètre de la méthode GD_EXECUTER_GLISSEMENT).
29
30 {{hardis-info type="info" icon="true"}}
31 Il n’est pas indispensable de programmer cet événement.
32 {{/hardis-info}}
33
34
35 ** (% style="color: rgb(0,0,0);" %)Lorsque la souris survole la zone de l’objet cible, ce dernier reçoit continuellement des **(% style="color: rgb(255,102,0);" %)événements GD_SurvolGlissement(%%)**.
36 (%%)De même que ci-dessus, le développeur peut indiquer à travers la propriété (% style="color: rgb(0,0,0);" %)**(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)**(%%) de l’objet cible quel serait le résultat de l’opération si l’utilisateur relâchait la souris à ce moment.
37 Le développeur peut utiliser éventuellement les propriétés (% style="color: rgb(255,102,0);" %)**GD_ETAT_CLAVIER**(%%) et **(% style="color: rgb(255,102,0);" %)GD_ETAT_SOURIS(%%)**, et la méthode **(% style="color: rgb(255,102,0);" %)GD_DONNEES_DISPONIBLES(%%)** pour déterminer si l’objet cible accepte une copie, un déplacement ou refuse les données.
38 Il doit aussi prendre en compte la propriété **(% style="color: rgb(255,102,0);" %)GD_ACTIONS_PERMISES(%%)**, qui contient les actions autorisées par l’objet source (paramètre de la **(% style="color: rgb(255,102,0);" %)méthode GD_EXECUTER_GLISSEMENT(%%)**).
39
40
41 ** Lorsque la souris sort de la zone de l’objet cible, ce dernier reçoit un événement GD_SortieGlissement. Il n’est pas indispensable de programmer cet évènement.
42
43
44
45 (% style="margin-left: 30.0px;" %)
46 La (% style="color: rgb(0,0,0);" %)propriété **(% style="color: rgb(255,102,0);" %)GD_ACTION_DEPOSE(%%)** contient l’action indiquée lors de l’événement (% style="color: rgb(255,102,0);" %)**GD_SurvolGlissement**(%%) ((% style="color: rgb(255,102,0);" %)**_GD_ACTION_COPIE**(%%) ou **(% style="color: rgb(255,102,0);" %)_GD_ACTION_DEPLACEMENT(%%)**).
47 Le développeur utilise la **(% style="color: rgb(255,102,0);" %)méthode GD_LIRE_DONNEES(%%)** pour récupérer les données transférées.(%%)
48 * (% style="color: rgb(0,0,0);" %)Dans l’**(% style="color: rgb(255,102,0);" %)événement GD_DebutGlissement(%%)**, la **(% style="color: rgb(255,102,0);" %)méthode GD_EXECUTER_GLISSEMENT(%%)** se termine et le développeur doit supprimer les données transférées de l’objet source dans le cas où l’action a été un déplacement.(%%)
49
50