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;
		
	}


}