Example usage for org.apache.shiro SecurityUtils getSubject

List of usage examples for org.apache.shiro SecurityUtils getSubject

Introduction

In this page you can find the example usage for org.apache.shiro SecurityUtils getSubject.

Prototype

public static Subject getSubject() 

Source Link

Document

Returns the currently accessible Subject available to the calling code depending on runtime environment.

Usage

From source file:au.org.theark.study.web.component.studycomponent.StudyComponentContainerPanel.java

License:Open Source License

protected WebMarkupContainer initialiseSearchPanel() {
    StudyCompVo studyCompVo = new StudyCompVo();

    // Get a result-set by default
    List<StudyComp> resultList = new ArrayList<StudyComp>();
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    try {/*www  .  ja va  2s  .  c  o  m*/
        if (sessionStudyId != null && sessionStudyId > 0) {
            resultList = studyService.searchStudyComp(studyCompVo.getStudyComponent());
        }
    } catch (ArkSystemException e) {
        this.error("A system error occurred  while initializing Search Panel");
    }

    cpModel.getObject().setStudyCompList(resultList);
    searchComponentPanel = new SearchPanel("searchComponentPanel", arkCrudContainerVO, feedBackPanel,
            containerForm, pageableListView);
    searchComponentPanel.initialisePanel(cpModel);
    arkCrudContainerVO.getSearchPanelContainer().add(searchComponentPanel);
    return arkCrudContainerVO.getSearchPanelContainer();

}

From source file:au.org.theark.study.web.component.subject.ChildStudySubjectPanel.java

License:Open Source License

private void setSubjectIntoContext(AjaxRequestTarget target, final SubjectVO subject) {
    Study study = subject.getLinkSubjectStudy().getStudy();
    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID,
            study.getId());//from w w w  .j  av  a 2s. co  m

    // We specify the type of person here as Subject
    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID,
            subject.getLinkSubjectStudy().getPerson().getId());
    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_TYPE,
            au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_SUBJECT);

    SubjectVO subjectFromBackend = new SubjectVO();

    LinkSubjectStudy subjectRefreshed = iArkCommonService.getSubjectRefreshed(subject.getLinkSubjectStudy());

    subjectFromBackend.setLinkSubjectStudy(subjectRefreshed);

    // Available/assigned child studies
    List<Study> availableChildStudies = new ArrayList<Study>(0);
    List<Study> selectedChildStudies = new ArrayList<Study>(0);

    if (study.getParentStudy() != null) {
        availableChildStudies = iStudyService.getChildStudyListOfParent(study);
        Person person = null;
        try {
            person = iStudyService.getPerson(subject.getLinkSubjectStudy().getPerson().getId());
        } catch (EntityNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ArkSystemException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        selectedChildStudies = iArkCommonService.getAssignedChildStudyListForPerson(study, person);
    }

    ArkCRUDHelper.preProcessDetailPanelOnSearchResults(target, arkCrudContainerVO);

    subjectContainerForm.setModelObject(subjectFromBackend);
    subjectContainerForm.getModelObject().setAvailableChildStudies(availableChildStudies);
    subjectContainerForm.getModelObject().setSelectedChildStudies(selectedChildStudies);

    // Set SubjectUID into context
    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.SUBJECTUID,
            subjectFromBackend.getLinkSubjectStudy().getSubjectUID());
    ContextHelper contextHelper = new ContextHelper();
    contextHelper.setStudyContextLabel(target, study.getName(), arkContextMarkup);
    contextHelper.setSubjectContextLabel(target, subject.getLinkSubjectStudy().getSubjectUID(),
            arkContextMarkup);
    contextHelper.setSubjectNameContextLabel(target, subject.getLinkSubjectStudy().getPerson().getFullName(),
            arkContextMarkup);

    // Set Study Logo
    StudyHelper studyHelper = new StudyHelper();
    WebMarkupContainer wmc = (WebMarkupContainer) getParent();
    au.org.theark.study.web.component.subject.form.DetailForm detailForm = (au.org.theark.study.web.component.subject.form.DetailForm) wmc
            .getParent();
    au.org.theark.study.web.component.subject.DetailPanel detailPanel = (au.org.theark.study.web.component.subject.DetailPanel) detailForm
            .getParent();

    studyHelper.setStudyLogo(study, target, detailPanel.studyNameMarkup, detailPanel.studyLogoMarkup,
            iArkCommonService);
}

From source file:au.org.theark.study.web.component.subject.form.DetailForm.java

