/**
  * Render the default table HTML
  *
  * @param DataResult $data
  * @return string
  */
 protected function renderTable(DataResult $data = null)
 {
     $html = '';
     $html .= "<table cellspacing=\"0\" class=\"{$this->config->getClass()}\" id=\"{$this->config->getTableId()}\">";
     $html .= "<thead><tr>";
     foreach ($this->config->getColumns() as $column) {
         if ($column->isVisible()) {
             $html .= "<th>{$column->getTitle()}</th>";
         } else {
             $html .= "<th style=\"display: none;\">{$column->getTitle()}</th>";
         }
     }
     $html .= "</tr></thead>";
     $html .= "<tbody>";
     if (!$this->config->isServerSideEnabled()) {
         $html .= $this->renderStaticData($data);
     } else {
         $html .= "<tr><td class=\"dataTables_empty\">{$this->config->getLoadingHtml()}</td></tr>";
     }
     $html .= "</tbody>";
     $html .= "</table>";
     $html .= "<!-- Built with italolelis/datatables -->";
     return $html;
 }
 public static function fromConfig(Config $config)
 {
     $options = new self();
     return $options->setBPaginate($config->isPaginationEnabled())->setBLengthChange($config->isLengthChangeEnabled())->setBProcessing($config->isProcessingEnabled())->setBFilter($config->isFilterEnabled())->setBSort($config->isSortEnabled())->setBInfo($config->isInfoEnabled())->setBAutoWidth($config->isAutoWidthEnabled())->setBScrollCollapse($config->isScrollCollapseEnabled())->setBScrollInfinite($config->isScrollInfiniteEnabled())->setIDisplayLength($config->getDisplayLength())->setBJQueryUI($config->isJQueryUIEnabled())->setSPaginationType($config->getPaginationType())->setBStateSave($config->isSaveStateEnabled())->setICookieDuration($config->getCookieDuration())->setAsStripClasses($config->getStripClasses())->setBServerSide($config->isServerSideEnabled())->setSAjaxSource($config->getAjaxSource())->setSScrollX($config->getScrollX())->setSScrollY($config->getScrollY())->setIScrollLoadGap($config->getScrollLoadGap())->setSCookiePrefix($config->getCookiePrefix())->setSDom($config->getDom());
 }