public function createComponentFilter()
	{
		$form = new Form($this, 'filter');

		$form->setMethod(static::$form_method);

		$form->setTranslator($this->getTranslator());

		/**
		 * InlineEdit part
		 */
		$inline_edit_container = $form->addContainer('inline_edit');

		if ($this->inlineEdit instanceof InlineEdit) {
			$inline_edit_container->addSubmit('submit', 'ublaboo_datagrid.save')
				->setValidationScope([$inline_edit_container]);
			$inline_edit_container->addSubmit('cancel', 'ublaboo_datagrid.cancel')
				->setValidationScope(false);

			$this->inlineEdit->onControlAdd($inline_edit_container);
			$this->inlineEdit->onControlAfterAdd($inline_edit_container);
		}

		/**
		 * InlineAdd part
		 */
		$inline_add_container = $form->addContainer('inline_add');

		if ($this->inlineAdd instanceof InlineEdit) {
			$inline_add_container->addSubmit('submit', 'ublaboo_datagrid.save')
				->setValidationScope([$inline_add_container]);
			$inline_add_container->addSubmit('cancel', 'ublaboo_datagrid.cancel')
				->setValidationScope(false)
				->setAttribute('data-datagrid-cancel-inline-add', true);

			$this->inlineAdd->onControlAdd($inline_add_container);
			$this->inlineAdd->onControlAfterAdd($inline_add_container);
		}

		/**
		 * ItemDetail form part
		 */
		$items_detail_form = $this->getItemDetailForm();

		if ($items_detail_form instanceof Nette\Forms\Container) {
			$form['items_detail_form'] = $items_detail_form;
		}

		/**
		 * Filter part
		 */
		$filter_container = $form->addContainer('filter');

		foreach ($this->filters as $filter) {
			$filter->addToFormContainer($filter_container);
		}

		if (!$this->hasAutoSubmit()) {
			$filter_container['submit'] = $this->getFilterSubmitButton();
		}

		/**
		 * Group action part
		 */
		$group_action_container = $form->addContainer('group_action');

		if ($this->hasGroupActions()) {
			$this->getGroupActionCollection()->addToFormContainer($group_action_container);
		}

		if (!$form->isSubmitted()) {
			$this->setFilterContainerDefaults($form['filter'], $this->filter);
		}

		/**
		 * Per page part
		 */
		$form->addSelect('per_page', '', $this->getItemsPerPageList())
			->setTranslator(null);

		if (!$form->isSubmitted()) {
			$form['per_page']->setValue($this->getPerPage());
		}

		$form->addSubmit('per_page_submit', 'ublaboo_datagrid.per_page_submit')
			->setValidationScope([$form['per_page']]);

		$form->onSubmit[] = [$this, 'filterSucceeded'];
	}
public function createComponentFilter()
	{
		$form = new Form($this, 'filter');

		$form->setMethod(static::$form_method);

		$form->setTranslator($this->getTranslator());

		/**
		 * InlineEdit part
		 */
		$inline_edit_container = $form->addContainer('inline_edit');

		if ($this->inlineEdit instanceof InlineEdit) {
			$inline_edit_container->addSubmit('submit', 'ublaboo_datagrid.save')
				->setValidationScope([$inline_edit_container]);
			$inline_edit_container->addSubmit('cancel', 'ublaboo_datagrid.cancel')
				->setValidationScope(false);

			$this->inlineEdit->onControlAdd($inline_edit_container);
			$this->inlineEdit->onControlAfterAdd($inline_edit_container);
		}

		/**
		 * InlineAdd part
		 */
		$inline_add_container = $form->addContainer('inline_add');

		if ($this->inlineAdd instanceof InlineEdit) {
			$inline_add_container->addSubmit('submit', 'ublaboo_datagrid.save')
				->setValidationScope([$inline_add_container]);
			$inline_add_container->addSubmit('cancel', 'ublaboo_datagrid.cancel')
				->setValidationScope(false)
				->setAttribute('data-datagrid-cancel-inline-add', true);

			$this->inlineAdd->onControlAdd($inline_add_container);
			$this->inlineAdd->onControlAfterAdd($inline_add_container);
		}

		/**
		 * ItemDetail form part
		 */
		$items_detail_form = $this->getItemDetailForm();

		if ($items_detail_form instanceof Nette\Forms\Container) {
			$form['items_detail_form'] = $items_detail_form;
		}

		/**
		 * Filter part
		 */
		$filter_container = $form->addContainer('filter');

		foreach ($this->filters as $filter) {
			$filter->addToFormContainer($filter_container);
		}

		if (!$this->hasAutoSubmit()) {
			$filter_container['submit'] = $this->getFilterSubmitButton();
		}

		/**
		 * Group action part
		 */
		$group_action_container = $form->addContainer('group_action');

		if ($this->hasGroupActions()) {
			$this->getGroupActionCollection()->addToFormContainer($group_action_container);
		}

		if (!$form->isSubmitted()) {
			$this->setFilterContainerDefaults($form['filter'], $this->filter);
		}

		/**
		 * Per page part
		 */
		$form->addSelect('per_page', '', $this->getItemsPerPageList())
			->setTranslator(null);

		if (!$form->isSubmitted()) {
			$form['per_page']->setValue($this->getPerPage());
		}

		$form->addSubmit('per_page_submit', 'ublaboo_datagrid.per_page_submit')
			->setValidationScope([$form['per_page']]);

		$form->onSubmit[] = [$this, 'filterSucceeded'];
	}
