void initTable() {
    getTable().enableColumnResizing();

    AbstractTextColumn<RepoImage> fileNameColumn =
        new AbstractTextColumn<RepoImage>() {
          @Override
          public String getValue(RepoImage object) {
            return object.getRepoImageTitle();
          }
        };
    fileNameColumn.makeSortable();
    getTable().addColumn(fileNameColumn, constants.fileNameIso(), "500px"); // $NON-NLS-1$

    AbstractTextColumn<RepoImage> typeColumn =
        new AbstractTextColumn<RepoImage>() {
          @Override
          public String getValue(RepoImage object) {
            return object.getFileType().toString();
          }
        };
    typeColumn.makeSortable();
    getTable().addColumn(typeColumn, constants.typeIso(), "200px"); // $NON-NLS-1$

    AbstractTextColumn<RepoImage> sizeColumn =
        new AbstractDiskSizeColumn<RepoImage>(
            SizeConverter.SizeUnit.BYTES, DiskSizeRenderer.Format.HUMAN_READABLE) {
          @Override
          protected Long getRawValue(RepoImage object) {
            return object.getSize();
          }
        };
    sizeColumn.makeSortable();
    getTable().addColumn(sizeColumn, constants.actualSizeTemplate(), "100px"); // $NON-NLS-1$

    getTable()
        .addActionButton(
            new WebAdminButtonDefinition<RepoImage>(constants.importImage()) {
              @Override
              protected UICommand resolveCommand() {
                return getDetailModel().getImportImagesCommand();
              }
            });

    getTable().showRefreshButton();
  }