License:Open Source License

protected void onCancel(AjaxRequestTarget target) {
    subjectUIDTxtFld.setEnabled(true);/*w  w  w . j  av  a  2  s.c om*/
    SubjectVO subjectVO = new SubjectVO();

    // Set study in context
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(sessionStudyId);
    subjectVO.getLinkSubjectStudy().setStudy(study);
    subjectVO.setStudyList(containerForm.getModelObject().getStudyList());
    containerForm.setModelObject(subjectVO);

    otherIdListView.setModelObject(new ArrayList<OtherID>());
    otherIdListView.removeAll();

    // Clear subject in context
    ContextHelper contextHelper = new ContextHelper();
    contextHelper.resetContextLabel(target, arkContextMarkupContainer);
    contextHelper.setStudyContextLabel(target, study.getName(), arkContextMarkupContainer);

    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID, null);
    SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_TYPE, null);
}

From source file:au.org.theark.study.web.component.subject.form.DetailForm.java

License:Open Source License

private void saveUpdateProcess(SubjectVO subjectVO, AjaxRequestTarget target) {

    //Setting the today's date if consent date of last change not entered or edited. 
    if (subjectVO.getLinkSubjectStudy().getConsentDateOfLastChange() == null) {
        subjectVO.getLinkSubjectStudy().setConsentDateOfLastChange(new Date());
    }//from  w  ww. j  a v a  2  s  . co  m

    if (subjectVO.getLinkSubjectStudy().getPerson().getId() == null
            || containerForm.getModelObject().getLinkSubjectStudy().getPerson().getId() == 0) {

        subjectVO.getLinkSubjectStudy().setStudy(study);

        //Setting the today's date if consent date of last change not entered. 
        if (subjectVO.getLinkSubjectStudy().getConsentDateOfLastChange() == null) {
            subjectVO.getLinkSubjectStudy().setConsentDateOfLastChange(new Date());
        }
        try {
            studyService.createSubject(subjectVO);
            StringBuffer sb = new StringBuffer();
            sb.append("The Subject with Subject UID: ");
            sb.append(subjectVO.getLinkSubjectStudy().getSubjectUID());
            sb.append(" has been created successfully and linked to the study in context: ");
            sb.append(study.getName());
            sb.append(".");

            if (study.getAutoConsent()) {
                sb.append(" The Subject has been automatically consented to the Study.");
            }

            onSavePostProcess(target);
            this.saveInformation();
            //this.info(sb.toString());

            // Set new Subject into context
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.SUBJECTUID,
                    subjectVO.getLinkSubjectStudy().getSubjectUID());
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID,
                    subjectVO.getLinkSubjectStudy().getPerson().getId());
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_TYPE,
                    au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_SUBJECT);
        } catch (ArkUniqueException ex) {
            this.error("Subject UID must be unique.");
        } catch (ArkSubjectInsertException ex) {
            this.error(ex.getMessage());
        }

    } else {
        boolean errorFlag = false;
        if (subjectStatusDdc.getModelObject().getName().equalsIgnoreCase("Archive")) {
            Biospecimen biospecimenCriteria = new Biospecimen();
            biospecimenCriteria.setLinkSubjectStudy(containerForm.getModelObject().getLinkSubjectStudy());
            biospecimenCriteria.setStudy(containerForm.getModelObject().getLinkSubjectStudy().getStudy());
            // check no biospecimens exist
            long count = iLimsService.getBiospecimenCount(biospecimenCriteria);
            if (count > 0) {
                error("You cannot archive this subject as there are Biospecimens associated with it.");
                target.focusComponent(subjectStatusDdc);
                errorFlag = true;
            }
        }
        if (!errorFlag) {
            try {
                if (isLastNameChanged()) {
                    confirmModal.setContent(new YesNoPanel(confirmModal.getContentId(),
                            modalText.replace("#", subjectVO.getLinkSubjectStudy().getSubjectUID())
                                    .replace("@", currentLastName).replace("$", lastNameTxtFld.getInput()),
                            "Warning", confirmModal, confirmationAnswer));
                    confirmModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
                        private static final long serialVersionUID = 1L;

                        public void onClose(AjaxRequestTarget target) {
                            subjectVO.setChangingLastName(confirmationAnswer.isAnswer());
                            try {
                                studyService.updateSubject(subjectVO);
                            } catch (ArkUniqueException | EntityNotFoundException e) {
                                e.printStackTrace();
                            }
                            StringBuffer sb = new StringBuffer();
                            sb.append("The Subject with Subject UID: ");
                            sb.append(subjectVO.getLinkSubjectStudy().getSubjectUID());
                            sb.append(" has been updated successfully and linked to the study in context ");
                            sb.append(study.getName());
                            target.add(lastNameTxtFld);//Refresh to updated value.
                            onSavePostProcess(target);
                            updateInformation();
                        }
                    });
                    arkCrudContainerVO.getDetailPanelFormContainer().addOrReplace(confirmModal);
                    confirmModal.show(target);
                } else {
                    studyService.updateSubject(subjectVO);
                    StringBuffer sb = new StringBuffer();
                    sb.append("The Subject with Subject UID: ");
                    sb.append(subjectVO.getLinkSubjectStudy().getSubjectUID());
                    sb.append(" has been updated successfully and linked to the study in context ");
                    sb.append(study.getName());
                    onSavePostProcess(target);
                    this.updateInformation();
                }
                //this.info(sb.toString());
            } catch (ArkUniqueException e) {
                this.error("Subject UID must be unique.");
            } catch (EntityNotFoundException enf) {
                this.error("Cannot find the selected Subject.");
            }
        }
    }

    processErrors(target);
}

