class OverviewScreenPresenter {

    public void setup(final ChangeRequest changeRequest,
                      final Consumer<Boolean> finishLoadingCallback) {
        this.currentChangeRequestId = changeRequest.getId();
        this.changeRequestAuthorId = changeRequest.getAuthorId();

        this.view.setStatus(changeRequestUtils.formatStatus(changeRequest.getStatus()));
        this.view.setAuthor(changeRequest.getAuthorId());
        this.view.setCreatedDate(changeRequestUtils.formatCreatedDate(changeRequest.getCreatedDate()));
        this.view.setSummary(changeRequest.getSummary());
        this.view.setDescription(changeRequest.getDescription());
        this.view.setSourceBranch(changeRequest.getSourceBranch());
        this.view.setTargetBranch(changeRequest.getTargetBranch());
        this.view.setCommentInputPlaceHolder(ts.getTranslation(LibraryConstants.LeaveAComment));
        this.view.enableSummaryEditMode(false);
        this.view.enableDescriptionEditMode(false);
        this.view.showEditModes(isUserAuthor());
        this.view.showRevertFailedTooltip(changeRequest.getStatus() == ChangeRequestStatus.REVERT_FAILED);

        this.refreshCommentList(finishLoadingCallback);
    }

    @Inject public  OverviewScreenPresenter(final View view,
                                   final TranslationService ts,
                                   final ManagedInstance<CommentItemPresenter> commentItemPresenterInstances,
                                   final Caller<ChangeRequestService> changeRequestService,
                                   final LibraryPlaces libraryPlaces,
                                   final ChangeRequestUtils changeRequestUtils,
                                   final SessionInfo sessionInfo);

}