package br.com.centralit.citcorpore.ajaxForms; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringEscapeUtils; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLForm; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.CaracteristicaDTO; import br.com.centralit.citcorpore.bean.CaracteristicaMonitDTO; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.MonitoramentoAtivosDTO; import br.com.centralit.citcorpore.bean.NotificacaoGrupoMonitDTO; import br.com.centralit.citcorpore.bean.NotificacaoUsuarioMonitDTO; import br.com.centralit.citcorpore.bean.ScriptMonitDTO; import br.com.centralit.citcorpore.bean.TipoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.CaracteristicaMonitService; import br.com.centralit.citcorpore.negocio.CaracteristicaService; import br.com.centralit.citcorpore.negocio.GrupoService; import br.com.centralit.citcorpore.negocio.MonitoramentoAtivosService; import br.com.centralit.citcorpore.negocio.NotificacaoGrupoMonitService; import br.com.centralit.citcorpore.negocio.NotificacaoUsuarioMonitService; import br.com.centralit.citcorpore.negocio.ScriptMonitService; import br.com.centralit.citcorpore.negocio.TipoItemConfiguracaoService; import br.com.centralit.citcorpore.negocio.UsuarioService; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; @SuppressWarnings({ "rawtypes" }) public class MonitoramentoAtivos extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } limpaForm(document, request, response); } /** * M�todo que preenche a grid de caracter�sticas do tipo de item de configura��o selecionado. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 13.06.2014 */ public void preencheGridCaracteristicas(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); HTMLTable tblCaracteristicas = document.getTableById("tblCaracteristicas"); tblCaracteristicas.deleteAllRows(); if (monitoramentoAtivosDto != null && monitoramentoAtivosDto.getIdTipoItemConfiguracao() != null) { CaracteristicaService caracteristicaService = (CaracteristicaService) ServiceLocator.getInstance().getService(CaracteristicaService.class, null); Collection<CaracteristicaDTO> colCaracteristicas = caracteristicaService.consultarCaracteristicasAtivas(monitoramentoAtivosDto.getIdTipoItemConfiguracao()); if (colCaracteristicas != null && colCaracteristicas.size() > 0) { tblCaracteristicas.addRowsByCollection(colCaracteristicas, new String[] { "", "nome", "descricao" }, null, "", new String[] { "gerarSelecaoCaracteristicas" }, null, null); } } } /** * M�todo que realiza a recupera��o do item selecionado na pesquisa de monitoramento de ativos. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 13.06.2014 */ public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); MonitoramentoAtivosService monitoramentoAtivosService = (MonitoramentoAtivosService) ServiceLocator.getInstance().getService(MonitoramentoAtivosService.class, null); if (monitoramentoAtivosDto != null && monitoramentoAtivosDto.getIdMonitoramentoAtivos() != null) { monitoramentoAtivosDto = (MonitoramentoAtivosDTO) monitoramentoAtivosService.restore(monitoramentoAtivosDto); limpaForm(document, request, response); HTMLForm form = document.getForm("form"); if (monitoramentoAtivosDto != null) { form.setValues(monitoramentoAtivosDto); document.setBean(monitoramentoAtivosDto); TipoItemConfiguracaoService tipoItemConfiguracaoService = (TipoItemConfiguracaoService) ServiceLocator.getInstance().getService(TipoItemConfiguracaoService.class, null); CaracteristicaMonitService caracteristicaMonitService = (CaracteristicaMonitService) ServiceLocator.getInstance().getService(CaracteristicaMonitService.class, null); ScriptMonitService scriptMonitService = (ScriptMonitService) ServiceLocator.getInstance().getService(ScriptMonitService.class, null); NotificacaoUsuarioMonitService notificacaoUsuarioMonitService = (NotificacaoUsuarioMonitService) ServiceLocator.getInstance().getService(NotificacaoUsuarioMonitService.class, null); NotificacaoGrupoMonitService notificacaoGrupoMonitService = (NotificacaoGrupoMonitService) ServiceLocator.getInstance().getService(NotificacaoGrupoMonitService.class, null); TipoItemConfiguracaoDTO tipoItemConfiguracaoDto = new TipoItemConfiguracaoDTO(); tipoItemConfiguracaoDto.setId(monitoramentoAtivosDto.getIdTipoItemConfiguracao()); tipoItemConfiguracaoDto = (TipoItemConfiguracaoDTO) tipoItemConfiguracaoService.restore(tipoItemConfiguracaoDto); document.executeScript("$('#tipoItemConfiguracao').attr('value', '" + StringEscapeUtils.escapeJavaScript(tipoItemConfiguracaoDto.getNome()) + "');"); this.preencheGridCaracteristicas(document, request, response); if (monitoramentoAtivosDto.getTipoRegra() != null) { if (monitoramentoAtivosDto.getTipoRegra().equalsIgnoreCase("c")) { document.executeScript("$('#tipoRegraCaracteristicas').prop('checked',true);"); document.executeScript("$('#tipoRegraCaracteristicas').parent().addClass('checked');"); // Preenche a caracteristica se existir... Collection<CaracteristicaMonitDTO> colCaracteristicaMonit = caracteristicaMonitService.restoreByIdMonitoramentoAtivos(monitoramentoAtivosDto.getIdMonitoramentoAtivos()); if (colCaracteristicaMonit != null && colCaracteristicaMonit.size() > 0) { for (CaracteristicaMonitDTO caracteristicaMonitDto : colCaracteristicaMonit) { document.executeScript("$('#idCaracteristica_" + caracteristicaMonitDto.getIdCaracteristica() + "').attr('checked', true);"); } } document.executeScript("$('.divCaracteristicas').show();$('.divScriptRhino').hide();"); } else if (monitoramentoAtivosDto.getTipoRegra().equalsIgnoreCase("s")) { document.executeScript("$('#tipoRegraScriptRhino').prop('checked',true);"); document.executeScript("$('#tipoRegraScriptRhino').parent().addClass('checked');"); // Preenche o script se existir... Collection<ScriptMonitDTO> colScriptMonit = scriptMonitService.restoreByIdMonitoramentoAtivos(monitoramentoAtivosDto.getIdMonitoramentoAtivos()); if (colScriptMonit != null && colScriptMonit.size() > 0) { for (ScriptMonitDTO scriptMonitDto : colScriptMonit) { document.getTextAreaById("script").setValue(scriptMonitDto.getScript()); } } document.executeScript("$('.divCaracteristicas').hide();$('.divScriptRhino').show();"); } } if (monitoramentoAtivosDto.getEnviarEmail() != null && monitoramentoAtivosDto.getEnviarEmail().equalsIgnoreCase("y")) { document.executeScript("$('.divEnviarEmail').show();"); } // Preenche usu�rios de notifica��o se existir... HTMLTable tblNotificacaoUsuarios = document.getTableById("tblNotificacaoUsuarios"); tblNotificacaoUsuarios.deleteAllRows(); Collection<NotificacaoUsuarioMonitDTO> colNotificacaoUsuarioMonit = notificacaoUsuarioMonitService.restoreByIdMonitoramentoAtivos(monitoramentoAtivosDto.getIdMonitoramentoAtivos()); if (colNotificacaoUsuarioMonit != null && colNotificacaoUsuarioMonit.size() > 0) { UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null); for (NotificacaoUsuarioMonitDTO notificacaoUsuarioMonitDto : colNotificacaoUsuarioMonit) { UsuarioDTO usuarioDto = new UsuarioDTO(); usuarioDto.setIdUsuario(notificacaoUsuarioMonitDto.getIdUsuario()); usuarioDto = (UsuarioDTO) usuarioService.restore(usuarioDto); document.executeScript("addLinhaTabelaNotificacaoUsuarios(" + usuarioDto.getIdUsuario() + ", '" + StringEscapeUtils.escapeJavaScript(usuarioDto.getNomeUsuario()) + "');"); } } // Preenche grupos de notifica��o se existir... HTMLTable tblNotificacaoGrupos = document.getTableById("tblNotificacaoGrupos"); tblNotificacaoGrupos.deleteAllRows(); Collection<NotificacaoGrupoMonitDTO> colNotificacaoGrupoMonit = notificacaoGrupoMonitService.restoreByIdMonitoramentoAtivos(monitoramentoAtivosDto.getIdMonitoramentoAtivos()); if (colNotificacaoGrupoMonit != null && colNotificacaoGrupoMonit.size() > 0) { GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); for (NotificacaoGrupoMonitDTO notificacaoGrupoMonitDto : colNotificacaoGrupoMonit) { GrupoDTO grupoDto = new GrupoDTO(); grupoDto.setIdGrupo(notificacaoGrupoMonitDto.getIdGrupo()); grupoDto = (GrupoDTO) grupoService.restore(grupoDto); document.executeScript("addLinhaTabelaNotificacaoGrupos(" + grupoDto.getIdGrupo() + ", '" + StringEscapeUtils.escapeJavaScript(grupoDto.getNome()) + "');"); } } } } document.executeScript("JANELA_AGUARDE_MENU.hide();"); } /** * M�todo que realiza a grava��o do monitoramento. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 13.06.2014 */ public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); MonitoramentoAtivosService monitoramentoAtivosService = (MonitoramentoAtivosService) ServiceLocator.getInstance().getService(MonitoramentoAtivosService.class, null); if (monitoramentoAtivosDto != null) { monitoramentoAtivosDto.setCriarIncidente( (monitoramentoAtivosDto.getCriarIncidente() == null ? "n" : monitoramentoAtivosDto.getCriarIncidente()) ); monitoramentoAtivosDto.setCriarProblema( (monitoramentoAtivosDto.getCriarProblema() == null ? "n" : monitoramentoAtivosDto.getCriarProblema()) ); monitoramentoAtivosDto.setEnviarEmail( (monitoramentoAtivosDto.getEnviarEmail() == null ? "n" : monitoramentoAtivosDto.getEnviarEmail()) ); if (monitoramentoAtivosDto.getIdMonitoramentoAtivos() == null) { monitoramentoAtivosService.create(monitoramentoAtivosDto); document.alert(UtilI18N.internacionaliza(request, "MSG05")); } else { monitoramentoAtivosService.update(monitoramentoAtivosDto); document.alert(UtilI18N.internacionaliza(request, "MSG06")); } } document.executeScript("JANELA_AGUARDE_MENU.hide();"); HTMLForm form = document.getForm("form"); form.clear(); load(document, request, response); } /** * M�todo que realiza a exclus�o do monitoramento selecionado. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 13.06.2014 * */ public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); MonitoramentoAtivosService monitoramentoAtivosService = (MonitoramentoAtivosService) ServiceLocator.getInstance().getService(MonitoramentoAtivosService.class, null); if (monitoramentoAtivosDto != null && monitoramentoAtivosDto.getIdMonitoramentoAtivos() != null) { monitoramentoAtivosService.delete(monitoramentoAtivosDto); document.alert(UtilI18N.internacionaliza(request, "MSG07") + "."); } document.executeScript("JANELA_AGUARDE_MENU.hide();"); HTMLForm form = document.getForm("form"); form.clear(); load(document, request, response); } /** * Realiza a valida��o da exist�ncia de um monitoramento com uma caracter�stica espec�fica. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 18.06.2014 */ public void validaExistenciaScriptTipoItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); MonitoramentoAtivosService monitoramentoAtivosService = (MonitoramentoAtivosService) ServiceLocator.getInstance().getService(MonitoramentoAtivosService.class, null); if (monitoramentoAtivosDto != null) { if (monitoramentoAtivosDto.getIdTipoItemConfiguracao() != null) { MonitoramentoAtivosDTO monitoramentoAtivosScript = monitoramentoAtivosService.obterMonitorametoAtivoDoTipoItemConfiguracao(monitoramentoAtivosDto.getIdTipoItemConfiguracao()); if (monitoramentoAtivosScript != null && monitoramentoAtivosScript.getIdMonitoramentoAtivos() != null) { if (monitoramentoAtivosDto.getIdMonitoramentoAtivos() == null || (monitoramentoAtivosDto.getIdMonitoramentoAtivos() != null && !monitoramentoAtivosDto.getIdMonitoramentoAtivos().equals(monitoramentoAtivosScript.getIdMonitoramentoAtivos()))) { document.executeScript("informaRegistroExistente('s');"); } } } } } /** * Realiza a valida��o da exist�ncia de um monitoramento com script. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 18.06.2014 */ public void validaExistenciaCaracteristicaTipoItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MonitoramentoAtivosDTO monitoramentoAtivosDto = (MonitoramentoAtivosDTO) document.getBean(); MonitoramentoAtivosService monitoramentoAtivosService = (MonitoramentoAtivosService) ServiceLocator.getInstance().getService(MonitoramentoAtivosService.class, null); if (monitoramentoAtivosDto != null) { if (monitoramentoAtivosDto.getIdTipoItemConfiguracao() != null && monitoramentoAtivosDto.getIdCaracteristica() != null) { MonitoramentoAtivosDTO monitoramentoAtivosCaracteristica = monitoramentoAtivosService.obterMonitorametoAtivoDaCaracteristica(monitoramentoAtivosDto.getIdTipoItemConfiguracao(), monitoramentoAtivosDto.getIdCaracteristica()); if (monitoramentoAtivosCaracteristica != null && monitoramentoAtivosCaracteristica.getIdMonitoramentoAtivos() != null) { if (monitoramentoAtivosDto.getIdMonitoramentoAtivos() == null || (monitoramentoAtivosDto.getIdMonitoramentoAtivos() != null && !monitoramentoAtivosDto.getIdMonitoramentoAtivos().equals(monitoramentoAtivosCaracteristica.getIdMonitoramentoAtivos()))) { document.executeScript("informaRegistroExistente('c');"); } } } } } /** * Realiza a limpeza dos campos do form. * * @param document * @param request * @param response * @throws Exception * @author rodrigo.acorse * @since 18.06.2014 */ public void limpaForm(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HTMLForm form = document.getForm("form"); //Limpa o form form.clear(); //Esconde as divs document.executeScript("$('.divCaracteristicas, .divScriptRhino, .divEnviarEmail').hide();"); //Limpa a tabela de caracter�sticas HTMLTable tblCaracteristicas = document.getTableById("tblCaracteristicas"); tblCaracteristicas.deleteAllRows(); //Limpa a tabela de notifica��o de usu�rios HTMLTable tblNotificacaoUsuarios = document.getTableById("tblNotificacaoUsuarios"); tblNotificacaoUsuarios.deleteAllRows(); //Limpa a tabela de notifica��o de grupos HTMLTable tblNotificacaoGrupos = document.getTableById("tblNotificacaoGrupos"); tblNotificacaoGrupos.deleteAllRows(); } @Override public Class getBeanClass() { return MonitoramentoAtivosDTO.class; } }