protected function setGridResponse(ActionResponse $response = null)
 {
     if (empty($response)) {
         $jsonResponse = true;
         $response = new ActionResponse();
     }
     $displayedColumns = $this->getRequestColumns();
     $availableColumns = $this->getAvailableRequestColumns();
     // sort available columns by display state (displayed columns first)
     $displayedAvailable = array_intersect_key($availableColumns, $displayedColumns);
     $notDisplayedAvailable = array_diff_key($availableColumns, $displayedColumns);
     $availableColumns = array_merge($displayedAvailable, $notDisplayedAvailable);
     $response->set('displayedColumns', $displayedColumns);
     $response->set('availableColumns', $availableColumns);
     $response->set('advancedSearchColumns', $this->getAdvancedSearchFields());
     $response->set('columnWidths', $this->user->getPreference('columnWidth_' . get_class($this)));
     $response->set('massForm', $this->getMassForm());
     $response->set('offset', $this->request->get('offset'));
     $response->set('totalCount', '0');
     $response->set('filters', $this->request->get('filters'));
     $response->set('data', $this->lists(false, $displayedColumns)->getData());
     if (isset($jsonResponse)) {
         return $response->getData();
     }
     return $response;
 }