sourceRepository = $sourceRepository; $this->searchResultFactory = $searchResultFactory; $this->session = $session; } /** * {@inheritdoc} */ public function getData() { $data = parent::getData(); if (self::SOURCE_FORM_NAME === $this->name) { // It is need for support of several fieldsets. // For details see \Magento\Ui\Component\Form::getDataSourceData if ($data['totalRecords'] > 0) { $sourceCode = $data['items'][0][SourceInterface::SOURCE_CODE]; $sourceGeneralData = $data['items'][0]; $sourceGeneralData['disable_source_code'] = !empty($sourceGeneralData['source_code']); $dataForSingle[$sourceCode] = [ 'general' => $sourceGeneralData, ]; return $dataForSingle; } $sessionData = $this->session->getSourceFormData(true); if (null !== $sessionData) { // For details see \Magento\Ui\Component\Form::getDataSourceData $data = [ '' => $sessionData, ]; } } return $data; } /** * {@inheritdoc} */ public function getSearchResult() { $searchCriteria = $this->getSearchCriteria(); $result = $this->sourceRepository->getList($searchCriteria); $searchResult = $this->searchResultFactory->create( $result->getItems(), $result->getTotalCount(), $searchCriteria, SourceInterface::SOURCE_CODE ); return $searchResult; } }