Index: lams_tool_lamc/build.xml =================================================================== diff -u -r6564c5e1742e3742a5ccb075f56ff00f1a8e6426 -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/build.xml (.../build.xml) (revision 6564c5e1742e3742a5ccb075f56ff00f1a8e6426) +++ lams_tool_lamc/build.xml (.../build.xml) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -240,36 +240,35 @@ - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - + + + Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java =================================================================== diff -u -r4336aafba788b801aa78c2dc27f8d07a2f932be7 -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision 4336aafba788b801aa78c2dc27f8d07a2f932be7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java (.../McAppConstants.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -112,6 +112,8 @@ public static final String MAP_QUESTIONS_CONTENT ="mapQuestionsContent"; public static final String MAP_OPTIONS_CONTENT ="mapOptionsContent"; public static final String MAP_DEFAULTOPTIONS_CONTENT ="mapDefaultOptionsContent"; + public static final String SELECTED_QUESTION_CONTENT_UID ="selectedQuestionContentUid"; + public static final String SELECTED_QUESTION ="selectedQuestion"; public static final String MAP_QUESTION_CONTENT ="mapQuestionContent"; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java =================================================================== diff -u -r562680abb2d5566e7972f1ee4a1993fbbebc4ca9 -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java (.../IMcOptionsContentDAO.java) (revision 562680abb2d5566e7972f1ee4a1993fbbebc4ca9) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcOptionsContentDAO.java (.../IMcOptionsContentDAO.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -43,6 +43,8 @@ public void updateMcOptionsContent(McOptsContent mcOptionsContent); public void removeMcOptionsContentByUID(Long uid); + + public void removeMcOptionsContentByQueId(Long mcQueContentId); public void removeMcOptionsContent(McOptsContent mcOptsContent); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java (.../IMcQueContentDAO.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcQueContentDAO.java (.../IMcQueContentDAO.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -36,7 +36,7 @@ public McQueContent getToolDefaultQuestionContent(final long mcContentId); - public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentId); + public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentUid); public void saveMcQueContent(McQueContent mcQueContent); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java =================================================================== diff -u -r562680abb2d5566e7972f1ee4a1993fbbebc4ca9 -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java (.../McOptionsContentDAO.java) (revision 562680abb2d5566e7972f1ee4a1993fbbebc4ca9) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McOptionsContentDAO.java (.../McOptionsContentDAO.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -21,9 +21,12 @@ * ***********************************************************************/ package org.lamsfoundation.lams.tool.mc.dao.hibernate; +import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; +import org.hibernate.FlushMode; +import org.lamsfoundation.lams.tool.mc.McContent; import org.lamsfoundation.lams.tool.mc.McOptsContent; import org.lamsfoundation.lams.tool.mc.dao.IMcOptionsContentDAO; import org.springframework.orm.hibernate3.HibernateTemplate; @@ -81,6 +84,23 @@ this.getHibernateTemplate().delete(mco); } + + public void removeMcOptionsContentByQueId(Long mcQueContentId) + { + HibernateTemplate templ = this.getHibernateTemplate(); + List list = getSession().createQuery(FIND_MC_OPTIONS_CONTENT) + .setLong(0,mcQueContentId.longValue()) + .list(); + + if(list != null && list.size() > 0){ + Iterator listIterator=list.iterator(); + while (listIterator.hasNext()) + { + McOptsContent mcOptsContent=(McOptsContent)listIterator.next(); + templ.delete(mcOptsContent); + } + } + } public void removeMcOptionsContent(McOptsContent mcOptsContent) Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java (.../McQueContentDAO.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McQueContentDAO.java (.../McQueContentDAO.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -47,7 +47,7 @@ private static final String LOAD_QUESTION_CONTENT_BY_CONTENT_ID = "from mcQueContent in class McQueContent where mcQueContent.mcContentId=:mcContentId"; - private static final String LOAD_QUESTION_CONTENT_BY_QUESTION_TEXT = "from mcQueContent in class McQueContent where mcQueContent.question=:question and mcQueContent.mcContentId=:mcContentId"; + private static final String LOAD_QUESTION_CONTENT_BY_QUESTION_TEXT = "from mcQueContent in class McQueContent where mcQueContent.question=:question and mcQueContent.mcContentId=:mcContentUid"; public McQueContent getMcQueContentByUID(Long uid) @@ -72,12 +72,12 @@ } - public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentId) + public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentUid) { HibernateTemplate templ = this.getHibernateTemplate(); List list = getSession().createQuery(LOAD_QUESTION_CONTENT_BY_QUESTION_TEXT) .setString("question", question) - .setLong("mcContentId", mcContentId.longValue()) + .setLong("mcContentUid", mcContentUid.longValue()) .list(); if(list != null && list.size() > 0){ Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java (.../IMcService.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -73,8 +73,10 @@ public void removeMcQueContent(McQueContent mcQueContent) throws McApplicationException; - public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentId); + public void removeMcOptionsContentByQueId(Long mcQueContentId) throws McApplicationException; + public McQueContent getQuestionContentByQuestionText(final String question, final Long mcContentUid); + public McSession retrieveMcSession(Long mcSessionId) throws McApplicationException; public McContent retrieveMcBySessionId(Long mcSessionId) throws McApplicationException; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -507,6 +507,22 @@ } } + + public void removeMcOptionsContentByQueId(Long mcQueContentId) throws McApplicationException + { + try + { + mcOptionsContentDAO.removeMcOptionsContentByQueId(mcQueContentId); + } + catch (DataAccessException e) + { + throw new McApplicationException("Exception occured when lams is removing by que id" + + " the mc options content: " + + e.getMessage(),e); + } + } + + public void deleteMcOptionsContentByUID(Long uid) throws McApplicationException { try Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -243,35 +243,10 @@ request.setAttribute(USER_ACTION, userAction); logger.debug("userAction:" + userAction); - int mapSize=mapQuestionsContent.size(); - mapQuestionsContent.put(new Long(++mapSize).toString(), ""); - logger.debug("updated Questions Map size: " + mapQuestionsContent.size()); - request.getSession().setAttribute(MAP_QUESTIONS_CONTENT, mapQuestionsContent); - logger.debug("updated Questions Map: " + request.getSession().getAttribute(MAP_QUESTIONS_CONTENT)); - - McContent mcContent=createContent(request, mcAuthoringForm); - logger.debug("mcContent: " + mcContent); - - /** iterate the questions Map and persist the questions into the DB*/ - Iterator itQuestionsMap = mapQuestionsContent.entrySet().iterator(); - while (itQuestionsMap.hasNext()) { - Map.Entry pairs = (Map.Entry)itQuestionsMap.next(); - logger.debug("adding the pair: " + pairs.getKey() + " = " + pairs.getValue()); - if ((pairs.getValue() != null) && (!pairs.getValue().equals(""))) - { - McQueContent mcQueContent= new McQueContent(pairs.getValue().toString(), - new Integer(pairs.getKey().toString()), - mcContent, - new HashSet(), - new HashSet() - ); - logger.debug("created mcQueContent: " + mcQueContent); - mcService.createMcQue(mcQueContent); - } - } - - - mcAuthoringForm.resetUserAction(); + addQuestion(request, mcAuthoringForm, mapQuestionsContent); + logger.debug("after addQuestion"); + + mcAuthoringForm.resetUserAction(); return (mapping.findForward(LOAD_QUESTIONS)); } else if (mcAuthoringForm.getRemoveQuestion() != null) @@ -322,9 +297,28 @@ Long toolContentId=(Long)request.getSession().getAttribute(TOOL_CONTENT_ID); logger.debug("toolContentId:" + toolContentId); + + McContent mcContent=mcService.retrieveMc(toolContentId); + logger.debug("mcContent:" + mcContent); + + if (mcContent == null) + { + logger.debug("convenience add"); + addQuestion(request, mcAuthoringForm, mapQuestionsContent); + logger.debug("after addQuestion"); + mcContent=mcService.retrieveMc(toolContentId); + logger.debug("mcContent:" + mcContent); + } + logger.debug("mcContent uid :" + mcContent.getUid()); + + McQueContent mcQueContent =mcService.getQuestionContentByQuestionText(editableQuestionEntry, mcContent.getUid()); + logger.debug("mcQueContent:" + mcQueContent); - McQueContent mcQueContent =mcService.getQuestionContentByQuestionText(editableQuestionEntry, toolContentId); - logger.debug("mcQueContent:" + mcQueContent); + request.getSession().setAttribute(SELECTED_QUESTION, mcQueContent.getQuestion()); + logger.debug("SELECTED_QUESTION:" + request.getSession().getAttribute(SELECTED_QUESTION)); + + request.getSession().setAttribute(SELECTED_QUESTION_CONTENT_UID, mcQueContent.getUid() ); + logger.debug("SELECTED_QUESTION_CONTENT_UID:" + request.getSession().getAttribute(SELECTED_QUESTION_CONTENT_UID)); Map mapOptionsContent= new TreeMap(new McComparator()); logger.debug("initialized mapOptionsContent:" + mapOptionsContent); @@ -334,16 +328,26 @@ /** hold all he options for this question*/ List list=mcService.findMcOptionsContentByQueId(mcQueContent.getUid()); logger.debug("options list:" + list); - - Iterator listIterator=list.iterator(); - Long mapIndex=new Long(1); - while (listIterator.hasNext()) + + if (list.size() == 0) { - McOptsContent mcOptsContent=(McOptsContent)listIterator.next(); - logger.debug("option text:" + mcOptsContent.getMcQueOptionText()); - mapOptionsContent.put(mapIndex.toString(),mcOptsContent.getMcQueOptionText()); - mapIndex=new Long(mapIndex.longValue()+1); + logger.debug("empty options list: this is a new question content created by the user and has no options yet"); + mapOptionsContent=(Map) request.getSession().getAttribute(MAP_DEFAULTOPTIONS_CONTENT); + logger.debug("mapOptionsContent is the default options Map: " + mapOptionsContent); } + else + { + logger.debug("not an empty options list"); + Iterator listIterator=list.iterator(); + Long mapIndex=new Long(1); + while (listIterator.hasNext()) + { + McOptsContent mcOptsContent=(McOptsContent)listIterator.next(); + logger.debug("option text:" + mcOptsContent.getMcQueOptionText()); + mapOptionsContent.put(mapIndex.toString(),mcOptsContent.getMcQueOptionText()); + mapIndex=new Long(mapIndex.longValue()+1); + } + } request.getSession().setAttribute(MAP_OPTIONS_CONTENT, mapOptionsContent); logger.debug("updated the Options Map: " + request.getSession().getAttribute(MAP_OPTIONS_CONTENT)); } @@ -357,6 +361,7 @@ logger.debug("updated the Options Map with the default Map: " + request.getSession().getAttribute(MAP_OPTIONS_CONTENT)); } + mcAuthoringForm.resetUserAction(); return (mapping.findForward(EDIT_OPTS_CONTENT)); } @@ -376,33 +381,25 @@ int mapSize=mapOptionsContent.size(); mapOptionsContent.put(new Long(++mapSize).toString(), ""); logger.debug("updated mapOptionsContent Map size: " + mapOptionsContent.size()); - request.getSession().setAttribute(MAP_OPTIONS_CONTENT, mapQuestionsContent); + request.getSession().setAttribute(MAP_OPTIONS_CONTENT, mapOptionsContent); logger.debug("updated Options Map: " + request.getSession().getAttribute(MAP_OPTIONS_CONTENT)); - McContent mcContent=createContent(request, mcAuthoringForm); - logger.debug("mcContent: " + mcContent); - - /** iterate the questions Map and persist the questions into the DB*/ - Iterator itQuestionsMap = mapQuestionsContent.entrySet().iterator(); - while (itQuestionsMap.hasNext()) { - Map.Entry pairs = (Map.Entry)itQuestionsMap.next(); - logger.debug("adding the pair: " + pairs.getKey() + " = " + pairs.getValue()); - if ((pairs.getValue() != null) && (!pairs.getValue().equals(""))) - { - McQueContent mcQueContent= new McQueContent(pairs.getValue().toString(), - new Integer(pairs.getKey().toString()), - mcContent, - new HashSet(), - new HashSet() - ); - logger.debug("created mcQueContent: " + mcQueContent); - mcService.createMcQue(mcQueContent); - } - } - - - mcAuthoringForm.resetUserAction(); - + Long selectedQuestionContentUid=(Long) request.getSession().getAttribute(SELECTED_QUESTION_CONTENT_UID); + logger.debug("selectedQuestionContentUid:" + selectedQuestionContentUid); + + McQueContent mcQueContent = mcService.retrieveMcQueContentByUID(selectedQuestionContentUid); + logger.debug("mcQueContent:" + mcQueContent); + + if (mcQueContent != null) + { + McOptsContent mcOptionsContent= new McOptsContent(false, "a sample answer", mcQueContent, new HashSet()); + logger.debug("mcOptionsContent:" + mcOptionsContent); + mcService.saveMcOptionsContent(mcOptionsContent); + logger.debug("persisted a sample answer: " + mcOptionsContent); + } + + + mcAuthoringForm.resetUserAction(); return (mapping.findForward(EDIT_OPTS_CONTENT)); } else if (mcAuthoringForm.getRemoveOption() != null) @@ -413,12 +410,21 @@ String optionIndex =mcAuthoringForm.getOptionIndex(); logger.debug("optionIndex:" + optionIndex); - + + mcAuthoringForm.resetUserAction(); return (mapping.findForward(EDIT_OPTS_CONTENT)); } + else if (mcAuthoringForm.getDoneOptions() != null) + { + userAction="doneOptions"; + request.setAttribute(USER_ACTION, userAction); + logger.debug("userAction:" + userAction); + + mcAuthoringForm.resetUserAction(); + return (mapping.findForward(LOAD_QUESTIONS)); + } - mcAuthoringForm.resetUserAction(); return (mapping.findForward(LOAD_QUESTIONS)); } @@ -627,6 +633,37 @@ } + protected void addQuestion(HttpServletRequest request, McAuthoringForm mcAuthoringForm, Map mapQuestionsContent) + { + IMcService mcService =McUtils.getToolService(request); + + int mapSize=mapQuestionsContent.size(); + mapQuestionsContent.put(new Long(++mapSize).toString(), ""); + logger.debug("updated Questions Map size: " + mapQuestionsContent.size()); + request.getSession().setAttribute(MAP_QUESTIONS_CONTENT, mapQuestionsContent); + logger.debug("updated Questions Map: " + request.getSession().getAttribute(MAP_QUESTIONS_CONTENT)); + + McContent mcContent=createContent(request, mcAuthoringForm); + logger.debug("mcContent: " + mcContent); + + /** iterate the questions Map and persist the questions into the DB*/ + Iterator itQuestionsMap = mapQuestionsContent.entrySet().iterator(); + while (itQuestionsMap.hasNext()) { + Map.Entry pairs = (Map.Entry)itQuestionsMap.next(); + logger.debug("adding the pair: " + pairs.getKey() + " = " + pairs.getValue()); + if ((pairs.getValue() != null) && (!pairs.getValue().equals(""))) + { + McQueContent mcQueContent= new McQueContent(pairs.getValue().toString(), + new Integer(pairs.getKey().toString()), + mcContent, + new HashSet(), + new HashSet() + ); + logger.debug("created mcQueContent: " + mcQueContent); + mcService.createMcQue(mcQueContent); + } + } + } /** Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java (.../McAuthoringForm.java) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java (.../McAuthoringForm.java) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -29,6 +29,7 @@ protected String editOptions; protected String addOption; protected String removeOption; + protected String doneOptions; protected String questionIndex; protected String optionIndex; @@ -98,6 +99,7 @@ this.editOptions=null; this.addOption=null; this.removeOption=null; + this.doneOptions=null; this.addContent=null; this.removeContent=null; @@ -124,6 +126,7 @@ this.editOptions=null; this.addOption=null; this.removeOption=null; + this.doneOptions=null; this.addContent=null; this.removeContent=null; @@ -721,4 +724,16 @@ public void setRemoveOption(String removeOption) { this.removeOption = removeOption; } + /** + * @return Returns the doneOptions. + */ + public String getDoneOptions() { + return doneOptions; + } + /** + * @param doneOptions The doneOptions to set. + */ + public void setDoneOptions(String doneOptions) { + this.doneOptions = doneOptions; + } } Index: lams_tool_lamc/web/authoringMaincontent.jsp =================================================================== diff -u -rb9d979e7f1478db56c700664c515c4036557f29f -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/web/authoringMaincontent.jsp (.../authoringMaincontent.jsp) (revision b9d979e7f1478db56c700664c515c4036557f29f) +++ lams_tool_lamc/web/authoringMaincontent.jsp (.../authoringMaincontent.jsp) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -1,4 +1,3 @@ - <%@ taglib uri="/WEB-INF/struts-html-el.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic-el.tld" prefix="logic-el" %> @@ -7,7 +6,6 @@ <%@ taglib uri="fck-editor" prefix="FCK" %> - <% String protocol = request.getProtocol(); if(protocol.startsWith("HTTPS")){ Index: lams_tool_lamc/web/editOptionsContent.jsp =================================================================== diff -u -r671255080ca12fba787bcf07b5d0d196fc96c5ea -r284785a0cc2d61ac8a129a69888b3442141904ab --- lams_tool_lamc/web/editOptionsContent.jsp (.../editOptionsContent.jsp) (revision 671255080ca12fba787bcf07b5d0d196fc96c5ea) +++ lams_tool_lamc/web/editOptionsContent.jsp (.../editOptionsContent.jsp) (revision 284785a0cc2d61ac8a129a69888b3442141904ab) @@ -101,6 +101,16 @@

Edit Question Options

+ + + + + + @@ -134,7 +144,18 @@ + + +
+ +
+    +
+ + + +
+ + +

Cancel