ManagedBean

Creamos los Beans para las vistas.
Creamos el paquete com.tutosoftware.activity.view y Creamos la clase IdiomaView
 
   
	package com.tutosoftware.activity.view;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;

@ManagedBean
@SessionScoped
public class IdiomaView implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
    private String codigoIdioma;
    private Map<String,Object> listaIdiomas;
    
    
    public IdiomaView() {
        super();
        this.codigoIdioma = FacesContext.getCurrentInstance().getViewRoot().getLocale().getLanguage();
        this.listaIdiomas = new LinkedHashMap<String,Object>();
        this.listaIdiomas.put("Español", new Locale("es"));
        this.listaIdiomas.put("Inglés", new Locale("en"));
    }
	
    public String getCodigoIdioma() {
        return codigoIdioma;
    }
    
    public void setCodigoIdioma(String codigoIdioma) {
        this.codigoIdioma = codigoIdioma;
    }
    
    public Map<String, Object> getListaIdiomas() {
        return listaIdiomas;
    }
    
    
    public void doCambioIdiomaConLista(ValueChangeEvent e)
    {

        String newCodigoIdioma = e.getNewValue().toString();
        System.out.println("newCodigoIdioma=" + newCodigoIdioma);
        System.out.println("idiomaBean=" + this.toString());

        //loop country map to compare the locale code
        for (Map.Entry<String, Object> entry : listaIdiomas.entrySet()) 
        {

               if(entry.getValue().toString().equals(newCodigoIdioma))
               {
                   System.out.println("Asignando nueva locale al contexto de Faces.");
                   FacesContext.getCurrentInstance().getViewRoot().setLocale((Locale)entry.getValue());
               }
        }
    }

}
  
  
   
   
     
   

Creamos la clase LoginView
 
   
  package com.tutosoftware.activity.view;

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 javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.MediaType;

import com.tutosoftware.activity.model.Usuario;
import com.tutosoftware.activity.util.SessionUtils;

@ManagedBean
@SessionScoped
public class LoginView {
	
