/** * PUBLIC: * Remove a event listener. */ public void removeListener(DescriptorEventListener listener) { getEventListeners().removeElement(listener); }
/** * PUBLIC: * Listener objects can be registered with the event manager to be notified * when an event occurs on any instance of the descriptor's class. */ public void addListener(DescriptorEventListener listener) { getEventListeners().addElement(listener); setHasAnyEventListeners(true); }
/** * INTERNAL: * Clone the manager and its private parts. */ public Object clone() { DescriptorEventManager clone = null; try { clone = (DescriptorEventManager)super.clone(); clone.setEventSelectors((Vector)getEventSelectors().clone()); clone.setEventMethods((Vector)getEventMethods().clone()); clone.setEventListeners((Vector)getEventListeners()); } catch (Exception exception) { ; } return clone; }
/** * INTERNAL: * Notify the event listeners. */ public void notifyListeners(DescriptorEvent event) { if (hasAnyListeners()) { for (int index = 0; index < getEventListeners().size(); index++) { DescriptorEventListener listener = (DescriptorEventListener)getEventListeners().get(index); notifyListener(listener, event); } } // Also must notify any inherited listeners. if (getDescriptor().isChildDescriptor()) { getDescriptor().getInheritancePolicy().getParentDescriptor().getEventManager().notifyListeners(event); } }