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