/**
  * Returns a table
  *
  * @param SMWQueryResult $res
  * @param integer $outputMode
  *
  * @return string
  */
 protected function getResultText(SMWQueryResult $res, $outputMode)
 {
     $this->isHTML = $outputMode === SMW_OUTPUT_HTML;
     $this->htmlTableRenderer = ApplicationFactory::getInstance()->newMwCollaboratorFactory()->newHtmlTableRenderer();
     $this->htmlTableRenderer->setHtmlContext($this->isHTML);
     $columnClasses = array();
     // Default cell value separator
     if (!isset($this->params['sep']) || $this->params['sep'] === '') {
         $this->params['sep'] = '<br>';
     }
     if ($this->mShowHeaders != SMW_HEADERS_HIDE) {
         // building headers
         foreach ($res->getPrintRequests() as $pr) {
             $attributes = array();
             $columnClass = str_replace(array(' ', '_'), '-', strip_tags($pr->getText(SMW_OUTPUT_WIKI)));
             $attributes['class'] = $columnClass;
             // Also add this to the array of classes, for
             // use in displaying each row.
             $columnClasses[] = $columnClass;
             $text = $pr->getText($outputMode, $this->mShowHeaders == SMW_HEADERS_PLAIN ? null : $this->mLinker);
             $this->htmlTableRenderer->addHeader($text === '' ? '&nbsp;' : $text, $attributes);
         }
     }
     $rowNumber = 0;
     while ($subject = $res->getNext()) {
         $rowNumber++;
         $this->getRowForSubject($subject, $outputMode, $columnClasses);
         $this->htmlTableRenderer->addRow(array('data-row-number' => $rowNumber));
     }
     // print further results footer
     if ($this->linkFurtherResults($res)) {
         $link = $this->getFurtherResultsLink($res, $outputMode);
         $this->htmlTableRenderer->addCell($link->getText($outputMode, $this->mLinker), array('class' => 'sortbottom', 'colspan' => $res->getColumnCount()));
         $this->htmlTableRenderer->addRow(array('class' => 'smwfooter'));
     }
     $tableAttrs = array('class' => $this->params['class']);
     if ($this->mFormat == 'broadtable') {
         $tableAttrs['width'] = '100%';
     }
     $this->htmlTableRenderer->transpose($this->mShowHeaders !== SMW_HEADERS_HIDE && $this->params['transpose']);
     return $this->htmlTableRenderer->getHtml($tableAttrs);
 }