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 @@