package de.flower.rmt.ui.page.blog;
import de.flower.common.ui.ajax.event.AjaxEventListener;
import de.flower.rmt.model.db.entity.BComment;
import de.flower.rmt.model.db.entity.QBComment;
import de.flower.rmt.service.IBlogManager;
import de.flower.rmt.ui.panel.RMTBasePanel;
import de.flower.rmt.util.Dates;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
import java.util.List;
/**
* @author flowerrrr
*/
public class LatestCommentsPanel extends RMTBasePanel {
private final static Logger log = LoggerFactory.getLogger(LatestCommentsPanel.class);
@SpringBean
private IBlogManager blogManager;
private int currentPage = 0;
public LatestCommentsPanel() {
add(new AjaxEventListener(BComment.class));
ListView<BComment> list = new ListView<BComment>("list", getListModel()) {
@Override
protected void populateItem(final ListItem<BComment> item) {
BComment comment = item.getModelObject();
item.add(new Label("date", getDateLabel(comment.getCreateDate())));
item.add(new Label("author", comment.getAuthor().getFullname()));
Link link = new BookmarkablePageLink("link", ArticlePage.class, ArticlePage.getPageParams(comment.getArticle().getId()));
link.add(new Label("heading", comment.getArticle().getHeading()));
item.add(link);
}
};
add(list);
}
private IModel<List<BComment>> getListModel() {
return new LoadableDetachableModel<List<BComment>>() {
@Override
protected List<BComment> load() {
return blogManager.findLastNComments(10, QBComment.bComment.author, QBComment.bComment.article);
}
};
}
private String getDateLabel(Date date) {
return Dates.formatFacebook(date);
}
}