IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

Objet Ext.dd.DropZone et les events


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 194
    Par défaut Objet Ext.dd.DropZone et les events
    Bonjour,

    Afin d'effectuer des opération de drag&drop j'utilise cette objet. L'event notifyDrop me permet de savoir quand mon élément est lâché il renvoie true si il a été lâché où il faut sinon false (d'après la doc).

    Je ne vois pas comment récupérer la valeur renvoyé par une fonction anonyme lancé par l'événement, c'est peut être simplement un soucis de javascript.

    Etant donné la syntaxe suivante comment puis-je récupérer le retour de ma fonction afin d'effectuer le traitement adéquate?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var elementDropTarget = new Ext.dd.DropZone(container, {
    	ddGroup     : 'gridDD',
    	notifyDrop:function(source, e, data){
                 //traitement
    	     }
    	});
    Cordialement.

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    ça n'a rien à voir avec les fonctions anonymes

    anonymes où pas les fonctions toujours des fonction et leur comportement ne change pas. il n'y a aucune différence entre une fonction anonyme et un fonction nommée.
    le nom d'une fonction est juste une variable qui contient une référence à une fonction les deux déclaration suivante sont identiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function toto() {}
    toto = function () {}
    ce que tu cherche si j'ai bien compris la question c'est comment récupérer la valeur retournée par une fonction lors de la gestions d'un évènement
    ICI le dorp

    ce qu'il faut comprendre c'est le fonctionnement des évènements
    c'est vrai pour tous modèle de programmation évènementielle.

    dans un programme classique (linéraire) le déroulement des fonction se fait par de simples appel on peut donc dérouler pas à pas en fonction des valeur des donnée le programme.

    dans un système évènementiel ce n'est pas le cas. le système démarre attends des évènements lorsqu'un évènement survient le système appelle le handler associé (I.E. exécute la ou les fonctions associée à l'évènement)

    à l'intérieur de ces fonction c'est un programme classique les fonction s'appelle mutuellement.

    lorsque le handler se termine la main est rendue au système qui arrête le traitement de l'évènement

    lorsqu'il n'y a plus de traitement il n'y a aucun code pour récupérer une valeur quelle qu'elle soit. ça n'a aucun sens.

    c'est le cas du DD
    l'évènement capté par le système est le dépôt dans la zone de drop

    on peu envisager plusieurs stratégie pour rendre le système souple

    premier solution basique. on ne gère que le Drop est la méthode associé se débrouille pour faire ce qui est nécessaire. par exemple dans un arbre => ajouter un nœud.

    mais souvent on veux pouvoir intervenir savoir si oui ou non c'est bien l'action désirée, le type de donnée est correcte etc.

    on peut alors choisir de gérer plusieurs évènements comme BeforeDrop, Drop, AfterDrop on attache ainsi une méthode à chaque partie la difficulté est de faire suivre d'évènement en évènement les données associée à l'action globale de DROP

    une autre solution celle Utilisé dans le composant DD de ExtJS
    consiste à mettre en place un Handler interne au composant le développeur ne peux pas changer le handler c'est la méthode standard du composant qui s'exécute lors de l'évènement DROP

    cette méthode va faire appel à d'autres méthodes fournies par le développeur par exemple une méthode before et une after qui seront appelé par le handler au début et à la fin du traitement de l'évènement. ainsi l'action peut être personnalisé mais le cœur du traitement reste géré par le composant.

    dans ExtJS la méthode notifyDrop (qui n'est pas anonyme puisqu'elle à un nom) est appelé au début du traitement. le Handler récupère la valeur de retour de cette fonction pour savoir s'il continu ou non le traitement de l'évènement.

    une fois que la méthode rend la main au handler c'est le Coeur d'ExtJS qui termine sa procédure impossible donc de récupérer la valeur de la méthode notifyDrop


    Par contre dans le corps de la methode tu es libre de faire ce que tu veux
    par exemple stocker la valeur que la méthode VA retourner (avant qu'elle ne le fasse) dans un variable ou un objet

    petit aparté ta fonction n'a rien d'anonyme puisque son nom est exactement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elementDropTarget.notifyDrop
    tu peux d'ailleurs l'exécuter hors de la gestions des évènement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elementDropTarget.notifyDrop(elementDrag, anEvent, myObject);
    ça ne sert à rien mais c'est possible

    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SDL - Utiliser les Events sans video.
    Par AliceD dans le forum SDL
    Réponses: 6
    Dernier message: 20/07/2006, 17h32
  2. [Forms-PJC]Les events en dehors de mon wrapper
    Par patmaba dans le forum Forms
    Réponses: 13
    Dernier message: 16/06/2006, 12h05
  3. Capturer les event de ma souris en dehors de mon appl
    Par bpy1401 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/07/2005, 16h59
  4. les event de IBQuery pour activer,desactiver la Transaction?
    Par amad206 dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/03/2005, 14h12
  5. Gérer les events d'un tableau de boutons
    Par lord_kalipsy dans le forum wxWidgets
    Réponses: 7
    Dernier message: 20/10/2004, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo