示例#1
0
文件: WForm.php 项目: point/cassea
 function handleEvent(WidgetEvent $event)
 {
     if ($event->getName() == "have_valuechecker" && ($id = $event->getParam('id'))) {
         $this->inner_valuecheckers[$id] = 1;
     }
     parent::handleEvent($event);
 }
示例#2
0
文件: WRoll.php 项目: point/cassea
 /**
  * Method description
  *
  * More detailed method description
  * @param    WidgetEvent
  * @return   void
  */
 function handleEvent(WidgetEvent $event)
 {
     if ($event->getName() == "roll_setlimits") {
         Controller::getInstance()->getDisplayModeParams()->set($this->getId(), $event->getParam('from'), $event->getParam('limit'), $this->getCount());
     }
     parent::handleEvent($event);
 }
示例#3
0
文件: WControl.php 项目: point/cassea
 /**
  * Method description
  *
  * More detailed method description
  * @param    void
  * @return   void
  */
 function preRender()
 {
     if (isset($this->valuechecker)) {
         $this->valuechecker->addWidgetId($this->getId());
         $event = new WidgetEvent("have_valuechecker", $this->getId());
         $event->setParams(array('id' => $this->valuechecker->getId()));
         Controller::getInstance()->getDispatcher()->notify($event);
     }
     parent::preRender();
     if (POSTErrors::hasErrors()) {
         $this->restorePOST();
     }
 }
示例#4
0
文件: WRuler.php 项目: point/cassea
 function handleEvent(WidgetEvent $event)
 {
     if ($event->getName() == "ruler_settotal") {
         $this->setTotalCount($event->getParam('total_count'));
         $this->calc();
         Controller::getInstance()->getDispatcher()->notify(new WidgetEvent("roll_setlimits", $this->getId(), $event->getSrc(), array('from' => ($this->current_page - 1) * $this->res_per_page, "limit" => ($_r = $this->total_count - $this->current_page * $this->res_per_page) < 0 ? $this->res_per_page + $_r : $this->res_per_page)));
     } elseif ($event->getName() == "ruler_has_another_instance") {
         $this->setUseGET(1);
         $controller = Controller::getInstance();
         $controller->getDisplayModeParams()->predicted_from = $controller->getDisplayModeParams()->prdicted_limit = null;
     }
     parent::handleEvent($event);
 }
示例#5
0
 /**
  * method description
  *
  * more detailed method description
  * @param    WidgetEvent $event
  * @return   void
  */
 function handleEvent(WidgetEvent $event)
 {
     if ($event->getName() === "increment_id") {
         $this->do_increment = 0 + $event->getParam('do_increment');
     } elseif ($event->getName() == "all_build_complete") {
         $controller = Controller::getInstance();
         $_w2 = $this;
         $has_roll = false;
         while ($_w2 && ($_p = $controller->getAdjacencyList()->getParentForId($_w2->getId())) !== null) {
             if ($controller->getWidget($_p) instanceof WRoll) {
                 $has_roll = true;
                 break;
             } else {
                 $_w2 = $controller->getWidget($_p);
             }
         }
         if ($has_roll) {
             $controller->getDispatcher()->addSubscriber("increment_id", $this->getId());
             $this->inside_roll = 1;
             $this->do_increment = 1;
         }
     }
 }
示例#6
0
 /**
  * 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);
         }
     }
 }