Envoyé par : Papagrieng
Date : 31/05/2006 11:32
Bonjour, Dans une opération de drag'n'drop, en mode "move" (couper), je n'arrive pas à savoir où placer le code pour supprimer l'élément de l'emplacement d'origine.
Normalement, au moment où on commence à "dragger", je donne les données. Exemple: transferData.data.addDataForFlavour("text/rdf/Photo",txt);
Puis au moment où l'utilisateur "droppe" l'élément, si l'opération est faite en mode "couper" au lieu de "copier", je dois retirer l'élément de l'emplacement d'origine. Comment faire ?
Merci !
Envoyé par : thefab
Date : 31/05/2006 11:44
Personnelement je le fais de cette manière (code inutile supprimé): je met tout dans l'observateur du drag & drop, drag: je mémorise la source, drop: je supprime si touche Control
var dragAndDropObserver = { // Source du drag & drop source: null, onDragStart: function(evt, transferData, action) { this.source = evt.currentTarget; }, onDrop: function(evt, dropdata, session) { if (!evt.ctrlKey) { // pour une listbox this.source.removeItemAt(this.source.selectedIndex); } };
Ca fonctionne pour les listbox en tout cas.
Envoyé par : Papagrieng
Date : 31/05/2006 12:00
Merci, c'est comme ça que je vais faire dans un premier temps. Mais c'est pas parfait ;-) : Si l'objet est déplacé dans une autre application, tu n'en as jamais connaissance.
Il faudrait peut-être modifier la session (de type nsIDragSession, cf getCurrentSession ), et sa méthode "getData". Cette méthode semble être appelée lorsque le récepteur a besoin des données: ce serait le moment idéal pour lui passer "mes" données et les supprimer.
J'enquête, j'enquête, mais j'imagine qu'il y a un moyen plus simple de le faire...
Envoyé par : thefab
Date : 31/05/2006 12:43
Si l'objet est déplacé dans une autre application, tu n'en as jamais connaissance.
C'est vrai j'avais pas fait attention, merci. Je n'ai pas exploré plus en détail le drag & drop mais je vais aussi jeter un oeil sur nsIDragSession.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.