public function createComponentFilter ( ) { $ form = new Form ( $ this , 'filter' ) ; $ form -> setMethod ( static :: $ form_method ) ; $ form -> setTranslator ( $ this -> getTranslator ( ) ) ; /**
		 * InlineEdit part
		 */ $ inline_edit_container = $ form -> addContainer ( 'inline_edit' ) ; if ( $ this -> inlineEdit instanceof InlineEdit ) { $ inline_edit_container -> addSubmit ( 'submit' , 'ublaboo_datagrid.save' ) -> setValidationScope ( [ $ inline_edit_container ] ) ; $ inline_edit_container -> addSubmit ( 'cancel' , 'ublaboo_datagrid.cancel' ) -> setValidationScope ( false ) ; $ this -> inlineEdit -> onControlAdd ( $ inline_edit_container ) ; $ this -> inlineEdit -> onControlAfterAdd ( $ inline_edit_container ) ; } /**
		 * InlineAdd part
		 */ $ inline_add_container = $ form -> addContainer ( 'inline_add' ) ; if ( $ this -> inlineAdd instanceof InlineEdit ) { $ inline_add_container -> addSubmit ( 'submit' , 'ublaboo_datagrid.save' ) -> setValidationScope ( [ $ inline_add_container ] ) ; $ inline_add_container -> addSubmit ( 'cancel' , 'ublaboo_datagrid.cancel' ) -> setValidationScope ( false ) -> setAttribute ( 'data-datagrid-cancel-inline-add' , true ) ; $ this -> inlineAdd -> onControlAdd ( $ inline_add_container ) ; $ this -> inlineAdd -> onControlAfterAdd ( $ inline_add_container ) ; } /**
		 * ItemDetail form part
		 */ $ items_detail_form = $ this -> getItemDetailForm ( ) ; if ( $ items_detail_form instanceof Nette \ Forms \ Container ) { $ form [ 'items_detail_form' ] = $ items_detail_form ; } /**
		 * Filter part
		 */ $ filter_container = $ form -> addContainer ( 'filter' ) ; foreach ( $ this -> filters as $ filter ) { $ filter -> addToFormContainer ( $ filter_container ) ; } if ( ! $ this -> hasAutoSubmit ( ) ) { $ filter_container [ 'submit' ] = $ this -> getFilterSubmitButton ( ) ; } /**
		 * Group action part
		 */ $ group_action_container = $ form -> addContainer ( 'group_action' ) ; if ( $ this -> hasGroupActions ( ) ) { $ this -> getGroupActionCollection ( ) -> addToFormContainer ( $ group_action_container ) ; } if ( ! $ form -> isSubmitted ( ) ) { $ this -> setFilterContainerDefaults ( $ form [ 'filter' ] , $ this -> filter ) ; } /**
		 * Per page part
		 */ $ form -> addSelect ( 'per_page' , '' , $ this -> getItemsPerPageList ( ) ) -> setTranslator ( null ) ; if ( ! $ form -> isSubmitted ( ) ) { $ form [ 'per_page' ] -> setValue ( $ this -> getPerPage ( ) ) ; } $ form -> addSubmit ( 'per_page_submit' , 'ublaboo_datagrid.per_page_submit' ) -> setValidationScope ( [ $ form [ 'per_page' ] ] ) ; $ form -> onSubmit [ ] = [ $ this , 'filterSucceeded' ] ; }
FilterAndGroupAction form factory
@return Form
FilterAndGroupAction form factory