class GeneralSettingsPresenter extends Section<ProjectScreenModel> {

    Promise<Object> showErrorAndReject(final Object o) {
        return promises.catchOrExecute(o, e -> {
            view.showError(e.getMessage());
            return promises.reject(this);
        }, (final String errorMessage) -> {
            view.showError(errorMessage);
            return promises.reject(this);
        });
    }

    @Inject public  GeneralSettingsPresenter(final View view,
                                    final Promises promises,
                                    final MenuItem<ProjectScreenModel> menuItem,
                                    final Caller<ValidationService> validationService,
                                    final Caller<WorkspaceProjectService> projectService,
                                    final Event<SettingsSectionChange<ProjectScreenModel>> settingsSectionChangeEvent,
                                    final GAVPreferences gavPreferences,
                                    final ProjectScopedResolutionStrategySupplier projectScopedResolutionStrategySupplier,
                                    final GitUrlsPresenter gitUrlsPresenter,
                                    final LibraryPlaces libraryPlaces);

}