package org.jboss.seam.wiki.plugin.forum;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.*;
import org.jboss.seam.wiki.core.action.Pager;
import org.jboss.seam.wiki.core.action.UserHome;
import org.jboss.seam.wiki.core.model.WikiDirectory;
import java.util.List;
import java.io.Serializable;
/**
* @author Christian Bauer
*/
@Name("postingHistory")
@Scope(ScopeType.PAGE)
public class PostingHistory implements Serializable {
@In
UserHome userHome;
@In(create = true)
ForumDAO forumDAO;
private List<WikiDirectory> forumDirectories;
private List<TopicInfo> topics;
private Pager topicPager = new Pager("TopicPager", 15l);
@Create
public void onCreate() {
forumDirectories = forumDAO.findForumDirectories();
refreshTopics();
}
@Observer(value = {"TopicPager.pageChanged"}, create = false)
public void refreshTopics() {
countTopics();
loadTopics();
}
public List<TopicInfo> getTopics() {
return topics;
}
public Pager getTopicPager() {
return topicPager;
}
protected void countTopics() {
Long numOfRecords = forumDAO.findForumPostingsCount(forumDirectories, userHome.getInstance());
topicPager.setNumOfRecords(numOfRecords);
}
protected void loadTopics() {
topics =
forumDAO.findForumPostings(
forumDirectories,
userHome.getInstance(),
topicPager.getQueryFirstResult(),
topicPager.getQueryMaxResults()
);
}
}