/**
  * Dispatches the Event on the given target
  *
  * @static
  * @param \object $target
  * @param Event $event
  * @return bool true if at least one listener was called
  */
 public static function dispatchEventOnObject($target, Event $event)
 {
     $event->setCurrentTarget($target);
     if (!$event->getTarget()) {
         $event->setTarget($target);
     }
     $targetListeners = self::getObjectListenersByEventName($target, $event->getName());
     foreach ($targetListeners as $listenerDefinition) {
         $listener = $listenerDefinition[0];
         $targetPhase = $listenerDefinition[1];
         if ($targetPhase && $event->getTarget() == $event->getCurrentTarget() || !$targetPhase) {
             call_user_func($listener, $event);
         }
     }
     //Bublink
     if ($event->getBubble() && method_exists($target, 'getParent')) {
         $parent = $target->getParent();
         if ($parent) {
             self::dispatchEventOnObject($parent, $event);
         }
     }
     return !empty($targetListeners);
 }