From source file:au.org.theark.study.web.component.subject.form.DetailForm.java

License:Open Source License

@Override
protected void onSave(Form<SubjectVO> containerForm, AjaxRequestTarget target) {

    target.add(arkCrudContainerVO.getDetailPanelContainer());

    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    if (studyId == null) {
        // No study in context
        this.error("There is no study selected. Please select a study to manage a subject.");
        processErrors(target);/* ww w.ja v a2  s .c  o m*/
    } else {
        //create warning messages for date data month >12 day > 31 ...etc 
        createWarningForUnformattedDate(target,
                containerForm.getModelObject().getLinkSubjectStudy().getPerson().getDateOfBirth(),
                dateOfBirthTxtFld.getInput());
        //create warning messages for last known alive
        createWarningForUnformattedDate(target,
                containerForm.getModelObject().getLinkSubjectStudy().getPerson().getDateLastKnownAlive(),
                dateLastKnownAliveTxtFld.getInput());
        //create warning messages for  date of death.
        createWarningForUnformattedDate(target,
                containerForm.getModelObject().getLinkSubjectStudy().getPerson().getDateOfDeath(),
                dateOfDeathInput);
        //create warning messages for  date of consent date.
        createWarningForUnformattedDate(target,
                containerForm.getModelObject().getLinkSubjectStudy().getConsentDate(),
                consentDateTxtFld.getInput());
        createWarningForLifeSpan(containerForm, target);
        study = iArkCommonService.getStudy(studyId);
        saveUpdateProcess(containerForm.getModelObject(), target);
        // String subjectPreviousLastname = iArkCommonService.getPreviousLastname(containerForm.getModelObject().getSubjectStudy().getPerson());
        // containerForm.getModelObject().setSubjectPreviousLastname(subjectPreviousLastname);
        ContextHelper contextHelper = new ContextHelper();
        contextHelper.resetContextLabel(target, arkContextMarkupContainer);
        contextHelper.setStudyContextLabel(target, study.getName(), arkContextMarkupContainer);
        contextHelper.setSubjectContextLabel(target,
                containerForm.getModelObject().getLinkSubjectStudy().getSubjectUID(),
                arkContextMarkupContainer);
        contextHelper.setSubjectNameContextLabel(target,
                containerForm.getModelObject().getLinkSubjectStudy().getPerson().getFullName(),
                arkContextMarkupContainer);

        SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID,
                containerForm.getModelObject().getLinkSubjectStudy().getPerson().getId());
        // We specify the type of person here as Subject
        SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_TYPE,
                au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_SUBJECT);
        arkCrudContainerVO.getDetailPanelContainer().setVisible(true);
    }
}

From source file:au.org.theark.study.web.component.subject.form.SearchForm.java

License:Open Source License

/**
 * @param id/*from   w w  w  . j  a  v a2s  .  co  m*/
 * @param cpmModel
 * @param arkContextMarkup 
 * @param studyNameMarkup s
 * @param studyLogoMarkup
 */
