// Path: chapter10/src/main/java/com/packt/pfblueprints/model/Product.java
// @Entity
// @Table
// public class Product implements Serializable{
// 
// 	private static final long serialVersionUID = 1L;
// 	@Id
//     @GeneratedValue
// 	private Long id;
// 	
// 	private String prodname;
// 	private String prodimage;
// 	private String prodcat;
// 	private int rating;
// 	private String discount;
// 	private String price;
// 	
// 
// 	public Product() {
// 		super();
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public Product(String prodname,String prodimage,String prodcat,int rating, String discount,String price) {
// 		super();
// 		this.prodname = prodname;
// 		this.prodimage = prodimage;
// 		this.prodcat = prodcat;
// 		this.rating = rating;
// 		this.discount = discount;
// 		this.price = price;
// 	}
// 	
// 	public String getProdname() {
// 		return prodname;
// 	}
// 
// 	public void setProdname(String prodname) {
// 		this.prodname = prodname;
// 	}
// 	
// 	public String getProdimage() {
// 		return prodimage;
// 	}
// 
// 	public void setProdimage(String prodimage) {
// 		this.prodimage = prodimage;
// 	}
// 	
// 	public String getProdcat() {
// 		return prodcat;
// 	}
// 
// 	public void setProdcat(String prodcat) {
// 		this.prodcat = prodcat;
// 	}
// 
// 	public String getPrice() {
// 		return price;
// 	}
// 
// 	public void setPrice(String price) {
// 		this.price = price;
// 	}
// 
// 	public String getDiscount() {
// 		return discount;
// 	}
// 
// 	public void setDiscount(String discount) {
// 		this.discount = discount;
// 	}
// 
// 	public void setRating(int rating) {
// 		this.rating = rating;
// 	}
// 
// 	public int getRating() {
// 		return rating;
// 	}
// }
// 
// Path: chapter10/src/main/java/com/packt/pfblueprints/dao/ProductsDAO.java
// public class ProductsDAO {
// 
// 	private String productCategory;
// 
// 	public ProductsDAO() {
// 		super();
// 	}
// 
// 	public List<Product> getAllProducts(int first, int pageSize,
// 			String sortField, String sortOrderValue, Map<String, Object> filters) {
// 		Session session = getSession();// sessionFactory.openSession();
// 		session.beginTransaction();
// 
// 		ExternalContext externalContext = FacesContext.getCurrentInstance()
// 				.getExternalContext();
// 		Map<String, Object> sessionMap = externalContext.getSessionMap();
// 		productCategory = (String) sessionMap.get("productCategory");
// 		String query = null;
// 		
// 		Query queryResult=null;
// 		if (productCategory != "") {
// 			query = "from Product where prodcat = :productCategory ORDER BY "+sortField+" "+sortOrderValue;
// 			queryResult = session.createQuery(query);
// 			queryResult.setParameter("productCategory", productCategory);
// 		} else {
// 			query = "from Product ORDER BY "+sortField+" "+sortOrderValue;
// 		    queryResult = session.createQuery(query);
// 		}
// 		List<Product> allProducts = queryResult.list();
// 		session.getTransaction().commit();
// 		return allProducts;
// 
// 	}
// 
// 	private Session getSession() {
// 		SessionFactory sf = HibernateUtil.getSessionFactory();
// 		return sf.isClosed() ? sf.openSession() : sf.getCurrentSession();
// 	}
// 
// }


import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import org.primefaces.model.TreeNode;
import com.packt.pfblueprints.model.Product;
import com.packt.pfblueprints.dao.ProductsDAO;

package com.packt.pfblueprints.controller;




@ManagedBean
@ViewScoped
public class HealthkartController implements Serializable {

	private static final long serialVersionUID = 1L;


// Path: chapter10/src/main/java/com/packt/pfblueprints/model/Product.java
// @Entity
// @Table
// public class Product implements Serializable{
// 
// 	private static final long serialVersionUID = 1L;
// 	@Id
//     @GeneratedValue
// 	private Long id;
// 	
// 	private String prodname;
// 	private String prodimage;
// 	private String prodcat;
// 	private int rating;
// 	private String discount;
// 	private String price;
// 	
// 
// 	public Product() {
// 		super();
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public Product(String prodname,String prodimage,String prodcat,int rating, String discount,String price) {
// 		super();
// 		this.prodname = prodname;
// 		this.prodimage = prodimage;
// 		this.prodcat = prodcat;
// 		this.rating = rating;
// 		this.discount = discount;
// 		this.price = price;
// 	}
// 	
// 	public String getProdname() {
// 		return prodname;
// 	}
// 
// 	public void setProdname(String prodname) {
// 		this.prodname = prodname;
// 	}
// 	
// 	public String getProdimage() {
// 		return prodimage;
// 	}
// 
// 	public void setProdimage(String prodimage) {
// 		this.prodimage = prodimage;
// 	}
// 	
// 	public String getProdcat() {
// 		return prodcat;
// 	}
// 
// 	public void setProdcat(String prodcat) {
// 		this.prodcat = prodcat;
// 	}
// 
// 	public String getPrice() {
// 		return price;
// 	}
// 
// 	public void setPrice(String price) {
// 		this.price = price;
// 	}
// 
// 	public String getDiscount() {
// 		return discount;
// 	}
// 
// 	public void setDiscount(String discount) {
// 		this.discount = discount;
// 	}
// 
// 	public void setRating(int rating) {
// 		this.rating = rating;
// 	}
// 
// 	public int getRating() {
// 		return rating;
// 	}
// }
// 
// Path: chapter10/src/main/java/com/packt/pfblueprints/dao/ProductsDAO.java
// public class ProductsDAO {
// 
// 	private String productCategory;
// 
// 	public ProductsDAO() {
// 		super();
// 	}
// 
// 	public List<Product> getAllProducts(int first, int pageSize,
// 			String sortField, String sortOrderValue, Map<String, Object> filters) {
// 		Session session = getSession();// sessionFactory.openSession();
// 		session.beginTransaction();
// 
// 		ExternalContext externalContext = FacesContext.getCurrentInstance()
// 				.getExternalContext();
// 		Map<String, Object> sessionMap = externalContext.getSessionMap();
// 		productCategory = (String) sessionMap.get("productCategory");
// 		String query = null;
// 		
// 		Query queryResult=null;
// 		if (productCategory != "") {
// 			query = "from Product where prodcat = :productCategory ORDER BY "+sortField+" "+sortOrderValue;
// 			queryResult = session.createQuery(query);
// 			queryResult.setParameter("productCategory", productCategory);
// 		} else {
// 			query = "from Product ORDER BY "+sortField+" "+sortOrderValue;
// 		    queryResult = session.createQuery(query);
// 		}
// 		List<Product> allProducts = queryResult.list();
// 		session.getTransaction().commit();
// 		return allProducts;
// 
// 	}
// 
// 	private Session getSession() {
// 		SessionFactory sf = HibernateUtil.getSessionFactory();
// 		return sf.isClosed() ? sf.openSession() : sf.getCurrentSession();
// 	}
// 
// }


// Path: chapter10/src/main/java/com/packt/pfblueprints/controller/HealthkartController.java
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import org.primefaces.model.TreeNode;
import com.packt.pfblueprints.model.Product;
import com.packt.pfblueprints.dao.ProductsDAO;

package com.packt.pfblueprints.controller;




@ManagedBean
@ViewScoped
public class HealthkartController implements Serializable {

	private static final long serialVersionUID = 1L;


	private LazyDataModel<Product> lazyModel;
