Package edu.chl.jadetalk.view

Source Code of edu.chl.jadetalk.view.ImageViewBackingBean

package edu.chl.jadetalk.view;

import edu.chl.jadetalk.business.ImageManagerBeanLocal;
import edu.chl.jadetalk.core.Comment;
import javax.ejb.EJB;
import edu.chl.jadetalk.core.Image;
import edu.chl.jadetalk.core.Rating;
import edu.chl.jadetalk.core.User;
import edu.chl.jadetalk.user.UserSessionBean;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

/**
*
* @author jesper
*/
@ManagedBean(name = "imageViewBackingBean")
@RequestScoped
public class ImageViewBackingBean {

    @ManagedProperty(value = "#{userSessionBean}")
    private UserSessionBean userSessionBean;
       
    @EJB
    private ImageManagerBeanLocal imageManagerBean;
   
    private long entryId;

    public ImageViewBackingBean() {
        Logger.getAnonymousLogger().log(Level.INFO, "Creating an ImageViewBackingBean");
        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

        if (request.getParameter("id") != null) {
            this.entryId = Long.valueOf(request.getParameter("id"));
        }
    }

    public Image getImage() {
        return imageManagerBean.getImage(entryId);
    }

    public long getEntryId() {
        return entryId;
    }

    /**
     * Gets all images from database
     * @return List of images
     */
    public List<Image> getAllImages() {
        return imageManagerBean.listImages();
    }
   
    public List<Image> getLatest() {
        return imageManagerBean.listImagesRange(new int[] {0,8});
    }

   
    public double getAverageRating(){
        return getImage().getRating();
    }
   
    public double getMyRating(){
        Rating rating = getUserRating();
        return rating != null ? (double)rating.getValue() : 0;
    }
   
    public boolean getCanRate(){
        return getUserRating() == null;
    }
   
    private Rating getUserRating(){
        // TODO: Cache rating if found?
       
        // Find user's rating
        User user = userSessionBean.getUser();
       
        for(Rating r : getImage().getRatings()){
            if(r.getUser().equals(user)){
                return r;
            }
        }
       
        return null;
    }
   
    public Collection<Comment> getComments() {
       
        // Returns comments sorted on time
        List<Comment> comments = imageManagerBean.getImage(entryId).getCommentThread().getComments();
       
        Collections.sort(comments, new Comparator<Comment>(){
            @Override
            public int compare(Comment a, Comment b) {
                Date aAdded = a.getAdded();
                Date bAdded = b.getAdded();
               
                if(aAdded == null || bAdded == null){
                    return 0;
                }
               
                return aAdded.compareTo(bAdded);
            }
        });
       
        return comments;
    }
   
    public UserSessionBean getUserSessionBean() {
        return userSessionBean;
    }

    public void setUserSessionBean(UserSessionBean userSessionBean) {
        this.userSessionBean = userSessionBean;
    }
}
TOP

Related Classes of edu.chl.jadetalk.view.ImageViewBackingBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.