public SearchForm(String id, CompoundPropertyModel<SubjectVO> cpmModel, PageableListView<SubjectVO> listView,
        FeedbackPanel feedBackPanel, ArkCrudContainerVO arkCrudContainerVO, WebMarkupContainer arkContextMarkup,
        WebMarkupContainer studyNameMarkup, WebMarkupContainer studyLogoMarkup) {
    // super(id, cpmModel);
    super(id, cpmModel, feedBackPanel, arkCrudContainerVO);

    this.cpmModel = cpmModel;
    //this.listView = listView;
    this.arkContextMarkup = arkContextMarkup;
    this.studyNameMarkup = studyNameMarkup;
    this.studyLogoMarkup = studyLogoMarkup;

    initialiseSearchForm();
    addSearchComponentsToForm();
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    disableSearchForm(sessionStudyId, "There is no study selected. Please select a study.");
}

From source file:au.org.theark.study.web.component.subject.form.SearchForm.java

License:Open Source License

@SuppressWarnings("unchecked")
private void initStudyDdc() {
    CompoundPropertyModel<SubjectVO> subjectCpm = cpmModel;
    PropertyModel<Study> studyPm = new PropertyModel<Study>(subjectCpm, "linkSubjectStudy.study");
    ChoiceRenderer choiceRenderer = new ChoiceRenderer(Constants.NAME, Constants.ID);
    List<Study> studyListForUser = new ArrayList<Study>(0);
    try {/*  w ww.  j  a v a  2s. c  om*/
        Subject currentUser = SecurityUtils.getSubject();
        ArkUser arkUser = iArkCommonService.getArkUser(currentUser.getPrincipal().toString());
        ArkUserVO arkUserVo = new ArkUserVO();
        arkUserVo.setArkUserEntity(arkUser);

        //Long sessionArkModuleId = (Long) SecurityUtils.getSubject().getSession().getAttribute(au.org.theark.core.Constants.ARK_MODULE_KEY);
        //ArkModule arkModule = null;
        //arkModule = iArkCommonService.getArkModuleById(sessionArkModuleId);
        //studyListForUser = iArkCommonService.getStudyListForUserAndModule(arkUserVo, arkModule);

        Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
                .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
        if (sessionStudyId != null) {
            studyListForUser = iArkCommonService.getParentAndChildStudies(sessionStudyId);
            cpmModel.getObject().setStudyList(studyListForUser);
        }
    } catch (EntityNotFoundException e) {
        log.error(e.getMessage());
    }
    ChoiceRenderer<Study> studyRenderer = new ChoiceRenderer<Study>(Constants.NAME, Constants.ID);
    studyDdc = new DropDownChoice<Study>("study", studyPm, (List<Study>) studyListForUser, studyRenderer);
    studyDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID,
                    studyDdc.getModelObject().getId());
            ContextHelper contextHelper = new ContextHelper();
            contextHelper.resetContextLabel(target, arkContextMarkup);
            contextHelper.setStudyContextLabel(target, studyDdc.getModelObject().getName(), arkContextMarkup);
            StudyHelper studyHelper = new StudyHelper();
            studyHelper.setStudyLogo(studyDdc.getModelObject(), target, studyNameMarkup, studyLogoMarkup,
                    iArkCommonService);
            target.add(SearchForm.this);
        }
    });
}

From source file:au.org.theark.study.web.component.subject.form.SearchForm.java

License:Open Source License

@SuppressWarnings("unchecked")
protected void onNew(AjaxRequestTarget target) {
    // Disable SubjectUID if auto-generation set
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study studyInContext = iArkCommonService.getStudy(sessionStudyId);
    if ((studyInContext != null) && (studyInContext.getAutoGenerateSubjectUid())) {
        TextField<String> subjectUIDTxtFld = (TextField<String>) arkCrudContainerVO
                .getDetailPanelFormContainer().get(Constants.SUBJECT_UID);
        getModelObject().getLinkSubjectStudy().setSubjectUID(Constants.SUBJECT_AUTO_GENERATED);
        subjectUIDTxtFld.setEnabled(false);
        target.add(subjectUIDTxtFld);/*from   ww w.j a  va  2  s .  c o m*/
    } else {
        TextField<String> subjectUIDTxtFld = (TextField<String>) arkCrudContainerVO
                .getDetailPanelFormContainer().get(Constants.SUBJECT_UID);
        subjectUIDTxtFld.setEnabled(true);
        target.add(subjectUIDTxtFld);
    }

    // Available child studies
    List<Study> availableChildStudies = new ArrayList<Study>(0);
    if (studyInContext.getParentStudy() != null) {
        availableChildStudies = iStudyService.getChildStudyListOfParent(studyInContext);
    }
    getModelObject().setAvailableChildStudies(availableChildStudies);

    getModelObject().getLinkSubjectStudy().getPerson().getOtherIDs().clear();
    if (!otherIDTxtFld.getValue().isEmpty()) {
        OtherID searchedOtherID = new OtherID();
        searchedOtherID.setOtherID(otherIDTxtFld.getValue());
        searchedOtherID.setPerson(cpmModel.getObject().getLinkSubjectStudy().getPerson());
        getModelObject().getLinkSubjectStudy().getPerson().getOtherIDs().add(searchedOtherID);
    }

    preProcessDetailPanel(target);
}

