private void updateGrid() {
        final List<Word> words;
        if (fieldSort == null) {
            words = wordList.getWordList();
        } else {
            final String sortId = fieldSort.getId();
            final boolean isDescending = fieldSort.isDesc();
            Comparator<Word> comparator;
            if (FIELD_WORD.equals(sortId)) {
                comparator = buildComparator(isDescending, wordComparator, sourceNameComparator);
            } else if (FIELD_SOURCE_NAME.equals(sortId)) {
                comparator = buildComparator(isDescending, sourceNameComparator, wordComparator);
            } else if (FIELD_TYPE.equals(sortId)) {
                comparator = buildComparator(isDescending, typeComparator, sourceNameComparator, wordComparator);
            } else {
                comparator = null;
            }
            Stream<Word> wordStream = wordList.getWordList()
                    .stream();

            if (comparator != null) {
                wordStream = wordStream.sorted(comparator);
            }
            words = wordStream.collect(Collectors.toList());
        }

        dataGrid.setRowData(0, words);
        dataGrid.setRowCount(wordList.size());
        dataGrid.redraw();
    }
Add the columns to the table.
stroom-core-client/src/main/java/stroom/dictionary/client/presenter/WordListPresenter.java