2010-03-21 4 views
4

Veuillez me diriger vers quelques tutoriels ou d'autres exemples explicatifs sur comment enregistrer et utiliser les écouteurs de modification avec l'implémentation DOM de Java.Java + DOM: Enregistrement et utilisation d'auditeurs de modification: tutoriels?

Sur le web je ne trouve que des exemples Javascript ou Flex.

Ma cible est de savoir quand un Node a été modifié.

J'ai essayé plusieurs approches, rien ne fonctionne. Se pourrait-il que le DOM de Java ne supporte pas cette fonctionnalité?

+0

Il existe une API, 'org.w3s.dom.events'. Selon l'implémentation DOM, il peut ou non être pris en charge. L'implémentation DOM de la page Web d'hébergement pour une applet disponible via LiveConnect ne la prend pas en charge dans l'implémentation Sun/Oracle. –

+0

Selon la mise en œuvre: c'est le point. Est-ce que ** l'implémentation JDK standard de DOM ** supporte cela? –

Répondre

7

Got it!

Coulée était l'astuce!

Je cherchais des implémentations de org.w3.dom.events.EventTarget, mais il semble que seules les classes internes l'implémentent. Donc, il suffit d'être casted à la main (en supposant simplement que Node instanceof EventTarget).

org.w3c.dom.events.EventListener myModificationListener = 
    new org.w3c.dom.events.EventListener() { 

    @Override 
    public void handleEvent(Event e) { 
     if (e instanceof MutationEvent) { 
     MutationEvent me = (MutationEvent) e; 
     System.out.println("type: " + me.getType() 
      + ", dest: " + me.getTarget()); 
     } 
    } 

    }; 

Node someDomNode = ... 

// here the unusual casting magic happens 
((EventTarget) node).addEventListener(
    "DOMSubtreeModified", // constant 
    myModificationListener, true); 

// modify the node here by appending a child 
// -> listener gets invoked 
Questions connexes