package org.brixcms.plugin.content.blog.tile.post.comment; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.model.IModel; import org.brixcms.BrixNodeModel; import org.brixcms.plugin.content.blog.post.comment.CommentNode; import org.brixcms.plugin.content.blog.post.comment.Commentable; import org.brixcms.web.generic.BrixGenericPanel; /** * @author dan.simko@gmail.com */ @SuppressWarnings("serial") public class CommentsPanel<T extends Commentable> extends BrixGenericPanel<T> { public CommentsPanel(String id, final IModel<T> model, boolean addCommentVisible) { super(id, model); add(new RefreshingView<CommentNode>("comments") { @Override protected Iterator<IModel<CommentNode>> getItemModels() { List<IModel<CommentNode>> list = new ArrayList<>(); for (CommentNode comment : getModelObject().getComments(1)) { list.add(new BrixNodeModel<CommentNode>(comment)); } return list.iterator(); } @Override protected void populateItem(Item<CommentNode> item) { item.add(new CommentPanel("comment", item.getModel())); } }); add(new AddCommentPanel<>("addComment", model).setVisible(addCommentVisible)); } }