Example #1
0
  protected void unregister(CoreEventRegistration reg) {
    ICoreEventSource source = reg.getSource();
    if (source == null) {
      unregisterGlobalRegistration(reg);
      return;
    }

    if (managers == null || managers.isEmpty()) return;

    CoreEventManager manager = managers.get(source);
    if (manager == null) return;

    manager.remove(reg);
    if (manager.isEmpty()) {
      managers.remove(source);
    }
    if (managers.isEmpty()) {
      managers = null;
    }

    if (reg.isOnce()) {
      String eventType = reg.getEventType();
      ICoreEventListener listener = reg.getListener();
      dispatch(source, eventType, new CoreEvent(source, eventType, listener, null), false);
    }
  }
Example #2
0
 private void unregisterGlobalRegistration(CoreEventRegistration reg) {
   if (globalManager != null) {
     globalManager.remove(reg);
   }
   if (globalManager.isEmpty()) {
     globalManager = null;
   }
 }
Example #3
0
 private void dispatchGlobal(String eventType, CoreEvent event, boolean notifyOnceListeners) {
   if (globalManager != null) {
     if (notifyOnceListeners) {
       globalManager.dispatchCoreEvent(eventType, event);
     } else {
       globalManager.dispatchCoreEvent(eventType, event, CoreEventRegistrationList.ONLY_NORMAL);
     }
   }
   if (getParent() != null && getParent() instanceof CoreEventSupport) {
     ((CoreEventSupport) getParent()).dispatchGlobal(eventType, event, notifyOnceListeners);
   }
 }
Example #4
0
 private ICoreEventRegistration registerListener(
     ICoreEventSource source, String eventType, ICoreEventListener listener, boolean once) {
   CoreEventRegistration reg = new CoreEventRegistration(this, source, eventType, listener, once);
   if (managers == null) managers = new HashMap<ICoreEventSource, CoreEventManager>();
   CoreEventManager manager = managers.get(source);
   if (manager == null) {
     manager = new CoreEventManager();
     managers.put(source, manager);
   }
   manager.add(reg);
   return reg;
 }
Example #5
0
  private void dispatchBySource(
      ICoreEventSource source, String eventType, CoreEvent event, boolean notifyOnceListeners) {
    if (managers == null || managers.isEmpty()) return;

    CoreEventManager manager = managers.get(source);
    if (manager == null || manager.isEmpty()) return;

    if (notifyOnceListeners) {
      manager.dispatchCoreEvent(eventType, event);
    } else {
      manager.dispatchCoreEvent(eventType, event, CoreEventRegistrationList.ONLY_NORMAL);
    }
  }
Example #6
0
 private ICoreEventRegistration registerGlobalListener(
     String eventType, ICoreEventListener listener, boolean once) {
   CoreEventRegistration reg = new CoreEventRegistration(this, null, eventType, listener, once);
   if (globalManager == null) globalManager = new CoreEventManager();
   globalManager.add(reg);
   return reg;
 }
Example #7
0
 public boolean hasOnceListeners(ICoreEventSource source, String eventType) {
   if (managers == null) return false;
   CoreEventManager manager = managers.get(source);
   return manager != null && manager.hasOnceListeners(eventType);
 }