Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r234809e3e6cc8d1978aa128d8d2cd91ccea41fb9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 234809e3e6cc8d1978aa128d8d2cd91ccea41fb9) @@ -44,9 +44,9 @@ import org.springframework.web.multipart.MultipartFile; /** + * Interface that defines the contract that all ShareResource service provider must follow. + * * @author Dapeng.Ni - * - * Interface that defines the contract that all ShareResource service provider must follow. */ public interface IResourceService extends ICommonToolService { @@ -74,7 +74,7 @@ * @param resourceUid * @return */ - List getAuthoredItems(Long resourceUid); + List getAuthoredItems(Long resourceUid); /** * Upload resource item file to repository. i.e., single file, websize zip file, or learning object zip file. Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r234809e3e6cc8d1978aa128d8d2cd91ccea41fb9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 234809e3e6cc8d1978aa128d8d2cd91ccea41fb9) @@ -160,7 +160,7 @@ public Resource getDefaultContent(Long contentId) throws ResourceApplicationException { if (contentId == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); - ResourceServiceImpl.log.error(error); + log.error(error); throw new ResourceApplicationException(error); } @@ -172,7 +172,7 @@ } @Override - public List getAuthoredItems(Long resourceUid) { + public List getAuthoredItems(Long resourceUid) { return resourceItemDao.getAuthoringItems(resourceUid); } @@ -183,16 +183,12 @@ @Override public ResourceUser getUserByIDAndContent(Long userId, Long contentId) { - return resourceUserDao.getUserByUserIDAndContentID(userId, contentId); - } @Override public ResourceUser getUserByIDAndSession(Long userId, Long sessionId) { - return resourceUserDao.getUserByUserIDAndSessionID(userId, sessionId); - } @Override @@ -214,7 +210,7 @@ public List getResourceItemsBySessionId(Long sessionId) { ResourceSession session = resourceSessionDao.getSessionBySessionId(sessionId); if (session == null) { - ResourceServiceImpl.log.error("Failed get ResourceSession by ID [" + sessionId + "]"); + log.error("Failed get ResourceSession by ID [" + sessionId + "]"); return null; } // add resource items from Authoring @@ -322,7 +318,7 @@ int miniView = resourceItemVisitDao.getUserViewLogCount(toolSessionId, userUid); ResourceSession session = resourceSessionDao.getSessionBySessionId(toolSessionId); if (session == null) { - ResourceServiceImpl.log.error("Failed get session by ID [" + toolSessionId + "]"); + log.error("Failed get session by ID [" + toolSessionId + "]"); return 0; } int reqView = session.getResource().getMiniViewResourceNumber(); @@ -508,7 +504,7 @@ if (session != null) { toolContentId = session.getResource().getContentId(); } else { - ResourceServiceImpl.log.error("setItemVisible: Failed get ResourceSession by ID [" + sessionId + log.error("setItemVisible: Failed get ResourceSession by ID [" + sessionId + "]. Audit log entry will be created but will be missing tool content id"); } } @@ -581,19 +577,18 @@ Resource defaultResource = getResourceByContentId(defaultResourceId); if (defaultResource == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); - ResourceServiceImpl.log.error(error); + log.error(error); throw new ResourceApplicationException(error); } return defaultResource; } private Long getToolDefaultContentIdBySignature(String toolSignature) throws ResourceApplicationException { - Long contentId = null; - contentId = new Long(toolService.getToolDefaultContentIdBySignature(toolSignature)); + Long contentId = toolService.getToolDefaultContentIdBySignature(toolSignature); if (contentId == null) { String error = messageService.getMessage("error.msg.default.content.not.find"); - ResourceServiceImpl.log.error(error); + log.error(error); throw new ResourceApplicationException(error); } return contentId; @@ -682,14 +677,13 @@ item.setFileType(fileType); item.setFileName(fileName); } catch (ZipFileUtilException e) { - ResourceServiceImpl.log - .error(messageService.getMessage("error.msg.zip.file.exception") + " : " + e.toString()); + log.error(messageService.getMessage("error.msg.zip.file.exception") + " : " + e.toString()); throw new UploadResourceFileException(messageService.getMessage("error.msg.zip.file.exception")); } catch (FileNotFoundException e) { - ResourceServiceImpl.log.error(messageService.getMessage("error.msg.file.not.found") + ":" + e.toString()); + log.error(messageService.getMessage("error.msg.file.not.found") + ":" + e.toString()); throw new UploadResourceFileException(messageService.getMessage("error.msg.file.not.found")); } catch (IOException e) { - ResourceServiceImpl.log.error(messageService.getMessage("error.msg.io.exception") + ":" + e.toString()); + log.error(messageService.getMessage("error.msg.io.exception") + ":" + e.toString()); throw new UploadResourceFileException(messageService.getMessage("error.msg.io.exception")); } } @@ -805,15 +799,14 @@ // reset it to new toolContentId toolContentObj.setContentId(toolContentId); - ResourceUser user = resourceUserDao.getUserByUserIDAndContentID(new Long(newUserUid.longValue()), - toolContentId); + ResourceUser user = resourceUserDao.getUserByUserIDAndContentID(newUserUid.longValue(), toolContentId); if (user == null) { user = new ResourceUser(); UserDTO sysUser = ((User) userManagementService.findById(User.class, newUserUid)).getUserDTO(); user.setFirstName(sysUser.getFirstName()); user.setLastName(sysUser.getLastName()); user.setLoginName(sysUser.getLogin()); - user.setUserId(new Long(newUserUid.longValue())); + user.setUserId(newUserUid.longValue()); user.setResource(toolContentObj); } toolContentObj.setCreatedBy(user); @@ -875,11 +868,11 @@ resourceDao.saveObject(toContent); // save resource items as well - Set items = toContent.getResourceItems(); + Set items = toContent.getResourceItems(); if (items != null) { - Iterator iter = items.iterator(); + Iterator iter = items.iterator(); while (iter.hasNext()) { - ResourceItem item = (ResourceItem) iter.next(); + ResourceItem item = iter.next(); // createRootTopic(toContent.getUid(),null,msg); } } @@ -920,7 +913,7 @@ public void removeToolContent(Long toolContentId) throws ToolException { Resource resource = resourceDao.getByContentId(toolContentId); if (resource == null) { - ResourceServiceImpl.log.warn("Can not remove the tool content as it does not exist, ID: " + toolContentId); + log.warn("Can not remove the tool content as it does not exist, ID: " + toolContentId); return; } @@ -935,16 +928,15 @@ } @Override - @SuppressWarnings("unchecked") public void removeLearnerContent(Long toolContentId, Integer userId) throws ToolException { - if (ResourceServiceImpl.log.isDebugEnabled()) { - ResourceServiceImpl.log.debug( + if (log.isDebugEnabled()) { + log.debug( "Removing Share Resources content for user ID " + userId + " and toolContentId " + toolContentId); } Resource resource = resourceDao.getByContentId(toolContentId); if (resource == null) { - ResourceServiceImpl.log + log .warn("Did not find activity with toolContentId: " + toolContentId + " to remove learner content"); return; } @@ -999,11 +991,11 @@ @Override public String leaveToolSession(Long toolSessionId, Long learnerId) throws DataMissingException, ToolException { if (toolSessionId == null) { - ResourceServiceImpl.log.error("Fail to leave tool Session based on null tool session id."); + log.error("Fail to leave tool Session based on null tool session id."); throw new ToolException("Fail to remove tool Session based on null tool session id."); } if (learnerId == null) { - ResourceServiceImpl.log.error("Fail to leave tool Session based on null learner."); + log.error("Fail to leave tool Session based on null learner."); throw new ToolException("Fail to remove tool Session based on null learner."); } @@ -1012,7 +1004,7 @@ session.setStatus(ResourceConstants.COMPLETED); resourceSessionDao.saveObject(session); } else { - ResourceServiceImpl.log.error("Fail to leave tool Session.Could not find shared resources " + log.error("Fail to leave tool Session.Could not find shared resources " + "session by given session id: " + toolSessionId); throw new DataMissingException("Fail to leave tool Session." + "Could not find shared resource session by given session id: " + toolSessionId); @@ -1246,7 +1238,7 @@ // **************************** Handle topic ********************* ArrayNode resources = JsonUtil.optArray(toolContentJSON, "resources"); - Set itemList = new LinkedHashSet(); + Set itemList = new LinkedHashSet<>(); for (JsonNode itemData : resources) { ResourceItem item = new ResourceItem(); item.setTitle(JsonUtil.optString(itemData, "title")); @@ -1270,7 +1262,7 @@ ArrayNode instructionStrings = JsonUtil.optArray(itemData, "instructions"); if ((instructionStrings != null) && (instructionStrings.size() > 0)) { - Set instructions = new LinkedHashSet(); + Set instructions = new LinkedHashSet<>(); for (int j = 0; j < instructionStrings.size(); j++) { ResourceItemInstruction rii = new ResourceItemInstruction(); rii.setDescription(instructionStrings.get(j).asText(null)); @@ -1288,11 +1280,9 @@ itemList.add(item); } - resource.setResourceItems(itemList); saveOrUpdateResource(resource); - } @Override Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java =================================================================== diff -u -r0a46648d9547d3fca73e1931d4e628be7e1acd7b -r234809e3e6cc8d1978aa128d8d2cd91ccea41fb9 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 0a46648d9547d3fca73e1931d4e628be7e1acd7b) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 234809e3e6cc8d1978aa128d8d2cd91ccea41fb9) @@ -56,8 +56,6 @@ import org.lamsfoundation.lams.tool.rsrc.model.ResourceItemInstruction; import org.lamsfoundation.lams.tool.rsrc.model.ResourceUser; import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; -import org.lamsfoundation.lams.tool.rsrc.service.ResourceApplicationException; -import org.lamsfoundation.lams.tool.rsrc.service.UploadResourceFileException; import org.lamsfoundation.lams.tool.rsrc.util.ResourceItemComparator; import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceForm; import org.lamsfoundation.lams.tool.rsrc.web.form.ResourceItemForm; @@ -120,19 +118,12 @@ * Remove resource item from HttpSession list and update page display. As * authoring rule, all persist only happen when user submit whole page. So * this remove is just impact HttpSession values. - * - * @param request - * @return */ @RequestMapping("/removeItem") - private String removeItem(@ModelAttribute("resourceItemForm") ResourceItemForm resourceItemForm, - HttpServletRequest request) { + private String removeItem(@ModelAttribute ResourceItemForm resourceItemForm, HttpServletRequest request) { + SessionMap sessionMap = getSessionMap(request); - // get back sessionMAP - String sessionMapID = WebUtil.readStrParam(request, ResourceConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession() - .getAttribute(sessionMapID); - + @SuppressWarnings("deprecation") int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX), -1); if (itemIdx != -1) { SortedSet resourceList = getResourceItemList(sessionMap); @@ -141,11 +132,10 @@ resourceList.clear(); resourceList.addAll(rList); // add to delList - List delList = getDeletedResourceItemList(sessionMap); + List delList = getDeletedResourceItemList(sessionMap); delList.add(item); } - request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, sessionMapID); return "pages/authoring/parts/itemlist"; } @@ -157,14 +147,9 @@ * @return */ @RequestMapping("/editItemInit") - private String editItemInit(@ModelAttribute("resourceItemForm") ResourceItemForm resourceItemForm, - HttpServletRequest request) { + private String editItemInit(@ModelAttribute ResourceItemForm resourceItemForm, HttpServletRequest request) { + SessionMap sessionMap = getSessionMap(request); - // get back sessionMAP - String sessionMapID = WebUtil.readStrParam(request, ResourceConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession() - .getAttribute(sessionMapID); - int itemIdx = NumberUtils.stringToInt(request.getParameter(ResourceConstants.PARAM_ITEM_INDEX), -1); ResourceItem item = null; if (itemIdx != -1) { @@ -191,10 +176,6 @@ /** * Display empty page for new resource item. - * - * @param authorngForm - * @param request - * @return */ @RequestMapping("/newItemInit") private String newItemlInit(@ModelAttribute ResourceItemForm resourceItemForm, HttpServletRequest request) { @@ -228,16 +209,9 @@ * this save is not persist them into database, just save * HttpSession temporarily. Only they will be persist when the * entire authoring page is being persisted. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws ServletException */ @RequestMapping(value = "/saveOrUpdateItem") - private String saveOrUpdateItem(@ModelAttribute("authoringForm") ResourceItemForm resourceItemForm, HttpServletRequest request) { + private String saveOrUpdateItem(@ModelAttribute ResourceItemForm resourceItemForm, HttpServletRequest request) { // get instructions: List instructionList = getInstructionsFromRequest(request); MultiValueMap errorMap = new LinkedMultiValueMap<>(); @@ -370,8 +344,7 @@ @RequestMapping("/definelater") private String defineLater(@ModelAttribute("startForm") ResourceForm startForm, HttpServletRequest request) throws ServletException { - - Long contentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); + Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); Resource resource = resourceService.getResourceByContentId(contentId); resource.setDefineLater(true); @@ -390,7 +363,7 @@ */ private String readDatabaseData(ResourceForm startForm, HttpServletRequest request) throws ServletException { // save toolContentID into HTTPSession - Long contentId = new Long(WebUtil.readLongParam(request, ResourceConstants.PARAM_TOOL_CONTENT_ID)); + Long contentId = WebUtil.readLongParam(request, ResourceConstants.PARAM_TOOL_CONTENT_ID); // get back the resource and item list and display them on page @@ -467,21 +440,11 @@ /** * Display same entire authoring page content from HttpSession variable. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws ServletException */ - @RequestMapping("/init") private String initPage(@ModelAttribute("startForm") ResourceForm startForm, HttpServletRequest request) throws ServletException { - String sessionMapID = WebUtil.readStrParam(request, ResourceConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession() - .getAttribute(sessionMapID); + SessionMap sessionMap = getSessionMap(request); ResourceForm existForm = (ResourceForm) sessionMap.get(ResourceConstants.ATTR_RESOURCE_FORM); try { @@ -501,17 +464,10 @@ /** * This method will persist all inforamtion in this authoring page, include * all resource item, information etc. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws ServletException */ @RequestMapping(value = "/update", method = RequestMethod.POST) - private String updateContent(@ModelAttribute("authoringForm") ResourceForm authoringForm, - HttpServletRequest request) throws Exception { + private String updateContent(@ModelAttribute("authoringForm") ResourceForm authoringForm, HttpServletRequest request) + throws Exception { // get back sessionMAP SessionMap sessionMap = (SessionMap) request.getSession() @@ -556,7 +512,7 @@ HttpSession ss = SessionManager.getSession(); // get back login user DTO UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - ResourceUser resourceUser = resourceService.getUserByIDAndContent(new Long(user.getUserID().intValue()), + ResourceUser resourceUser = resourceService.getUserByIDAndContent(user.getUserID().longValue(), resourcePO.getContentId()); if (resourceUser == null) { resourceUser = new ResourceUser(user, resourcePO); @@ -567,11 +523,11 @@ // ************************* Handle resource items ******************* // Handle resource items boolean useRatings = false; - Set itemList = new LinkedHashSet(); - SortedSet topics = getResourceItemList(sessionMap); - Iterator iter = topics.iterator(); + Set itemList = new LinkedHashSet<>(); + SortedSet topics = getResourceItemList(sessionMap); + Iterator iter = topics.iterator(); while (iter.hasNext()) { - ResourceItem item = (ResourceItem) iter.next(); + ResourceItem item = iter.next(); if (item != null) { // This flushs user UID info to message if this user is a new // user. @@ -582,7 +538,7 @@ } resourcePO.setResourceItems(itemList); // delete instruction file from database. - List delResourceItemList = getDeletedResourceItemList(sessionMap); + List delResourceItemList = getDeletedResourceItemList(sessionMap); iter = delResourceItemList.iterator(); while (iter.hasNext()) { ResourceItem item = (ResourceItem) iter.next(); @@ -592,7 +548,7 @@ } } // handle resource item attachment file: - List delItemAttList = getDeletedItemAttachmentList(sessionMap); + List delItemAttList = getDeletedItemAttachmentList(sessionMap); iter = delItemAttList.iterator(); while (iter.hasNext()) { ResourceItem delAtt = (ResourceItem) iter.next(); @@ -637,6 +593,7 @@ * @param request * @return */ + @SuppressWarnings("unchecked") private SortedSet getResourceItemList(SessionMap sessionMap) { SortedSet list = (SortedSet) sessionMap .get(ResourceConstants.ATTR_RESOURCE_ITEM_LIST); @@ -654,6 +611,7 @@ * @param request * @return */ + @SuppressWarnings("unchecked") private List getDeletedResourceItemList(SessionMap sessionMap) { return getListFromSession(sessionMap, ResourceConstants.ATTR_DELETED_RESOURCE_ITEM_LIST); } @@ -663,21 +621,16 @@ * change the attachment to new file, then the old file need be deleted when * submitting the whole authoring page. Save the file uuid and version id * into ResourceItem object for temporarily use. - * - * @param request - * @return */ - private List getDeletedItemAttachmentList(SessionMap sessionMap) { + @SuppressWarnings("unchecked") + private List getDeletedItemAttachmentList(SessionMap sessionMap) { return getListFromSession(sessionMap, ResourceConstants.ATTR_DELETED_RESOURCE_ITEM_ATTACHMENT_LIST); } /** * Get java.util.List from HttpSession by given name. - * - * @param request - * @param name - * @return */ + @SuppressWarnings("rawtypes") private List getListFromSession(SessionMap sessionMap, String name) { List list = (List) sessionMap.get(name); if (list == null) { @@ -742,11 +695,11 @@ form.setAllowRating(item.isAllowRating()); form.setAllowComments(item.isAllowComments()); if (itemIdx >= 0) { - form.setItemIndex(new Integer(itemIdx).toString()); + form.setItemIndex(String.valueOf(itemIdx)); } Set instructionList = item.getItemInstructions(); - List instructions = new ArrayList(); + List instructions = new ArrayList<>(); for (ResourceItemInstruction in : instructionList) { instructions.add(in.getDescription()); } @@ -770,19 +723,13 @@ /** * Extract web from content to resource item. * - * @param request - * @param instructionList - * @param itemForm - * @throws ResourceApplicationException + * BE CAREFUL: This method will copy nessary info from request form to a + * old or new ResourceItem instance. It gets all info EXCEPT + * ResourceItem.createDate and ResourceItem.createBy, which need be set + * when persisting this resource item. */ private void extractFormToResourceItem(HttpServletRequest request, List instructionList, ResourceItemForm itemForm) throws Exception { - /* - * BE CAREFUL: This method will copy nessary info from request form to a - * old or new ResourceItem instance. It gets all info EXCEPT - * ResourceItem.createDate and ResourceItem.createBy, which need be set - * when persisting this resource item. - */ SessionMap sessionMap = (SessionMap) request.getSession() .getAttribute(itemForm.getSessionMapID()); @@ -795,7 +742,7 @@ item = new ResourceItem(); item.setCreateDate(new Timestamp(new Date().getTime())); item.setOrderId(resourceList.size() + 1); - resourceList.add(item); + } else { // edit List rList = new ArrayList<>(resourceList); item = rList.get(itemIdx); @@ -815,8 +762,7 @@ if (type == ResourceConstants.RESOURCE_TYPE_WEBSITE || type == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT || type == ResourceConstants.RESOURCE_TYPE_FILE) { - // if it has old file, and upload a new, then save old to - // deleteList + // if it has old file, and upload a new, then save old to deleteList ResourceItem delAttItem = new ResourceItem(); boolean hasOld = false; if (item.getFileUuid() != null) { @@ -828,19 +774,14 @@ delAttItem.setFileUuid(item.getFileUuid()); delAttItem.setFileVersionId(item.getFileVersionId()); } - try { - resourceService.uploadResourceItemFile(item, itemForm.getFile()); - } catch (UploadResourceFileException e) { - // if it is new add , then remove it! - if (itemIdx == -1) { - resourceList.remove(item); - } - throw e; - } + + //throws UploadResourceFileException + resourceService.uploadResourceItemFile(item, itemForm.getFile()); + // put it after "upload" to ensure deleted file added into list // only no exception happens during upload if (hasOld) { - List delAtt = getDeletedItemAttachmentList(sessionMap); + List delAtt = getDeletedItemAttachmentList(sessionMap); delAtt.add(delAttItem); } } @@ -851,13 +792,13 @@ item.setAllowRating(itemForm.isAllowRating()); item.setAllowComments(itemForm.isAllowComments()); // set instructions - Set instructions = new LinkedHashSet(); + Set instructions = new LinkedHashSet<>(); int idx = 0; for (String ins : instructionList) { - ResourceItemInstruction rii = new ResourceItemInstruction(); - rii.setDescription(ins); - rii.setSequenceId(idx++); - instructions.add(rii); + ResourceItemInstruction instruction = new ResourceItemInstruction(); + instruction.setDescription(ins); + instruction.setSequenceId(idx++); + instructions.add(instruction); } item.setItemInstructions(instructions); @@ -867,12 +808,12 @@ if (type == ResourceConstants.RESOURCE_TYPE_URL || type == ResourceConstants.RESOURCE_TYPE_FILE) { item.setOpenUrlNewWindow(itemForm.isOpenUrlNewWindow()); } - // if(type == ResourceConstants.RESOURCE_TYPE_WEBSITE - // ||itemForm.getItemType() == - // ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT){ item.setDescription(itemForm.getDescription()); - // } + // if it's a new item, add it to resourceList + if (itemIdx == -1) { + resourceList.add(item); + } } /** @@ -975,8 +916,8 @@ HttpSession session = SessionManager.getSession(); UserDTO user = (UserDTO) session.getAttribute(AttributeNames.USER); - ResourceUser taskListUser = resourceService.getUserByIDAndContent( - new Long(user.getUserID().intValue()), pedagogicalPlannerForm.getToolContentID()); + ResourceUser taskListUser = resourceService.getUserByIDAndContent(user.getUserID().longValue(), + pedagogicalPlannerForm.getToolContentID()); resourceItem.setCreateBy(taskListUser); newItems.add(resourceItem); @@ -1045,7 +986,7 @@ int insertIndex = pedagogicalPlannerForm.getItemCount(); pedagogicalPlannerForm.setTitle(insertIndex, ""); pedagogicalPlannerForm.setType(insertIndex, - new Short(request.getParameter(ResourceConstants.ATTR_ADD_RESOURCE_TYPE))); + (short) WebUtil.readIntParam(request, ResourceConstants.ATTR_ADD_RESOURCE_TYPE)); pedagogicalPlannerForm.setUrl(insertIndex, null); pedagogicalPlannerForm.setFileName(insertIndex, null); pedagogicalPlannerForm.setFile(insertIndex, null); @@ -1056,13 +997,10 @@ @RequestMapping("/switchResourceItemPosition") private String switchResourceItemPosition(HttpServletRequest request) { - - String sessionMapID = WebUtil.readStrParam(request, "sessionMapID"); + SessionMap sessionMap = getSessionMap(request); int resourceItemOrderID1 = WebUtil.readIntParam(request, "resourceItemOrderID1"); int resourceItemOrderID2 = WebUtil.readIntParam(request, "resourceItemOrderID2"); - SessionMap sessionMap = (SessionMap) request.getSession() - .getAttribute(sessionMapID); // check whether it is "edit(old item)" or "add(new item)" SortedSet resourceList = getResourceItemList(sessionMap); @@ -1080,10 +1018,16 @@ SortedSet newItems = new TreeSet<>(new ResourceItemComparator()); newItems.addAll(resourceList); sessionMap.put(ResourceConstants.ATTR_RESOURCE_ITEM_LIST, newItems); - request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, sessionMapID); // return null to close this window return "pages/authoring/parts/itemlist"; } + + @SuppressWarnings("unchecked") + private SessionMap getSessionMap(HttpServletRequest request) { + String sessionMapID = WebUtil.readStrParam(request, ResourceConstants.ATTR_SESSION_MAP_ID); + request.setAttribute(ResourceConstants.ATTR_SESSION_MAP_ID, sessionMapID); + return (SessionMap) request.getSession().getAttribute(sessionMapID); + } } \ No newline at end of file