public function __construct(CronkGridTemplateXmlParser $template, AgaviContext $context, $connection = "icinga")
 {
     $this->setTemplate($template);
     $this->setContext($context);
     $this->user = $context->getUser()->getNsmUser();
     $this->connection = $connection;
     $view = $this->readDataSourceDefinition();
     $source = $template->getSection("datasource");
     $this->parser = $context->getModel("Views.ApiDQLView", "Api", array("view" => $view, "parameters" => isset($source["parameters"]) ? $source["parameters"] : array(), "connection" => $connection));
     /**
      * @var IcingaDoctrine_Query
      */
     $this->query = $this->parser->getQuery();
     // Allow setting filterPresets
     if (isset($source["filterPresets"])) {
         try {
             $filter = json_decode($source["filterPresets"], true);
             $filterObj = new IcingaDQLViewFilter();
             $query = $filterObj->getDQLFromFilterArray($filter, $this);
             $this->query->addWhere($query[0], $query[1]);
         } catch (Exception $e) {
             AppKitLogger::warn("Ignoring filterpreset : %s", $source["filterPresets"]);
         }
     }
 }