package ec.edu.epn.seguridad.VO; import java.io.Serializable; import java.util.Collections; import java.util.List; import java.util.ArrayList; import javax.faces.component.UIInput; import javax.faces.event.ActionEvent; import javax.faces.event.ValueChangeEvent; import javax.faces.model.SelectItem; import javax.faces.component.html.HtmlOutputText; import javax.faces.component.html.HtmlSelectOneListbox; import javax.faces.component.html.HtmlSelectOneRadio; import javax.naming.InitialContext; import ec.edu.epn.seguridad.servicio.ServicioSeguridad; import ec.edu.epn.seguridad.vo.Aplicacion; public class GestionAplicaciones implements Serializable { private static final long serialVersionUID = 9099065821772808727L; private ServicioSeguridad ss; { try { InitialContext ctx = new InitialContext(); ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad"); } catch(Exception e) { e.printStackTrace(); } } private String nombre; private String descripcion; private String activo; private String url; private List<Aplicacion> listaAplicaciones; private List<SelectItem> listaItems; //Estilos para los mensajes de Error private String style; private String styleSuccess="COLOR: #008000;"; private String styleError="COLOR: #fc5868;"; private String msgAdd; private String msgUp; //Componentes para cambiar din�micamente h:inputText private UIInput nombreIN; private UIInput descripcionIN; private UIInput urlIN; private HtmlSelectOneRadio selectDefaultValue; //Componentes para cambiar din�micamente h:outputText private HtmlOutputText nombreOut; private HtmlOutputText descripcionOut; private HtmlOutputText urlOut; //Selecci�n de la aplicacion a modificar private Long aplicacionSeleccionadaID; private HtmlSelectOneListbox aplicacionListBox; public HtmlOutputText getNombreOut() { return nombreOut; } public void setNombreOut(HtmlOutputText nombreOut) { this.nombreOut = nombreOut; } public HtmlOutputText getDescripcionOut() { return descripcionOut; } public void setDescripcionOut(HtmlOutputText descripcionOut) { this.descripcionOut = descripcionOut; } public HtmlOutputText getUrlOut() { return urlOut; } public void setUrlOut(HtmlOutputText urlOut) { this.urlOut = urlOut; } public Long getAplicacionSeleccionadaID() { return aplicacionSeleccionadaID; } public void setAplicacionSeleccionadaID(Long aplicacionSeleccionadaID) { this.aplicacionSeleccionadaID = aplicacionSeleccionadaID; } public List<SelectItem> getListaItems(){ listaAplicaciones = new ArrayList<Aplicacion>(); getListaAplicaciones(); Collections.sort(listaAplicaciones, new ComparatorAdmin()); listaItems = new ArrayList<SelectItem>(); for(Aplicacion app : listaAplicaciones){ listaItems.add(new SelectItem(app.getId(), app.getNombre(), app.getDescripcion())); } return listaItems; } public List<Aplicacion> getListaAplicaciones() { listaAplicaciones = ss.consultarAplicaciones(); Collections.sort(listaAplicaciones, new ComparatorAdmin()); return listaAplicaciones; } public void setListaAplicaciones(List<Aplicacion> listaAplicaciones) { this.listaAplicaciones = listaAplicaciones; } public void setListaItems(List<SelectItem> listaItems) { this.listaItems = listaItems; } public UIInput getNombreIN() { return nombreIN; } public void setNombreIN(UIInput nombreIN) { this.nombreIN = nombreIN; } public UIInput getDescripcionIN() { return descripcionIN; } public void setDescripcionIN(UIInput descripcionIN) { this.descripcionIN = descripcionIN; } public UIInput getUrlIN() { return urlIN; } public void setUrlIN(UIInput urlIN) { this.urlIN = urlIN; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getActivo() { return activo; } public void setActivo(String activo) { this.activo = activo; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public HtmlSelectOneRadio getSelectDefaultValue() { return selectDefaultValue; } public void setSelectDefaultValue(HtmlSelectOneRadio selectDefaultValue) { this.selectDefaultValue = selectDefaultValue; } public HtmlSelectOneListbox getAplicacionListBox() { return aplicacionListBox; } public void setAplicacionListBox(HtmlSelectOneListbox aplicacionListBox) { this.aplicacionListBox = aplicacionListBox; } public void addAplicacion(ActionEvent event){ Aplicacion app = new Aplicacion(); try{ if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){ throw new Exception(); }else{ app.setNombre(nombre.trim()); app.setDescripcion(descripcion.trim()); app.setActivo(activo.trim()); app.setUrl(url.trim()); ss.guardarAplicacion(app); setStyle(getStyleSuccess()); setMsgAdd("Aplicaci�n ingresada con �xito"); setNombre(""); setDescripcion(""); setActivo(""); setUrl(""); } }catch(Exception e){ setStyle(getStyleError()); setMsgAdd("La operaci�n no fue completada"); } } public void updateAplicacion(ActionEvent event){ String appSeleccionada = (String)aplicacionListBox.getValue(); setAplicacionSeleccionadaID(Long.parseLong(appSeleccionada!=null ? appSeleccionada : "-1")); try{ Aplicacion app = searchAplicacion(aplicacionSeleccionadaID); if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){ throw new Exception(); }else{ app.setNombre(nombre.trim()); app.setDescripcion(descripcion.trim()); app.setActivo(activo.trim()); app.setUrl(url.trim()); ss.actualizarAplicacion(app); setStyle(getStyleSuccess()); setMsgUp("Aplicaci�n modificada con �xito"); setNombre(""); nombreOut.setValue(""); setDescripcion(""); descripcionOut.setValue(""); setActivo(""); setUrl(""); urlOut.setValue(""); } }catch(Exception e){ setStyle(getStyleError()); setMsgUp("La operaci�n no fue completada"); } } public void cargarInfoAplicacion(ValueChangeEvent event){ setAplicacionSeleccionadaID(Long.parseLong((String)event.getNewValue())); Aplicacion a = searchAplicacion(aplicacionSeleccionadaID); nombreOut.setValue("Actual: "+a.getNombre()); descripcionOut.setValue("Actual: "+a.getDescripcion()); urlOut.setValue("Actual: "+a.getUrl()); nombreIN.setValue(a.getNombre()); descripcionIN.setValue(a.getDescripcion()); urlIN.setValue(a.getUrl()); selectDefaultValue.setValue(a.getActivo()); } public Aplicacion searchAplicacion(Long id){ for(Aplicacion a : listaAplicaciones ){ if(a.getId()==id.longValue()){ return a; } } return null; } public void cargarInicio(ActionEvent event){ nombreIN.setValue(" "); descripcionIN.setValue(" "); urlIN.setValue(" "); selectDefaultValue.setValue(" "); nombreOut.setValue(" "); descripcionOut.setValue(" "); urlOut.setValue(" "); } public void limpiarComponentes(ActionEvent event){ setNombre(" "); setUrl(" "); setDescripcion(" "); setActivo(" "); } public void setStyleSuccess(String styleSuccess) { this.styleSuccess = styleSuccess; } public String getStyleSuccess() { return styleSuccess; } public void setStyleError(String styleError) { this.styleError = styleError; } public String getStyleError() { return styleError; } public void setStyle(String style) { this.style = style; } public String getStyle() { return style; } public void setMsgAdd(String msgAdd) { this.msgAdd = msgAdd; } public String getMsgAdd() { return msgAdd; } public void setMsgUp(String msgUp) { this.msgUp = msgUp; } public String getMsgUp() { return msgUp; } }