	private String email;
	private String contrasena;
	private Usuario usuario;
	private String nombreUsuario;
	private String rolUser;
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getContrasena() {
		return contrasena;
	}
	public void setContrasena(String contrasena) {
		this.contrasena = contrasena;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public String getNombreUsuario() {
		return nombreUsuario;
	}
	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}
	
public String getRolUser() {
		return rolUser;
	}
	public void setRolUser(String rolUser) {
		this.rolUser = rolUser;
	}
public String loginAccess() {
		
		
		
		String URL ="http://localhost:8888/api/v1/usuario/";
		
		
		
		
			
			
			Client client = ClientBuilder.newClient();
			
			
			usuario=client.target(URL+email).request(MediaType.APPLICATION_JSON_TYPE).get(Usuario.class);
			
			
	
			if(usuario == null) {
				
				addMessage("Success", "Usuario o password incorrectos");
				
				
				return "login";
				
			}	
			
			
			
			if(usuario.getContrasena().equals(contrasena)) {
				
				
				HttpSession session = SessionUtils.getSession();
				nombreUsuario=usuario.getNombre()+" "+usuario.getApellidoPaterno()+" "+usuario.getApellidoMaterno();
				rolUser=usuario.getRol();
				session.setAttribute("username",nombreUsuario);
				
				return "admin";
			}else {
				
				addMessage("Success", "Usuario o password 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 UsuarioView
 
   
  package com.tutosoftware.activity.view;

import java.io.Serializable;
import java.util.List;

import com.tutosoftware.activity.model.Usuario;

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.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import org.primefaces.PrimeFaces;

@ManagedBean
@SessionScoped
public class UsuarioView implements Serializable{
	private static final long serialVersionUID = 1L;
	private List<Usuario> usuarios;
	private Usuario nuevoUsuario;
	
	
	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}
	
	
	public Usuario getNuevoUsuario() {
		return nuevoUsuario;
	}

	public void setNuevoUsuario(Usuario nuevoUsuario) {
		this.nuevoUsuario = nuevoUsuario;
	}

	@PostConstruct
	public void listarUsuarios() {
		
        String URL ="http://localhost:8888/api/v1/usuario";
	    
	    
	    Client client = ClientBuilder.newClient();
	    
	    usuarios=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Usuario>>() {});

	    //this.usuario=new Usuario();
		

	}
	
	public void abrirNuevoUsuario() {
		this.nuevoUsuario = new Usuario();
	}
	
	
	public void crearUsuario() {
		
String URL ="http://localhost:8888/api/v1/usuario";
		
	    Client client = ClientBuilder.newClient();
	    
	   
	    
	    
	    Response response =
	            client.target(URL)
	            .request(MediaType.APPLICATION_JSON_TYPE)
	            .post(Entity.entity(nuevoUsuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
	    
	    
	    if (response.getStatus() == Status.CREATED.getStatusCode()) {
              addMessage("Confirmado","Usuario aceptado");	        
	    	
	    } else {
	    	
	    	addMessage("Fallo","Usuario no registrado");	
	    }
	    
	    limpiarUsuario();
	    
	    PrimeFaces current = PrimeFaces.current();
	    current.executeScript("PF('manageUsuarioDialog').hide();");
	    
		
		listarUsuarios();
		
	}
	
	
	public void eliminarUsuario() {
		
		
        String URL ="http://localhost:8888/api/v1/usuario/";
		
		Client client = ClientBuilder.newClient();
		
		
		client.target(URL+nuevoUsuario.getEmail()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
		
		
	    
	    listarUsuarios();
		
		
	}
	
	
	
	
		
	
	public void addMessage(String summary, String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
	
	
public void limpiarUsuario() {
		
		nuevoUsuario=null;
		
	}


}

  
     
   

Creamos la clase ClienteView
 
   
	package com.tutosoftware.activity.view;

import java.io.Serializable;
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 javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import org.primefaces.PrimeFaces;

import com.tutosoftware.activity.model.Cliente;


@ManagedBean
@SessionScoped
public class ClienteView implements Serializable{
	
	private static final long serialVersionUID = 1L;
	private List<Cliente> clientes;
	private Cliente nuevoCliente;
	public List<Cliente> getClientes() {
		return clientes;
	}
	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
	public Cliente getNuevoCliente() {
		return nuevoCliente;
	}
	public void setNuevoCliente(Cliente nuevoCliente) {
		this.nuevoCliente = nuevoCliente;
	}
	
	
	@PostConstruct
	public void listarClientes() {
		
        String URL ="http://localhost:8888/api/v1/cliente";
	    
	    
	    Client client = ClientBuilder.newClient();
	    
	    clientes=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Cliente>>() {});

	 }
	
	public void abrirNuevoCliente() {
		this.nuevoCliente = new Cliente();
	}
	
	public void crearCliente() {
		
		String URL ="http://localhost:8888/api/v1/cliente";
				
			    Client client = ClientBuilder.newClient();
			    
			   
			    
			    
			    Response response =
			            client.target(URL)
			            .request(MediaType.APPLICATION_JSON_TYPE)
			            .post(Entity.entity(nuevoCliente,MediaType.APPLICATION_JSON_TYPE),Response.class);
			    
			    
			    if (response.getStatus() == Status.CREATED.getStatusCode()) {
		              addMessage("Confirmado","Cliente aceptado");	        
			    	
			    } else {
			    	
			    	addMessage("Fallo","Cliente no registrado");	
			    }
			    
			    limpiarCliente();
			    
			    PrimeFaces current = PrimeFaces.current();
			    current.executeScript("PF('manageClienteDialog').hide();");
			    
				
				listarClientes();
				
			}
	
	
         public void eliminarCliente() {
		
		
        String URL ="http://localhost:8888/api/v1/cliente/";
		
		Client client = ClientBuilder.newClient();
		
		
		client.target(URL+nuevoCliente.getClienteId()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
		
		
	    
	    listarClientes();
		
		
	}
         
         
         public void addMessage(String summary, String detail) {
             FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
             FacesContext.getCurrentInstance().addMessage(null, message);
         }
         
         
         public void limpiarCliente() {
     		
     		nuevoCliente=null;
     		
     	}
	
	

}
   
	   
	   
	   
	   
	   
	    
   

Creamos la clase ProyectoView
 
   
	package com.tutosoftware.activity.view;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import org.primefaces.PrimeFaces;

import com.tutosoftware.activity.model.Cliente;
import com.tutosoftware.activity.model.Proyecto;

@ManagedBean
@ViewScoped
public class ProyectoView implements Serializable {
	
	
	private static final long serialVersionUID = 1L;
	private List<Proyecto> proyectos;
	private List<Cliente> clientes;
	private Proyecto nuevoProyecto;
	public List<Proyecto> getProyectos() {
		return proyectos;
	}
	public void setProyectos(List<Proyecto> proyectos) {
		this.proyectos = proyectos;
	}
	public Proyecto getNuevoProyecto() {
		return nuevoProyecto;
	}
	public void setNuevoProyecto(Proyecto nuevoProyecto) {
		this.nuevoProyecto = nuevoProyecto;
	}
	
	public List<Cliente> getClientes() {
		return clientes;
	}
	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
	@PostConstruct
	public void listarProyectos() {
		
        String URL ="http://localhost:8888/api/v1/cliente";
        String URL2 ="http://localhost:8888/api/v1/proyecto";
	    
	    Client client = ClientBuilder.newClient();
	    
	    clientes=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Cliente>>() {});
        proyectos=client.target(URL2).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Proyecto>>() {});
   }
	
	
	public void abrirNuevoProyecto() {
		this.nuevoProyecto = new Proyecto();
	}
	
public void crearProyecto() {
		
		String URL ="http://localhost:8888/api/v1/proyecto";
				
			    Client client = ClientBuilder.newClient();
			    
			   
			    
			    
			    Response response =
			            client.target(URL)
			            .request(MediaType.APPLICATION_JSON_TYPE)
			            .post(Entity.entity(nuevoProyecto,MediaType.APPLICATION_JSON_TYPE),Response.class);
			    
			    
			    if (response.getStatus() == Status.CREATED.getStatusCode()) {
		              addMessage("Confirmado","Proyecto aceptado");	        
			    	
			    } else {
			    	
			    	addMessage("Fallo","Proyecto no registrado");	
			    }
			    
			    limpiarProyecto();
			    
			    PrimeFaces current = PrimeFaces.current();
			    current.executeScript("PF('manageProyectoDialog').hide();");
			    
				
				listarProyectos();
				
			}

public void eliminarProyecto() {
	
	
    String URL ="http://localhost:8888/api/v1/proyecto/";
	
	Client client = ClientBuilder.newClient();
	
	
	client.target(URL+nuevoProyecto.getProyectoId()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
	
	
    
    listarProyectos();
	
	
}




	
	public void addMessage(String summary, String detail) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
    
    
    public void limpiarProyecto() {
		
		nuevoProyecto=null;
		
	}
	

}