@Override protected void addEventListener(NodeImpl node,String type,EventListener listener,boolean useCapture){
  if (type == null || type.length() == 0 || listener == null)   return;
  removeEventListener(node,type,listener,useCapture);
  Vector nodeListeners=getEventListeners(node);
  if (nodeListeners == null) {
    nodeListeners=new Vector();
    setEventListeners(node,nodeListeners);
  }
  nodeListeners.addElement(new LEntry(type,listener,useCapture));
  LCount lc=LCount.lookup(type);
  if (useCapture) {
    ++lc.captures;
    ++lc.total;
  }
 else {
    ++lc.bubbles;
    ++lc.total;
  }
}

@ Override protected void addEventListener ( NodeImpl node , String type , EventListener listener , boolean useCapture ) { if ( type == null || type . length ( ) == 0 || listener == null ) return ; removeEventListener ( node , type , listener , useCapture ) ; Vector nodeListeners = getEventListeners ( node ) ; if ( nodeListeners == null ) { nodeListeners = new Vector ( ) ; setEventListeners ( node , nodeListeners ) ; } nodeListeners . addElement ( new LEntry ( type , listener , useCapture ) ) ; LCount lc = LCount . lookup ( type ) ; if ( useCapture ) { ++ lc . captures ; ++ lc . total ; } else { ++ lc . bubbles ; ++ lc . total ; } }
introduced in dom level 2 . < p > register an event listener with this node . a listener may be independently registered as both capturing and bubbling , but may only be registered once per role ; redundant registrations are ignored .
