Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -re3a49cfedf88904e13c5286d6d70f169f5930a50 -rfdf58a248bcf525bca58e551675d0dc412ccb579 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision e3a49cfedf88904e13c5286d6d70f169f5930a50) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision fdf58a248bcf525bca58e551675d0dc412ccb579) @@ -306,7 +306,15 @@ public List getAuthoredTopics(Long forumUid) { List list = messageDao.getAuthoredMessage(forumUid); - return MessageDTO.getMessageDTO(list); + + TreeMap map = new TreeMap(new DateComparator()); + //sorted by create date + Iterator iter = list.iterator(); + while(iter.hasNext()){ + Message topic = (Message) iter.next(); + map.put(topic.getCreated(),topic); + } + return MessageDTO.getMessageDTO(new ArrayList(map.values())); } public void updateSession(ForumToolSession session) { Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java =================================================================== diff -u -r86fab777fa621158cd635f297d3be6987b7d99f0 -rfdf58a248bcf525bca58e551675d0dc412ccb579 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java (.../TopicComparator.java) (revision 86fab777fa621158cd635f297d3be6987b7d99f0) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java (.../TopicComparator.java) (revision fdf58a248bcf525bca58e551675d0dc412ccb579) @@ -26,7 +26,13 @@ import org.lamsfoundation.lams.tool.forum.persistence.Message; import org.lamsfoundation.lams.tool.forum.persistence.MessageSeq; - +/** + * This class implementaion java.util.Comparator interface. It can sort meesage according to + * message post date and message level. + * @author Steve.Ni + * + * @version $Revision$ + */ public class TopicComparator implements Comparator { private static final Logger log = Logger.getLogger(TopicComparator.class); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java =================================================================== diff -u -re3a49cfedf88904e13c5286d6d70f169f5930a50 -rfdf58a248bcf525bca58e551675d0dc412ccb579 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision e3a49cfedf88904e13c5286d6d70f169f5930a50) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision fdf58a248bcf525bca58e551675d0dc412ccb579) @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.TreeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -50,6 +51,7 @@ import org.lamsfoundation.lams.tool.forum.persistence.Message; import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException; import org.lamsfoundation.lams.tool.forum.service.IForumService; +import org.lamsfoundation.lams.tool.forum.util.DateComparator; import org.lamsfoundation.lams.tool.forum.util.ForumConstants; import org.lamsfoundation.lams.tool.forum.web.forms.ForumForm; import org.lamsfoundation.lams.tool.forum.web.forms.MessageForm; @@ -145,7 +147,17 @@ //if forum does not exist, try to use default content instead. if(forum == null){ forum = forumService.getDefaultContent(contentId); - topics = forum.getMessages() != null? new ArrayList(forum.getMessages()):null; + if(forum.getMessages() != null){ + TreeMap map = new TreeMap(new DateComparator()); + //sorted by create date + Iterator iter = forum.getMessages().iterator(); + while(iter.hasNext()){ + Message topic = (Message) iter.next(); + map.put(topic.getCreated(),topic); + } + topics = new ArrayList(map.values()); + }else + topics = null; }else topics = forumService.getAuthoredTopics(forum.getUid()); //initialize attachmentList @@ -226,6 +238,7 @@ iter = deleteAttachmentList.iterator(); while(iter.hasNext()){ Attachment delAtt = (Attachment) iter.next(); + iter.remove(); //delete from repository forumService.deleteFromRepository(delAtt.getFileUuid(),delAtt.getFileVersionId()); //it is an existed att, then delete it from current attachmentPO @@ -241,7 +254,6 @@ forumService.deleteForumAttachment(delAtt.getUid()); }//end remove from persist value } - deleteAttachmentList.clear(); //copy back forumPO.setAttachments(attPOSet); @@ -253,10 +265,10 @@ iter = topicDeleteAttachmentList.iterator(); while(iter.hasNext()){ Attachment delAtt = (Attachment) iter.next(); + iter.remove(); //delete from repository forumService.deleteFromRepository(delAtt.getFileUuid(),delAtt.getFileVersionId()); } - topicDeleteAttachmentList.clear(); //Handle message List topics = getTopicList(request); @@ -277,10 +289,10 @@ iter = delTopics.iterator(); while(iter.hasNext()){ MessageDTO dto = (MessageDTO) iter.next(); - if(dto.getMessage() != null) + iter.remove(); + if(dto.getMessage() != null && dto.getMessage().getUid() != null) forumService.deleteTopic(dto.getMessage().getUid()); } - delTopics.clear(); //initialize attachmentList again attachmentList = getAttachmentList(request); @@ -558,7 +570,7 @@ message.setAttachments(attSet); //save the new message into HttpSession - topics.add(MessageDTO.getMessageDTO(message)); + topics.add(0,MessageDTO.getMessageDTO(message)); //echo back to web page request.setAttribute(ForumConstants.SUCCESS_FLAG,"CREATE_SUCCESS"); Index: lams_tool_forum/web/jsps/authoring/message/create.jsp =================================================================== diff -u -r4d23938299d7cd12c95346e9abc603374b04e212 -rfdf58a248bcf525bca58e551675d0dc412ccb579 --- lams_tool_forum/web/jsps/authoring/message/create.jsp (.../create.jsp) (revision 4d23938299d7cd12c95346e9abc603374b04e212) +++ lams_tool_forum/web/jsps/authoring/message/create.jsp (.../create.jsp) (revision fdf58a248bcf525bca58e551675d0dc412ccb579) @@ -14,9 +14,9 @@
-
-<%@ include file="/jsps/message/topiclist.jsp" %> -<%@ include file="/jsps/message/topicform.jsp" %> -
+
+ <%@ include file="/jsps/message/topiclist.jsp" %> + <%@ include file="/jsps/message/topicform.jsp" %> +