1 2 57 58 package dom.events; 59 60 import org.w3c.dom.Node ; 61 import org.w3c.dom.events.Event ; 62 import org.w3c.dom.events.EventListener ; 63 import org.w3c.dom.events.MutationEvent ; 64 65 class EventReporter implements EventListener  66 { 67 boolean silent=false; int count=0; 69 String [] phasename={"?","BUBBLING","CAPTURING","AT_TARGET","?"}; 70 71 public void on() 72 { 73 System.out.println("\nEventReporter awakened:\n"); 74 silent=false; 75 } 76 public void off() 77 { 78 System.out.println("\nEventReporter muted\n"); 79 silent=true; 80 } 81 82 public void handleEvent(Event evt) 83 { 84 ++count; 85 if(silent) 86 return; 87 88 System.out.print("EVT "+count+": '"+ 89 evt.getType()+ 90 "' listener '"+((Node )evt.getCurrentTarget()).getNodeName()+ 91 "' target '"+((Node )evt.getTarget()).getNodeName()+ 92 "' while "+phasename[evt.getEventPhase()] + 93 "... "); 94 if(evt.getBubbles()) System.out.print("will bubble"); 95 if(evt.getCancelable()) System.out.print("can cancel"); 96 System.out.print("\n"); 97 if(evt instanceof MutationEvent ) 98 { 99 MutationEvent me=(MutationEvent )evt; 100 System.out.print("\t"); 101 if(me.getRelatedNode()!=null) 102 System.out.print(" relatedNode='"+me.getRelatedNode()+"'"); 103 if(me.getAttrName()!=null) 104 System.out.print(" attrName='"+me.getAttrName()+"'"); 105 System.out.print("\n"); 106 if(me.getPrevValue()!=null) 107 System.out.println("\t prevValue='"+me.getPrevValue()+"'"); 108 if(me.getNewValue()!=null) 109 System.out.println("\t newValue='"+me.getNewValue()+"'"); 110 } 111 } 112 } 113 | Popular Tags |