Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java,v diff -u -r1.31 -r1.32 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 5 Dec 2005 03:53:48 -0000 1.31 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 12 Dec 2005 01:19:42 -0000 1.32 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java,v diff -u -r1.2 -r1.3 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java 10 Nov 2005 05:11:37 -0000 1.2 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/TopicComparator.java 12 Dec 2005 01:19:42 -0000 1.3 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java,v diff -u -r1.28 -r1.29 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 5 Dec 2005 03:53:48 -0000 1.28 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 12 Dec 2005 01:19:42 -0000 1.29 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/authoring/message/create.jsp,v diff -u -r1.11 -r1.12 --- lams_tool_forum/web/jsps/authoring/message/create.jsp 1 Nov 2005 06:11:03 -0000 1.11 +++ lams_tool_forum/web/jsps/authoring/message/create.jsp 12 Dec 2005 01:19:42 -0000 1.12 @@ -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" %> +