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