From source file:au.org.theark.study.web.component.subject.form.SearchForm.java

License:Open Source License

@Override
protected void onBeforeRender() {
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(sessionStudyId);
    cpmModel.getObject().getLinkSubjectStudy().setStudy(study);
    boolean parentStudy = (study.getParentStudy() == null || (study.getParentStudy() == study))
            && cpmModel.getObject().isEnableNewButton();
    newButton.setEnabled(parentStudy);//from  w w w.j  a v  a  2s . co  m
    super.onBeforeRender();
}

From source file:au.org.theark.study.web.component.subject.SearchResultListPanel.java

License:Open Source License

private AjaxLink buildLink(final SubjectVO subject) {
    ArkBusyAjaxLink link = new ArkBusyAjaxLink(Constants.SUBJECT_UID) {
        @Override//w w w  .  ja  v  a 2s.  c  o m
        public void onClick(AjaxRequestTarget target) {
            Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
            // subject.getLinkSubjectStudy().setStudy(iArkCommonService.getStudy(sessionStudyId));

            // We specify the type of person here as Subject
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID,
                    subject.getLinkSubjectStudy().getStudy().getId());
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID,
                    subject.getLinkSubjectStudy().getPerson().getId());
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.PERSON_TYPE,
                    au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_SUBJECT);

            SubjectVO subjectFromBackend = new SubjectVO();
            Collection<SubjectVO> subjects = iArkCommonService.getSubject(subject);
            for (SubjectVO subjectVO2 : subjects) {
                subjectFromBackend = subjectVO2;
                break;
            }

            // Available/assigned child studies
            List<Study> availableChildStudies = new ArrayList<Study>(0);
            List<Study> selectedChildStudies = new ArrayList<Study>(0);

            if (subjectFromBackend.getLinkSubjectStudy().getStudy().getParentStudy() != null) {
                availableChildStudies = iStudyService
                        .getChildStudyListOfParent(subjectFromBackend.getLinkSubjectStudy().getStudy());
                selectedChildStudies = iArkCommonService.getAssignedChildStudyListForPerson(
                        subjectFromBackend.getLinkSubjectStudy().getStudy(),
                        subjectFromBackend.getLinkSubjectStudy().getPerson());
            }

            ArkCRUDHelper.preProcessDetailPanelOnSearchResults(target, arkCrudContainerVO);
            subjectFromBackend.setStudyList(subjectContainerForm.getModelObject().getStudyList());
            subjectContainerForm.setModelObject(subjectFromBackend);
            subjectContainerForm.getModelObject().setAvailableChildStudies(availableChildStudies);
            subjectContainerForm.getModelObject().setSelectedChildStudies(selectedChildStudies);

            // Set SubjectUID into context
            SecurityUtils.getSubject().getSession().setAttribute(au.org.theark.core.Constants.SUBJECTUID,
                    subjectFromBackend.getLinkSubjectStudy().getSubjectUID());
            ContextHelper contextHelper = new ContextHelper();
            contextHelper.setStudyContextLabel(target,
                    subjectFromBackend.getLinkSubjectStudy().getStudy().getName(), arkContextMarkup);
            contextHelper.setSubjectContextLabel(target,
                    subjectFromBackend.getLinkSubjectStudy().getSubjectUID(), arkContextMarkup);
            contextHelper.setSubjectNameContextLabel(target,
                    subjectFromBackend.getLinkSubjectStudy().getPerson().getFullName(), arkContextMarkup);

            // Set Study Logo
            StudyHelper studyHelper = new StudyHelper();
            studyHelper.setStudyLogo(subjectFromBackend.getLinkSubjectStudy().getStudy(), target,
                    studyNameMarkup, studyLogoMarkup, iArkCommonService);
        }
    };
    Label nameLinkLabel = new Label(Constants.SUBJECT_KEY_LBL, subject.getLinkSubjectStudy().getSubjectUID());
    link.add(nameLinkLabel);
    return link;
}