public ActionForward editIntellectualPropertyReview( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; InstitutionalProposalDocument institutionalProposalDocument = (InstitutionalProposalDocument) institutionalProposalForm.getDocument(); institutionalProposalDocument .getInstitutionalProposal() .getProposalIpReviewJoin() .refreshReferenceObject("intellectualPropertyReview"); if (ObjectUtils.isNotNull( institutionalProposalDocument .getInstitutionalProposal() .getProposalIpReviewJoin() .getIntellectualPropertyReview())) { response.sendRedirect( "kr/maintenance.do?businessObjectClassName=org.kuali.kra.institutionalproposal.ipreview.IntellectualPropertyReview&methodToCall=copy&ipReviewId=" + institutionalProposalDocument .getInstitutionalProposal() .getProposalIpReviewJoin() .getIntellectualPropertyReview() .getIpReviewId() + "&proposalId=" + institutionalProposalDocument.getInstitutionalProposal().getProposalId()); } return null; }
/** * This method is for adding AwardSpecialReview to the list. * * @param mapping * @param form * @param request * @param response * @return ActionForward * @throws Exception */ public ActionForward addSpecialReview( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; InstitutionalProposalDocument document = institutionalProposalForm.getInstitutionalProposalDocument(); InstitutionalProposalSpecialReview specialReview = institutionalProposalForm.getSpecialReviewHelper().getNewSpecialReview(); List<InstitutionalProposalSpecialReview> specialReviews = document.getInstitutionalProposal().getSpecialReviews(); boolean isProtocolLinkingEnabled = false; if (SpecialReviewType.HUMAN_SUBJECTS.equals(specialReview.getSpecialReviewTypeCode())) { isProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIrbProtocolLinkingEnabled(); } else if (SpecialReviewType.ANIMAL_USAGE.equals(specialReview.getSpecialReviewTypeCode())) { isProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIacucProtocolLinkingEnabled(); } institutionalProposalForm.getSpecialReviewHelper().prepareProtocolLinkViewFields(specialReview); ActionForward forward = mapping.findForward(Constants.MAPPING_AWARD_BASIC); if (applyRules( new AddSpecialReviewEvent<InstitutionalProposalSpecialReview>( document, specialReview, specialReviews, isProtocolLinkingEnabled))) { specialReview.setSpecialReviewNumber( document.getDocumentNextValue(Constants.SPECIAL_REVIEW_NUMBER)); document.getInstitutionalProposal().getSpecialReviews().add(specialReview); institutionalProposalForm .getSpecialReviewHelper() .setNewSpecialReview(new InstitutionalProposalSpecialReview()); if (specialReview.getSpecialReviewType() == null) { specialReview.refreshReferenceObject("specialReviewType"); } if (StringUtils.equals( specialReview.getSpecialReviewType().getSpecialReviewTypeCode(), SpecialReviewType.HUMAN_SUBJECTS)) { InstitutionalProposalNotificationContext context = new InstitutionalProposalNotificationContext( document.getInstitutionalProposal(), "552", "Special Review Inserted", Constants.MAPPING_INSTITUTIONAL_PROPOSAL_SPECIAL_REVIEW_PAGE); if (institutionalProposalForm .getNotificationHelper() .getPromptUserForNotificationEditor(context)) { institutionalProposalForm.getNotificationHelper().initializeDefaultValues(context); forward = mapping.findForward("notificationEditor"); } else { getNotificationService().sendNotification(context); } } } return forward; }
@Override public ActionForward save( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = mapping.findForward(Constants.MAPPING_BASIC); InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; InstitutionalProposalDocument document = institutionalProposalForm.getInstitutionalProposalDocument(); List<InstitutionalProposalSpecialReview> specialReviews = document.getInstitutionalProposal().getSpecialReviews(); List<String> linkedProtocolNumbers = institutionalProposalForm.getSpecialReviewHelper().getLinkedProtocolNumbers(); boolean isIPIrbProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIrbProtocolLinkingEnabled(); boolean isIPIacucProtocolLinkingEnabled = institutionalProposalForm.getSpecialReviewHelper().getIsIacucProtocolLinkingEnabled(); if (isIPIrbProtocolLinkingEnabled || isIPIacucProtocolLinkingEnabled) { if (applyRules( new SaveSpecialReviewLinkEvent<InstitutionalProposalSpecialReview>( document, specialReviews, linkedProtocolNumbers))) { institutionalProposalForm .getSpecialReviewHelper() .syncProtocolFundingSourcesWithSpecialReviews(); } } if (applyRules( new SaveSpecialReviewEvent<InstitutionalProposalSpecialReview>( SAVE_SPECIAL_REVIEW_FIELD, document, specialReviews, isIPIrbProtocolLinkingEnabled, isIPIacucProtocolLinkingEnabled))) { // For reasons unknown to me, to enforce saving special review records in order between // successive saves, we must save the document before saving // anything else (like the special review indicator) on the document. This statement can be // safely removed if the special review indicator is no // longer being set at this point... getDocumentService().saveDocument(document); if (!document.getInstitutionalProposal().getSpecialReviews().isEmpty()) { document.getInstitutionalProposal().setSpecialReviewIndicator("1"); } else { document.getInstitutionalProposal().setSpecialReviewIndicator("0"); } forward = super.save(mapping, form, request, response); } return forward; }
/** * Deletes a special review item only if the user confirms it. * * @param mapping the action mapping * @param form the action form * @param request the request * @param response the response * @return the action forward * @throws Exception if unable to delete the special review */ public ActionForward confirmDeleteSpecialReview( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = mapping.findForward(Constants.MAPPING_BASIC); Object question = request.getParameter(KRADConstants.QUESTION_INST_ATTRIBUTE_NAME); if (CONFIRM_DELETE_SPECIAL_REVIEW_KEY.equals(question)) { InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; InstitutionalProposalDocument document = institutionalProposalForm.getInstitutionalProposalDocument(); InstitutionalProposalSpecialReview specialReview = document.getInstitutionalProposal().getSpecialReviews().get(getLineToDelete(request)); document.getInstitutionalProposal().getSpecialReviews().remove(specialReview); if (StringUtils.equals( specialReview.getSpecialReviewType().getSpecialReviewTypeCode(), SpecialReviewType.HUMAN_SUBJECTS)) { InstitutionalProposalNotificationContext context = new InstitutionalProposalNotificationContext( document.getInstitutionalProposal(), "553", "Special Review Deleted", Constants.MAPPING_INSTITUTIONAL_PROPOSAL_SPECIAL_REVIEW_PAGE); if (institutionalProposalForm .getNotificationHelper() .getPromptUserForNotificationEditor(context)) { institutionalProposalForm.getNotificationHelper().initializeDefaultValues(context); forward = mapping.findForward("notificationEditor"); } else { getNotificationService().sendNotification(context); } } } return forward; }
/** * This method gets called upon navigation to Medusa tab. * * @param mapping * @param form * @param request * @param response * @return */ public ActionForward medusa( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { InstitutionalProposalForm institutionalProposalForm = (InstitutionalProposalForm) form; if (institutionalProposalForm.getDocument().getDocumentNumber() == null) { // if we are loading this from the medusa link on the search loadDocumentInForm(request, institutionalProposalForm); } InstitutionalProposalDocument document = (InstitutionalProposalDocument) institutionalProposalForm.getDocument(); institutionalProposalForm.getMedusaBean().setMedusaViewRadio("0"); institutionalProposalForm.getMedusaBean().setModuleName("IP"); institutionalProposalForm .getMedusaBean() .setModuleIdentifier(document.getInstitutionalProposal().getProposalId()); institutionalProposalForm.getMedusaBean().generateParentNodes(); handleAttachmentsDocument(form); return mapping.findForward(Constants.MAPPING_INSTITUTIONAL_PROPOSAL_MEDUSA_PAGE); }