@Override public void performApplyModel(Object model, LifecycleElement parent) { Object myBo = ObjectPropertyUtils.getPropertyValue( model, KcBindingInfo.getParentBindingInfo(getBindingInfo())); Answer answer = (Answer) myBo; setControl( (Control) ComponentFactory.getNewComponentInstance( getControlMappings().get(answer.getQuestion().getQuestionTypeId().toString()))); getControl().getCssClasses().add("answer"); if (StringUtils.isNotBlank(answer.getQuestion().getLookupClass())) { if (useSuggest) { getSuggest().setRender(true); getSuggest().setValuePropertyName(answer.getQuestion().getLookupReturn()); getSuggest() .getSuggestQuery() .setDataObjectClassName(answer.getQuestion().getLookupClass()); } getQuickfinder().setRender(true); getQuickfinder().setDataObjectClassName(answer.getQuestion().getLookupClass()); getQuickfinder() .getFieldConversions() .put(answer.getQuestion().getLookupReturn(), getPropertyName()); } super.performApplyModel(model, parent); }
/* * This method will get the Answer for sub question */ private String getAnswer(String questionId) { String answer = null; if (answerHeaders != null && !answerHeaders.isEmpty()) { for (AnswerHeader answerHeader : answerHeaders) { List<Answer> answerDetails = answerHeader.getAnswers(); for (Answer answers : answerDetails) { if (questionId.equals(answers.getQuestion().getQuestionId())) { answer = answers.getAnswer(); } } } } return answer; }
/** * This method YesNo data type Lobbying answers based on the ProposalYnq QuestionId * * @return answer (YesNoDataType.Enum) corresponding to Ynq question id. */ private YesNoDataType.Enum getLobbyingAnswer() { YesNoDataType.Enum answer = YesNoDataType.N_NO; for (ProposalPerson proposalPerson : pdDoc.getDevelopmentProposal().getProposalPersons()) { if (proposalPerson.getProposalPersonRoleId() != null && proposalPerson.getProposalPersonRoleId().equals(PRINCIPAL_INVESTIGATOR) || proposalPerson.getProposalPersonRoleId().equals(PI_C0_INVESTIGATOR)) { ProposalPersonModuleQuestionnaireBean moduleQuestionnaireBean = new ProposalPersonModuleQuestionnaireBean( pdDoc.getDevelopmentProposal(), proposalPerson); List<AnswerHeader> headers = getQuestionnaireAnswerService().getQuestionnaireAnswer(moduleQuestionnaireBean); AnswerHeader answerHeader = headers.get(0); List<Answer> certificationAnswers = answerHeader.getAnswers(); for (Answer certificatonAnswer : certificationAnswers) { if (certificatonAnswer != null && PROPOSAL_YNQ_LOBBYING_ACTIVITIES.equals( certificatonAnswer.getQuestion().getQuestionId()) && S2SConstants.PROPOSAL_YNQ_ANSWER_Y.equals(certificatonAnswer.getAnswer())) { return YesNoDataType.Y_YES; } } } } Organization organization = getOrganizationFromDevelopmentProposal(pdDoc.getDevelopmentProposal()); List<OrganizationYnq> organizationYnqs = null; if (organization != null && organization.getOrganizationId() != null) { organizationYnqs = getOrganizationYNQ(organization.getOrganizationId()); } for (OrganizationYnq organizationYnq : organizationYnqs) { if (organizationYnq.getQuestionId().equals(LOBBYING_QUESTION_ID)) { if (getAnswerFromOrganizationYnq(organizationYnq)) { return YesNoDataType.Y_YES; } } } return answer; }
/* * This method will get the childAnswer for sub question */ private String getAnswers(String questionId) { String answer = null; String childAnswer = null; StringBuilder stringBuilder = new StringBuilder(); if (answerHeaders != null && !answerHeaders.isEmpty()) { for (AnswerHeader answerHeader : answerHeaders) { List<Answer> answerDetails = answerHeader.getAnswers(); for (Answer answers : answerDetails) { if (questionId.equals(answers.getQuestion().getQuestionId())) { answer = answers.getAnswer(); if (answer != null) { if (!answer.equals(NOT_ANSWERED)) { stringBuilder.append(answer); stringBuilder.append(","); } } childAnswer = stringBuilder.toString(); } } } } return childAnswer; }
/** * Setting the Coversheet and ProjectNarrative details according the Questionnaire Answers. * * @param coverSheet * @param projectNarrative */ private void setQuestionnaireAnswers(CoverSheet coverSheet, ProjectNarrative projectNarrative) { List<Answer> answers = s2sUtilService.getQuestionnaireAnswers( pdDoc.getDevelopmentProposal(), getNamespace(), getFormName()); for (Answer answer : answers) { switch (answer.getQuestion().getQuestionIdAsInteger()) { case PRELIMINARY: YesNoNotApplicableDataType.Enum yesNoNotApplicableDataType = YesNoNotApplicableDataType.N_NO; if (QUESTIONNAIRE_ANSWER_YES.equals(answer.getAnswer())) { yesNoNotApplicableDataType = YesNoNotApplicableDataType.Y_YES; } else if (QUESTIONNAIRE_ANSWER_NO.equals(answer.getAnswer())) { yesNoNotApplicableDataType = YesNoNotApplicableDataType.N_NO; } else if (QUESTIONNAIRE_ANSWER_X.equals(answer.getAnswer())) { yesNoNotApplicableDataType = YesNoNotApplicableDataType.NA_NOT_APPLICABLE; } coverSheet.setCheckFullApp(yesNoNotApplicableDataType); break; case MERIT_REVIEW: if (QUESTIONNAIRE_ANSWER_YES.equals(answer.getAnswer())) { projectNarrative.setCheckMeritReview(YesNoNotApplicableDataType.Y_YES); } else if (QUESTIONNAIRE_ANSWER_NO.equals(answer.getAnswer())) { projectNarrative.setCheckMeritReview(YesNoNotApplicableDataType.N_NO); } else if (QUESTIONNAIRE_ANSWER_X.equals(answer.getAnswer())) { projectNarrative.setCheckMeritReview(YesNoNotApplicableDataType.NA_NOT_APPLICABLE); } break; case MENTORING: if (QUESTIONNAIRE_ANSWER_YES.equals(answer.getAnswer())) { projectNarrative.setCheckMentoring(YesNoNotApplicableDataType.Y_YES); } else if (QUESTIONNAIRE_ANSWER_NO.equals(answer.getAnswer())) { projectNarrative.setCheckMentoring(YesNoNotApplicableDataType.N_NO); } break; case PRIOR_SUPPORT: // Does narrative include info regarding prior support? if (QUESTIONNAIRE_ANSWER_YES.equals(answer.getAnswer())) projectNarrative.setCheckPriorSupport(YesNoNotApplicableDataType.Y_YES); if (QUESTIONNAIRE_ANSWER_NO.equals(answer.getAnswer())) projectNarrative.setCheckPriorSupport(YesNoNotApplicableDataType.N_NO); if (QUESTIONNAIRE_ANSWER_X.equals(answer.getAnswer())) projectNarrative.setCheckPriorSupport(YesNoNotApplicableDataType.NA_NOT_APPLICABLE); break; case HR_QUESTION: /* * HR Info that is mandatory for renwals from academic * institutions. */ if (QUESTIONNAIRE_ANSWER_NO.equals(answer)) { projectNarrative.setCheckHRInfo(YesNoNotApplicableDataType.N_NO); } break; case HR_REQUIRED_INFO: /* * HR Info that is mandatory for renwals from academic * institutions. */ if (QUESTIONNAIRE_ANSWER_YES.equals(answer)) { projectNarrative.setCheckHRInfo(YesNoNotApplicableDataType.Y_YES); } break; default: break; } } }