public AssessedIdentityRepositoryEntryController(
      UserRequest ureq,
      WindowControl wControl,
      TooledStackedPanel stackPanel,
      RepositoryEntry assessableEntry,
      Identity assessedIdentity,
      AssessableResource element) {
    super(ureq, wControl);

    this.stackPanel = stackPanel;
    this.assessedIdentity = assessedIdentity;

    identityAssessmentVC = createVelocityContainer("identity_personal_infos");
    identityAssessmentVC.contextPut("user", assessedIdentity.getUser());

    infosController = new AssessedIdentityLargeInfosController(ureq, wControl, assessedIdentity);
    listenTo(infosController);
    identityAssessmentVC.put("identityInfos", infosController.getInitialComponent());

    RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(assessableEntry);
    if (handler.supportsAssessmentDetails()) {
      detailsCtrl =
          handler.createAssessmentDetailsController(
              assessableEntry, ureq, getWindowControl(), stackPanel, assessedIdentity);
      listenTo(detailsCtrl);
      identityAssessmentVC.put("details", detailsCtrl.getInitialComponent());
    }

    assessmentForm =
        new AssessmentForm(ureq, getWindowControl(), assessedIdentity, assessableEntry, element);
    listenTo(assessmentForm);
    identityAssessmentVC.put("assessmentForm", assessmentForm.getInitialComponent());

    putInitialPanel(identityAssessmentVC);
  }
 @Override
 protected void event(UserRequest ureq, Controller source, Event event) {
   if (assessmentForm == source) {
     if (event instanceof AssessmentFormEvent) {
       AssessmentFormEvent afe = (AssessmentFormEvent) event;
       if (afe.isClose()) {
         stackPanel.popController(assessmentForm);
         fireEvent(ureq, Event.DONE_EVENT);
       } else {
         fireEvent(ureq, Event.CHANGED_EVENT);
       }
     } else if (event == Event.CANCELLED_EVENT) {
       stackPanel.popController(assessmentForm);
     }
   } else if (detailsCtrl == source) {
     if (event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) {
       assessmentForm.reloadData();
       fireEvent(ureq, Event.CHANGED_EVENT);
     }
   }
   super.event(ureq, source, event);
 }