package com.medratech.spring.view; import java.io.Serializable; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.component.UIData; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.medratech.spring.model.impl.Song; import com.medratech.spring.service.SongService; @Component("createSong") @Scope("request") public class CreateSong implements Serializable { private static final long serialVersionUID = 4500981688032118235L; private SongService songService; private Song song = new Song(); private List<Song> songList; private UIData table; @Autowired public CreateSong(SongService songService) { this.songService = songService; } public Song getSong() { return song; } public void setSong(Song song) { this.song = song; } public List<Song> getSongList() { if(songList == null) songList = songService.findAll(); return songList; } public void setSongList(List<Song> songList) { this.songList = songList; } public UIData getTable() { return table; } public void setTable(UIData table) { this.table = table; } public String save() { songService.createNew(song); songList = songService.findAll(); FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, "Song is saved successfully", "OK"); FacesContext.getCurrentInstance().addMessage(null, facesMessage); song = new Song(); return null; } public String delete() { songService.remove((Song)table.getRowData()); songList = songService.findAll(); FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, "Song deleted successfully", "OK"); FacesContext.getCurrentInstance().addMessage(null, facesMessage); song = new Song(); return null; } public String listSongDetail() { ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()). getSession().setAttribute("song", (Song)table.getRowData()); return "songDetail"; } }