code: private DataTable<Element, Void> getDataTable(final IndexSearch _indexSearch)
      {
          final List<IColumn<Element, Void>> columns = new ArrayList<>();
  
          columns.add(new AbstractColumn<Element, Void>(new Model<>(""))
          {
  
              private static final long serialVersionUID = 1L;
  
              @Override
              public void populateItem(final Item<ICellPopulator<Element>> _cellItem,
                                       final String _componentId,
                                       final IModel<Element> _rowModel)
              {
                  _cellItem.add(new Link(_componentId, _rowModel));
              }
          });
  
          if (_indexSearch.getSearch() == null || _indexSearch.getSearch().getResultFields().isEmpty()) {
              columns.add(new PropertyColumn<Element, Void>(new Model<>(""), "text"));
          } else {
              for (final Entry<String, Collection<String>> entry : _indexSearch.getSearch().getResultFields()
                              .entrySet()) {
                  columns.add(new ResultColumn(_indexSearch.getSearch().getResultLabel().get(entry.getKey()), entry
                                  .getValue()));
              }
          }
          final DataTable<Element, Void> ret = new DataTable<>("table", columns, _indexSearch
                          .getDataProvider(), _indexSearch.getSearch() == null ? 100
                                          : _indexSearch.getSearch().getNumHits());
  
          ret.addTopToolbar(new HeadersToolbar<>(ret, null));
          return ret;
      }
docs: Gets the data table.
  
  @param _indexSearch the index search
  @return the data table