package com.ese.ils.beta.beans; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.event.ActionEvent; import org.icefaces.ace.event.SelectEvent; import org.icefaces.ace.model.table.RowStateMap; import com.ese.ils.beta.model.Favorite; import com.ese.ils.beta.model.Slide; import com.ese.ils.beta.service.FavoriteLocalServiceUtil; import com.ese.ils.beta.service.SlideLocalServiceUtil; import com.liferay.portal.kernel.dao.orm.DynamicQuery; import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil; import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.repository.model.FileEntry; import com.liferay.portlet.documentlibrary.model.DLFileEntry; import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil; /** * behandelt die Favoriten in einem Modul * @author julien hofer * */ @ManagedBean @ViewScoped public class DozentFavoriteBackingBean implements Serializable { private static final long serialVersionUID = -4469569210586565019L; private List<Favorite> favorits; private List<Favorite> favoriteList; private RowStateMap stateMap = new RowStateMap(); private long favoriteId; private String slideURL; private long userId; private int countFavBySlide; //Injection @ManagedProperty(value="#{dozentLogicBean}") private transient DozentLogicBean dozentLogicBean; @ManagedProperty(value="#{slideBackingBean}") private transient SlideBackingBean slideBackingBean; /** * holt die <code>userId</code> des angemeldeten Users */ public void fetchUserId() { userId = dozentLogicBean.getUserId(); } /** * holt alle Favoriten eines bestimmten Moduls ueber die <code>moduleId</code> * @param moduleId */ public void fetchFavoriteByModule(long moduleId) { fetchUserId(); favoriteList = new ArrayList<Favorite>(); for(Favorite favorite : FavoriteLocalServiceUtil.fetchModuleFavorites(userId, moduleId)){ System.out.println("Slide Ids ****"); System.out.println(favorite.getSlideId()); favoriteList.add(favorite); } } /** * holt alle <code>descriptions</code> fuer den Mime-Typ 'image/png' * @param event */ public void fetchDescription(ActionEvent event) { try { List<DLFileEntry> pngFiles = DLFileEntryLocalServiceUtil.getFileEntriesByMimeType("image/png"); DLFileEntry fileEntry = pngFiles.get(0); String description = fileEntry.getDescription(); System.out.println(description); } catch (SystemException e) { e.printStackTrace(); } } /** * holt die <code>slideId</code> fuer einen bestimmten Favoriten * ueber die <code>favoriteId</code> * @param favoriteId * @return slideId */ public long fetchSlideIdForFavorite(long favoriteId) { long slideId = -1; try { Favorite favorite = FavoriteLocalServiceUtil.getFavorite(favoriteId); slideId = favorite.getSlideId(); } catch (PortalException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SystemException e) { // TODO Auto-generated catch block e.printStackTrace(); } return slideId; } /** * holt die Anzahl der Favoriten fuer eine bestimmte Folie * ueber die <code>slideId</code> * @param slideId * @return */ public int fetchFavoriteCountPerSlide(long slideId) { int countFav = FavoriteLocalServiceUtil.countFavBySlideId(slideId); return countFav; } /** * gibt die URL der Folie anhand gegebener <code>slideId</code> * zurueck * @param slideId * @return slideURL */ public String fetchFavoriteSlideURL(long slideId) { String slideURL = null; try { Slide slide = SlideLocalServiceUtil.getSlide(slideId); long fileEntryId = slide.getFileEntryId(); slideURL = slideBackingBean.getURL(fileEntryId); countFavBySlide = fetchFavoriteCountPerSlide(slideId); System.out.println("SlideId: " + slideId + " = " + countFavBySlide); } catch (PortalException e) { e.printStackTrace(); } catch (SystemException e) { e.printStackTrace(); } return slideURL; } /** * dient zum Abfangen des Select Events * @param event */ public void selectListener(SelectEvent event) { addEvent((Favorite)event.getObject()); } /** * erstellt die <code>slideURL</code> je nach gewaehltem Eintrag aus der * Favoriten Tabelle * @param favorite */ public void addEvent(Favorite favorite) { favoriteId = favorite.getFavoriteId(); System.out.println("FavoriteID: " + favoriteId); long slideId = fetchSlideIdForFavorite(favoriteId); System.out.println("SlideId: " + slideId); slideURL = fetchFavoriteSlideURL(slideId); } //GETTER UND SETTER public List<Favorite> getFavorits() { return favorits; } public void setFavorits(List<Favorite> favorits) { this.favorits = favorits; } public List<Favorite> getFavoriteList() { return favoriteList; } public void setFavoriteList(List<Favorite> favoriteList) { this.favoriteList = favoriteList; } public RowStateMap getStateMap() { return stateMap; } public void setStateMap(RowStateMap stateMap) { this.stateMap = stateMap; } public DozentLogicBean getDozentLogicBean() { return dozentLogicBean; } public void setDozentLogicBean(DozentLogicBean dozentLogicBean) { this.dozentLogicBean = dozentLogicBean; } public SlideBackingBean getSlideBackingBean() { return slideBackingBean; } public void setSlideBackingBean(SlideBackingBean slideBackingBean) { this.slideBackingBean = slideBackingBean; } public long getFavoriteId() { return favoriteId; } public void setFavoriteId(long favoriteId) { this.favoriteId = favoriteId; } public String getSlideURL() { return slideURL; } public void setSlideURL(String slideURL) { this.slideURL = slideURL; } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public int getCountFavBySlide() { return countFavBySlide; } public void setCountFavBySlide(int countFavBySlide) { this.countFavBySlide = countFavBySlide; } }