Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java =================================================================== diff -u -r8ea17868afd6bfcb9481c78254ded0f4d86cb251 -r00294d4a7ec90fbdac3951f4130dbcecf8cbf543 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 8ea17868afd6bfcb9481c78254ded0f4d86cb251) +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 00294d4a7ec90fbdac3951f4130dbcecf8cbf543) @@ -113,5 +113,26 @@ * @param accessMode tool access mode. * @return the tool access url with tool session id and access mode. */ - public String getToolURLByMode(ToolActivity activity, User learner, ToolAccessMode accessMode) throws LamsToolServiceException; + public String getLearnerToolURLByMode(ToolActivity activity, User learner, ToolAccessMode accessMode) throws LamsToolServiceException; + + /** + *
Setup target tool url with tool session id parameter based on the tool + * activity and learner.
+ * + * @param activity the activity that requested tool session belongs to. + * @param learner the user who invloved the tool session. + * @param toolURL the target url. + * @throws LamsToolServiceException + * @return the url with tool session id. + */ + public String setupToolURLWithToolSession(ToolActivity activity,User learner,String toolURL) throws LamsToolServiceException; + + /** + *Setup target tool url with tool content id parameter based on the tool + * activity and learner.
+ * @param activity the requested activity. + * @param toolURL the target url + * @return the url with tool content id. + */ + public String setupToolURLWithToolContent(ToolActivity activity,String toolURL); } Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java =================================================================== diff -u -r8ea17868afd6bfcb9481c78254ded0f4d86cb251 -r00294d4a7ec90fbdac3951f4130dbcecf8cbf543 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 8ea17868afd6bfcb9481c78254ded0f4d86cb251) +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 00294d4a7ec90fbdac3951f4130dbcecf8cbf543) @@ -119,9 +119,7 @@ */ public ToolSession getToolSessionByActivity(User learner, ToolActivity toolActivity) throws LamsToolServiceException { - //TODO need to be changed to grouping flag when grouping activity is mapped - //properly. - if(toolActivity.getGrouping()!=null) + if(toolActivity.getApplyGrouping().booleanValue()) { Group learnerGroup = toolActivity.getGrouping().getGroupBy(learner); @@ -176,34 +174,59 @@ } /** - * @throws LamsToolServiceException - * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#getToolURLByMode(org.lamsfoundation.lams.learningdesign.ToolActivity, org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.tool.ToolAccessMode) + * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#getLearnerToolURLByMode(org.lamsfoundation.lams.learningdesign.ToolActivity, org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.tool.ToolAccessMode) */ - public String getToolURLByMode(ToolActivity activity, User learner, ToolAccessMode accessMode) throws LamsToolServiceException + public String getLearnerToolURLByMode(ToolActivity activity, + User learner, + ToolAccessMode accessMode) throws LamsToolServiceException { - ToolSession toolSession = toolSessionDAO.getToolSessionByLearner(learner, activity); - if(accessMode==ToolAccessMode.LEARNER) - // Append toolSessionId to tool URL - return activity.getTool().getLearnerUrl() + "&" - + WebUtil.PARAM_TOOL_SESSION_ID + "=" - + toolSession.getToolSessionId().toString() + "&" - + WebUtil.PARAM_MODE + "=" + ToolAccessMode.LEARNER; + return setupToolURLWithToolSession(activity, + learner, + WebUtil.appendParameterToURL(activity.getTool().getLearnerUrl(), + WebUtil.PARAM_MODE, + ToolAccessMode.LEARNER.toString())); else if(accessMode == ToolAccessMode.TEACHER) - // Append toolSessionId to tool URL - return activity.getTool().getLearnerUrl() + "&" - + WebUtil.PARAM_TOOL_SESSION_ID + "=" - + toolSession.getToolSessionId().toString() + "&" - + WebUtil.PARAM_MODE + "=" + ToolAccessMode.TEACHER; + return setupToolURLWithToolSession(activity, + learner, + WebUtil.appendParameterToURL(activity.getTool().getLearnerUrl(), + WebUtil.PARAM_MODE, + ToolAccessMode.TEACHER.toString())); else if (accessMode == ToolAccessMode.AUTHOR) - // Append toolSessionId to tool URL - return activity.getTool().getAuthorUrl() + "&" - + WebUtil.PARAM_TOOL_SESSION_ID + "=" - + toolSession.getToolSessionId().toString() + "&" - + WebUtil.PARAM_MODE + "=" + ToolAccessMode.TEACHER; + return setupToolURLWithToolSession(activity, + learner, + WebUtil.appendParameterToURL(activity.getTool().getLearnerUrl(), + WebUtil.PARAM_MODE, + ToolAccessMode.AUTHOR.toString())); throw new LamsToolServiceException("Unknown tool access mode:"+accessMode.toString()); - } + } + + + /** + * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#setupToolURLWithToolSession(org.lamsfoundation.lams.learningdesign.ToolActivity, org.lamsfoundation.lams.usermanagement.User, java.lang.String) + */ + public String setupToolURLWithToolSession(ToolActivity activity, + User learner, + String toolURL) throws LamsToolServiceException + { + ToolSession toolSession = this.getToolSessionByActivity(learner,activity); + + return WebUtil.appendParameterToURL(toolURL, + WebUtil.PARAM_TOOL_SESSION_ID, + toolSession.getToolSessionId().toString()); + } + + /** + * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#setupToolURLWithToolContent(org.lamsfoundation.lams.learningdesign.ToolActivity, java.lang.String) + */ + public String setupToolURLWithToolContent(ToolActivity activity, + String toolURL) + { + return WebUtil.appendParameterToURL(toolURL, + WebUtil.PARAM_CONTENT_ID, + activity.getToolContentId().toString()); + } //--------------------------------------------------------------------- // Helper Methods //---------------------------------------------------------------------