/** * Sends message to the all subscribed widgets. * Name of the event is stored int the $event_obj object * and should be specified. * * Additionally, destination widget id will be checked. * * @param WidgetEvent object to be send. * @return null */ function notify(WidgetEvent $event_obj) { $controller = Controller::getInstance(); $event = $event_obj->getName(); if (!isset($this->events[$event])) { return; } if (!empty($this->subscribers[$event])) { for ($i = 0, $c = count($this->subscribers[$event]); $i < $c; $i++) { $id = $this->subscribers[$event][$i]; if (!isset($id)) { continue; } if (!$event_obj->inDst($id) || ($src_id = $event_obj->getSrc()) && $src_id == $id) { continue; } $controller->getWidget($id)->handleEvent($event_obj); } } }