Index: lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java =================================================================== diff -u -r19c9010eff6be2e29657beed94349a978088650f -rc218a41d995cfb24163e4b6bce681808f4f6d92c --- lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java (.../WebUtil.java) (revision 19c9010eff6be2e29657beed94349a978088650f) +++ lams_common/src/java/org/lamsfoundation/lams/util/WebUtil.java (.../WebUtil.java) (revision c218a41d995cfb24163e4b6bce681808f4f6d92c) @@ -8,21 +8,27 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.apache.commons.lang.StringUtils; /** * helper methods useful for servlets */ public class WebUtil { - public static final String CURRENT_TASK_ID = "currentTaskId"; - public static final String COMPLETED_TASK_ID = "completedTaskId"; - public static final String TASK_TO_DISPLAY = "tasktodisplay"; - public static final String SEQUENCE_COMPLETED = "sequenceCompleted"; - public static final String REFRESH_PROGRESS_DATA = "refresh"; - public static final String IS_REUSABLE="isReusable"; + //--------------------------------------------------------------------- + // Class level constants - Session attributs + //--------------------------------------------------------------------- + public static final String PARAM_MODE = "mode"; + public static final String PARAM_SESSION_STATUS = "sessionStatus"; + public static final String PARAM_CONTENT_ID = "content_id"; - + public static final String ATTR_MODE = "mode"; + public static final String ATTR_USERNAME = "username"; + public static final String ATTR_UPDATE_PROGRESS_BAR = "updateProgressBar"; + public static final String ATTR_SESSION_STATUS = "sessionStatus"; + public static final String ATTR_LESSON_ID = "lesson_id"; + private static Logger log = Logger.getLogger(WebUtil.class); /** @@ -68,36 +74,7 @@ } /** - * - * - * @param HttpServletRequest */ - public static void setRefresh(HttpServletRequest req, boolean refreshValue) - { - req.getSession().setAttribute(REFRESH_PROGRESS_DATA, - Boolean.toString(refreshValue)); - } - - /** - * This method is called each time a task has to be displayed. In this - * method we are setting some attributes in the Http Session. - * - * @param HttpServletRequest - * @param DisplayTaskData - - * contains the data's task. - */ - public static void initTaskAttributes(HttpServletRequest req) - { - req.getSession().setAttribute(CURRENT_TASK_ID, "-1"); - req.getSession().setAttribute(COMPLETED_TASK_ID, "-1"); - req.getSession().setAttribute(TASK_TO_DISPLAY, null); - req.getSession().setAttribute(SEQUENCE_COMPLETED, "false"); - req.getSession().setAttribute(REFRESH_PROGRESS_DATA, "false"); - req.getSession().setAttribute(IS_REUSABLE,"false"); - } - - /** - */ public static void saveToken(HttpServletRequest req, String tokenName, String tokenValue) @@ -290,7 +267,12 @@ return defaultValue; } } - + + public static boolean readBooleanAttr(HttpServletRequest req, + String attrName) + { + return checkBoolean(attrName, (String)req.getSession().getAttribute(attrName)); + } /** * TODO default proper exception at lams level to replace RuntimeException * @param req - @@ -331,7 +313,26 @@ else throw new IllegalArgumentException("["+mode+"] is not a legal mode" + "in LAMS"); - } + /** + *

This helper method create the struts action forward name using the path. + * It will chop all path related characters, such as "/" and ".do".

+ * + *

For example: + *

  • getStrutsForwardNameFromPath("/DisplayParallelActivity.do") + * = displayParallelActivity
  • + *

    + * + * @param path + * @return + */ + public static String getStrutsForwardNameFromPath(String path) + { + String pathWithoutSlash = StringUtils.substringAfter(path,"/"); + String orginalForwardName = StringUtils.chomp(pathWithoutSlash,".do"); + + return StringUtils.uncapitalize(orginalForwardName); + + } } \ No newline at end of file Index: lams_common/test/java/org/lamsfoundation/lams/util/TestWebUtil.java =================================================================== diff -u -r19c9010eff6be2e29657beed94349a978088650f -rc218a41d995cfb24163e4b6bce681808f4f6d92c --- lams_common/test/java/org/lamsfoundation/lams/util/TestWebUtil.java (.../TestWebUtil.java) (revision 19c9010eff6be2e29657beed94349a978088650f) +++ lams_common/test/java/org/lamsfoundation/lams/util/TestWebUtil.java (.../TestWebUtil.java) (revision c218a41d995cfb24163e4b6bce681808f4f6d92c) @@ -76,6 +76,7 @@ fail("IllegalArgumentException expected"); } } + public void testReadNullToolAccessModeParam() { try @@ -91,4 +92,25 @@ fail("IllegalArgumentException expected"); } } + + public void testGetStrutsForwardNameFromPath() + { + String name = WebUtil.getStrutsForwardNameFromPath("/DisplayParallelActivity.do"); + assertEquals("displayParallelActivity",name); + + name = WebUtil.getStrutsForwardNameFromPath("/DisplayOptionsActivity.do"); + assertEquals("displayOptionsActivity",name); + + name = WebUtil.getStrutsForwardNameFromPath("/LoadToolActivity.do"); + assertEquals("loadToolActivity",name); + + name = WebUtil.getStrutsForwardNameFromPath("/parallelWait.do"); + assertEquals("parallelWait",name); + + name = WebUtil.getStrutsForwardNameFromPath("/lessonComplete.do"); + assertEquals("lessonComplete",name); + + name = WebUtil.getStrutsForwardNameFromPath("/requestDisplay.do"); + assertEquals("requestDisplay",name); + } }