public function createComponentUserEventsGrid($name)
{
$eventTypes = [null => null] + EventType::getOptions();
$partyTypes = [null => null] + EventParticipationType::getOptions();
$grid = new Grid($this, $name);
$grid->setModel($this->eventService->getUserEventsDataSource($this->getUser()->getIdentity()));
$grid->setPrimaryKey("id");
$grid->setTranslator($this->getTranslator());
$grid->addColumnText('title', 'eventsModule.grid.title')->setCustomRender($this->titleRender)->setTruncate(20)->setSortable()->setFilterText();
$headerTitle = $grid->getColumn('title')->headerPrototype;
$headerTitle->class[] = 'center';
$headerTitle->style["width"] = "20%";
$grid->addColumnText('eventType', "eventsModule.grid.type")->setCustomRender($this->typeRender)->setSortable()->setFilterSelect($eventTypes);
$headerType = $grid->getColumn('eventType')->headerPrototype;
$headerType->class[] = 'center';
$grid->addColumnDate('takePlaceSince', 'eventsModule.grid.takeSince', self::DATETIME_FORMAT)->setCustomRender($this->sinceRender)->setSortable();
$headerSince = $grid->getColumn('takePlaceSince')->headerPrototype;
$headerSince->class[] = 'center';
$grid->addColumnDate('takePlaceTill', 'eventsModule.grid.takeTill', self::DATETIME_FORMAT)->setCustomRender($this->tillRender)->setSortable();
$headerTill = $grid->getColumn('takePlaceTill')->headerPrototype;
$headerTill->class[] = 'center';
$grid->addColumnText("type", "eventsModule.participation.type")->setCustomRender($this->partyTypeRender)->setSortable()->setFilterSelect($partyTypes);
$headerPart = $grid->getColumn('type')->headerPrototype;
$headerPart->class[] = 'center';
$grid->addActionHref("goto", "", "goToEvent")->setIcon("eye-open")->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("eventsModule.grid.view")]));
$grid->setFilterRenderType($this->filterRenderType);
return $grid;
}