class KnowledgeBasesPresenter extends Section<ProjectScreenModel> {

    @Override
    public Promise<Void> setup(final ProjectScreenModel model) {

        this.kModuleModel = model.getKModule();

        view.init(this);

        knowledgeBaseListPresenter.setup(
                view.getKnowledgeBasesTable(),
                model.getKModule().getKBases().values().stream().sorted(comparing(KBaseModel::getName)).collect(Collectors.toList()),
                (kbase, presenter) -> presenter.setup(kbase, this));

        return promises.resolve();
    }

    @Inject public  KnowledgeBasesPresenter(final View view,
                                   final Event<SettingsSectionChange<ProjectScreenModel>> settingsSectionChangeEvent,
                                   final Promises promises,
                                   final MenuItem<ProjectScreenModel> menuItem,
                                   final KnowledgeBaseListPresenter knowledgeBaseListPresenter);

}