class AbstractArchetypeTablePresenter implements ArchetypeTablePresenter,
                                                                 HasBusyIndicator {

    protected void finishLoadList(final PaginatedArchetypeList paginatedList) {
        final List<ArchetypeItem> archetypeItems =
                paginatedList.getArchetypes()
                        .stream()
                        .map(archetype -> new ArchetypeItem(archetype,
                                                            getSelectionMap().get(archetype.getAlias()),
                                                            archetype.getAlias().equals(archetypePreferences.getDefaultSelection())))
                        .collect(Collectors.toList());

        archetypeListPresenter.setup(view.getTableBody(),
                                     archetypeItems,
                                     (property, presenter) -> presenter.setup(property,
                                                                              this));
        updateSelectionCounter();

        hideBusyIndicator();

        view.show(true);
    }

    public  AbstractArchetypeTablePresenter(final View view,
                                           final ArchetypeListPresenter archetypeListPresenter,
                                           final BusyIndicatorView busyIndicatorView,
                                           final TranslationService ts,
                                           final AddArchetypeModalPresenter addArchetypeModalPresenter,
                                           final ArchetypePreferences archetypePreferences,
                                           final Caller<ArchetypeService> archetypeService,
                                           final PreferenceScopeFactory preferenceScopeFactory,
                                           final Promises promises);

}