faces-config.xml
En src/main/webapp/WEB-INF modificamos el archivo faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<navigation-rule>
<from-view-id>
/login.xhtml
</from-view-id>
<navigation-case>
<from-outcome>
admin
</from-outcome>
<to-view-id>
/admin.xhtml
</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
En src/main/java creamos el paquete com.tutosoftware.bombarderos.view y creamos la clase LoginView
package com.tutosoftware.bombarderos.view;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import com.tutosoftware.bombarderos.dao.LoginDAO;
import com.tutosoftware.bombarderos.entity.Usuario;
import com.tutosoftware.bombarderos.util.SessionUtils;
@ManagedBean
@SessionScoped
public class LoginView {
private String email;
private String password;
private Usuario usuario;
private String userAdmin;
private MenuModel model;
@PostConstruct
public void init() {
model = new DefaultMenuModel();
//First submenu
DefaultSubMenu firstSubmenu = DefaultSubMenu.builder()
.label("Dynamic Submenu")
.build();
DefaultMenuItem item = DefaultMenuItem.builder()
.value("External")
.url("http://www.primefaces.org")
.icon("pi pi-home")
.build();
firstSubmenu.getElements().add(item);
model.getElements().add(firstSubmenu);
//Second submenu
DefaultSubMenu secondSubmenu = DefaultSubMenu.builder()
.label("Dynamic Actions")
.build();
item = DefaultMenuItem.builder()
.value("Save")
.icon("pi pi-save")
.command("#{encuestaView.save}")
.update("messages")
.build();
secondSubmenu.getElements().add(item);
item = DefaultMenuItem.builder()
.value("Delete")
.icon("pi pi-times")
.command("#{encuestaView.delete}")
.ajax(false)
.build();
secondSubmenu.getElements().add(item);
item = DefaultMenuItem.builder()
.value("Redirect")
.icon("pi pi-search")
.command("#{encuestaView.redirect}")
.build();
secondSubmenu.getElements().add(item);
model.getElements().add(secondSubmenu);
}
public MenuModel getModel() {
return model;
}
public void save() {
addMessage("Success", "Data saved");
}
public void update() {
addMessage("Success", "Data updated");
}
public void delete() {
addMessage("Success", "Data deleted");
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getUserAdmin() {
return userAdmin;
}
public void setUserAdmin(String userAdmin) {
this.userAdmin = userAdmin;
}
public String loginScore() {
LoginDAO loginDAO = new LoginDAO();
usuario = loginDAO.obtenerUsuario(email);
if(usuario == null) {
addMessage("Success", "Usuario o pasword incorrectos");
return "login";
}
if(usuario.getPassword().equals(password)) {
HttpSession session = SessionUtils.getSession();
userAdmin=usuario.getEmail();
session.setAttribute("username",userAdmin);
return "admin";
}else {
addMessage("Success", "Usuario o pasword incorrectos");
return "login";
}
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public String logout() {
HttpSession session = SessionUtils.getSession();
session.invalidate();
return "login";
}
}
Creamos la clase JugadorView
package com.tutosoftware.bombarderos.view;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.FacesException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.imageio.stream.FileImageOutputStream;
import javax.servlet.ServletContext;
import org.primefaces.event.CaptureEvent;
import com.tutosoftware.bombarderos.dao.JugadorDAO;
import com.tutosoftware.bombarderos.dao.TemporadaDAO;
import com.tutosoftware.bombarderos.entity.Jugador;
import com.tutosoftware.bombarderos.entity.Temporada;
@ManagedBean
@SessionScoped
public class JugadorView {
private List<Temporada> listaTemporada = new ArrayList<Temporada>();
private Integer idTemporada;
private String foto;
private String nombre;
private String apellidoPaterno;
private String apellidoMaterno;
private Date fechaUltimoJuego;
private byte[] data;
public List<Temporada> getListaTemporada() {
return listaTemporada;
}
public void setListaTemporada(List<Temporada> listaTemporada) {
this.listaTemporada = listaTemporada;
}
public Integer getIdTemporada() {
return idTemporada;
}
public void setIdTemporada(Integer idTemporada) {
this.idTemporada = idTemporada;
}
public String getFoto() {
return foto;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidoPaterno() {
return apellidoPaterno;
}
public void setApellidoPaterno(String apellidoPaterno) {
this.apellidoPaterno = apellidoPaterno;
}
public String getApellidoMaterno() {
return apellidoMaterno;
}
public void setApellidoMaterno(String apellidoMaterno) {
this.apellidoMaterno = apellidoMaterno;
}
public Date getFechaUltimoJuego() {
return fechaUltimoJuego;
}
public void setFechaUltimoJuego(Date fechaUltimoJuego) {
this.fechaUltimoJuego = fechaUltimoJuego;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
@PostConstruct
public void init() {
TemporadaDAO temporadaDAO = new TemporadaDAO();
listaTemporada = temporadaDAO.listarTemporadasActivas();
}
private String getRandomImageName() {
int i = (int) (Math.random() * 10000000);
return String.valueOf(i);
}
public void oncapture(CaptureEvent captureEvent) {
foto = getRandomImageName();
data = captureEvent.getData();
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("") + File.separator + "images" + File.separator +"tmp"+File.separator +foto+".jpeg";
FileImageOutputStream imageOutput;
try {
imageOutput = new FileImageOutputStream(new File(path));
imageOutput.write(data, 0, data.length);
imageOutput.close();
}
catch (IOException e) {
throw new FacesException("Error in writing captured image.", e);
}
}
public void guardarJugador() {
JugadorDAO jugadorDAO = new JugadorDAO();
Jugador j = new Jugador();
j.setIdTemporada(idTemporada);
j.setFotografia(data);
j.setNombre(nombre);
j.setApellidoPaterno(apellidoPaterno);
j.setApellidoMaterno(apellidoMaterno);
j.setNumVecesBat(0);
j.setNumHit(0);
j.setPorcentaje(0.0);
jugadorDAO.crearJugador(j);
addMessage("Confirmado Jugador Guardado","Confirmado");
limpiarJugador();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarJugador() {
idTemporada=0;
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("") + File.separator + "images" + File.separator +"tmp";
File file = new File(path);
File[] files = file.listFiles();
for (File f:files)
{
if (f.isFile() && f.exists())
{
f.delete();
System.out.println("successfully deleted");
}else{
System.out.println("cant delete a file due to open or error");
}
}
foto="";
nombre="";
apellidoPaterno="";
apellidoMaterno="";
fechaUltimoJuego=null;
}
}
Creamos la clase TemporadaView
package com.tutosoftware.bombarderos.view;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import com.tutosoftware.bombarderos.dao.TemporadaDAO;
import com.tutosoftware.bombarderos.entity.Temporada;
@ManagedBean
@SessionScoped
public class TemporadaView {
private String nombreTemporada;
public String getNombreTemporada() {
return nombreTemporada;
}
public void setNombreTemporada(String nombreTemporada) {
this.nombreTemporada = nombreTemporada;
}
public void crearTemporada() {
TemporadaDAO temporadaDAO = new TemporadaDAO();
Temporada temporada = new Temporada();
temporada.setNombreTemporada(nombreTemporada);
temporadaDAO.crearTemporada(temporada);
addMessage("Confirmado Temporada Creada","Temporada Creada");
limpiarTemporada();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarTemporada() {
nombreTemporada = "";
}
}
Agregamos la clase PorcentajeView
package com.tutosoftware.bombarderos.view;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.PrimeFaces;
import com.tutosoftware.bombarderos.dao.JugadorDAO;
import com.tutosoftware.bombarderos.dao.TemporadaDAO;
import com.tutosoftware.bombarderos.entity.Jugador;
import com.tutosoftware.bombarderos.entity.Temporada;
@ManagedBean
@SessionScoped
public class PorcentajeView implements Serializable{
private static final long serialVersionUID = 1L;
private List<Temporada> listaTemporada = new ArrayList<Temporada>();
private List<Jugador> listaJugador = new ArrayList<Jugador>();
private Integer idJugador;
private Integer idTemporada;
private Jugador jugador;
private String nombre;
private String apellidoPaterno;
private String apellidoMaterno;
private Date fechaUltimoJuego;
private Integer hits;
private Integer bats;
public Integer getHits() {
return hits;
}
public void setHits(Integer hits) {
this.hits = hits;
}
public Integer getBats() {
return bats;
}
public void setBats(Integer bats) {
this.bats = bats;
}
public Jugador getJugador() {
return jugador;
}
public void setJugador(Jugador jugador) {
this.jugador = jugador;
}
public List<Temporada> getListaTemporada() {
return listaTemporada;
}
public void setListaTemporada(List<Temporada> listaTemporada) {
this.listaTemporada = listaTemporada;
}
public List<Jugador> getListaJugador() {
return listaJugador;
}
public void setListaJugador(List<Jugador> listaJugador) {
this.listaJugador = listaJugador;
}
public Integer getIdJugador() {
return idJugador;
}
public void setIdJugador(Integer idJugador) {
this.idJugador = idJugador;
}
public Integer getIdTemporada() {
return idTemporada;
}
public void setIdTemporada(Integer idTemporada) {
this.idTemporada = idTemporada;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidoPaterno() {
return apellidoPaterno;
}
public void setApellidoPaterno(String apellidoPaterno) {
this.apellidoPaterno = apellidoPaterno;
}
public String getApellidoMaterno() {
return apellidoMaterno;
}
public void setApellidoMaterno(String apellidoMaterno) {
this.apellidoMaterno = apellidoMaterno;
}
public Date getFechaUltimoJuego() {
return fechaUltimoJuego;
}
public void setFechaUltimoJuego(Date fechaUltimoJuego) {
this.fechaUltimoJuego = fechaUltimoJuego;
}
@PostConstruct
public void init() {
TemporadaDAO temporadaDAO = new TemporadaDAO();
listaTemporada = temporadaDAO.listarTemporadasActivas();
}
public void mostrarJugadoresPorTemporada() {
JugadorDAO jugadorDAO = new JugadorDAO();
listaJugador = jugadorDAO.mostrarJugadoresPorTemporada(idTemporada);
}
public void actualizarPorcentaje() {
Jugador j = new Jugador();
int totalBat=0;
int totalHit=0;
double totalPorcentaje=0.0;
JugadorDAO jugadorDAO = new JugadorDAO();
totalHit=this.jugador.getNumHit()+hits;
totalBat=this.jugador.getNumVecesBat()+bats;
totalPorcentaje=(double)totalHit/(double)totalBat;
j.setIdJugador(this.jugador.getIdJugador());
j.setNumHit(totalHit);
j.setNumVecesBat(totalBat);
j.setPorcentaje(totalPorcentaje);
jugadorDAO.actualizarPorcentaje(j);
listaJugador = jugadorDAO.mostrarJugadoresPorTemporada(idTemporada);
limpiarDialogo();
addMessage("Porcentaje actualizado","Confirmado");
PrimeFaces.current().executeScript("PF('manageGamerDialog').hide()");
PrimeFaces.current().ajax().update("form:messagesLogin", "form:jugadores");
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarDialogo() {
hits=0;
bats=0;
}
}