package org.jboss.seam.example.seamspace;
import static org.jboss.seam.ScopeType.EVENT;
import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.security.Delete;
import org.jboss.seam.annotations.web.RequestParameter;
import org.jboss.seam.security.Identity;
@Name("pictureSearch")
@Scope(EVENT)
public class PictureSearch implements Serializable
{
private static final long serialVersionUID = -1868188969326866331L;
private String memberName;
@In
private EntityManager entityManager;
@Out(required = false)
private List<MemberImage> memberImages;
@RequestParameter
private Integer imageId;
public String getMemberName()
{
return memberName;
}
public void setMemberName(String memberName)
{
this.memberName = memberName;
}
public void delete(@Delete MemberImage image)
{
entityManager.remove(image);
}
public MemberImage lookupImage()
{
return entityManager.find(MemberImage.class, imageId);
}
@SuppressWarnings("unchecked")
public void loadMemberPictures()
{
memberImages = (List<MemberImage>) entityManager.createQuery(
"select i from MemberImage i where i.member.memberName = :name and not i = i.member.picture")
.setParameter("name", memberName)
.getResultList();
Identity.instance().filterByPermission(memberImages, "view");
}
}