package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; 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.HTMLSelect; import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO; import br.com.centralit.citcorpore.bean.GrupoDTO; import br.com.centralit.citcorpore.bean.NotificacaoDTO; import br.com.centralit.citcorpore.bean.NotificacaoGrupoDTO; import br.com.centralit.citcorpore.bean.NotificacaoUsuarioDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.BaseConhecimentoService; import br.com.centralit.citcorpore.negocio.GrupoService; import br.com.centralit.citcorpore.negocio.NotificacaoGrupoService; import br.com.centralit.citcorpore.negocio.NotificacaoService; import br.com.centralit.citcorpore.negocio.NotificacaoUsuarioService; import br.com.centralit.citcorpore.negocio.UsuarioService; import br.com.centralit.citcorpore.util.Enumerados.OrigemNotificacao; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; @SuppressWarnings({ "rawtypes", "unchecked" }) public class Notificacao extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { this.preencherComboTipoNotificacao(document, request, response); NotificacaoDTO notificacao = (NotificacaoDTO) document.getBean(); BaseConhecimentoDTO baseConhecimentoDto = new BaseConhecimentoDTO(); if (request.getParameter("idBaseConhecimento") != null && !StringUtils.isEmpty(request.getParameter("idBaseConhecimento"))) { baseConhecimentoDto.setIdBaseConhecimento(Integer.parseInt(request.getParameter("idBaseConhecimento"))); BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null); baseConhecimentoDto = (BaseConhecimentoDTO) baseConhecimentoService.restore(baseConhecimentoDto); if (baseConhecimentoDto.getIdNotificacao() != null && baseConhecimentoDto.getIdNotificacao() != 0) { notificacao.setIdNotificacao(baseConhecimentoDto.getIdNotificacao()); this.restore(document, request, response); } } } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { NotificacaoDTO notificacao = (NotificacaoDTO) document.getBean(); NotificacaoService notificacaoService = (NotificacaoService) ServiceLocator.getInstance().getService(NotificacaoService.class, null); notificacao.setListaDeUsuario((ArrayList<NotificacaoUsuarioDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(NotificacaoUsuarioDTO.class, "usuariosSerializados", request)); notificacao.setListaDeGrupo((ArrayList<NotificacaoGrupoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(NotificacaoGrupoDTO.class, "gruposSerializados", request)); if (notificacao.getIdNotificacao() == null || notificacao.getIdNotificacao().intValue() == 0) { if (notificacao.getOrigemNotificacao().equals("S")) { notificacao.setOrigemNotificacao(OrigemNotificacao.S.name()); } if (notificacaoService.consultarNotificacaoAtivos(notificacao)) { document.alert("Registro ja existente!"); return; } notificacaoService.create(notificacao); document.alert(UtilI18N.internacionaliza(request, "MSG05")); } else { notificacaoService.update(notificacao); document.alert(UtilI18N.internacionaliza(request, "MSG06")); } document.executeScript("$('#gridUsuario').hide()"); document.executeScript("$('#gridGrupo').hide()"); HTMLForm form = document.getForm("form"); form.clear(); } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { NotificacaoDTO notificacaoDto = (NotificacaoDTO) document.getBean(); if (notificacaoDto.getIdNotificacao() == null) { return; } NotificacaoService notificacaoService = (NotificacaoService) ServiceLocator.getInstance().getService(NotificacaoService.class, null); NotificacaoGrupoService notificacaoGrupoService = (NotificacaoGrupoService) ServiceLocator.getInstance().getService(NotificacaoGrupoService.class, null); NotificacaoUsuarioService notificacaoUsuarioService = (NotificacaoUsuarioService) ServiceLocator.getInstance().getService(NotificacaoUsuarioService.class, null); GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null); UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null); notificacaoDto = (NotificacaoDTO) notificacaoService.restore(notificacaoDto); document.executeScript("deleteAllRowsUsuario()"); document.executeScript("deleteAllRowsGrupo()"); HTMLForm form = document.getForm("form"); form.clear(); form.setValues(notificacaoDto); Collection<NotificacaoGrupoDTO> listaIdGrupo = notificacaoGrupoService.listaIdGrupo(notificacaoDto.getIdNotificacao()); Collection<NotificacaoUsuarioDTO> listaIdUsuario = notificacaoUsuarioService.listaIdUsuario(notificacaoDto.getIdNotificacao()); if (listaIdUsuario != null && !listaIdUsuario.isEmpty()) { for (NotificacaoUsuarioDTO notificacaoUsuarioDto : listaIdUsuario) { if (notificacaoUsuarioDto.getIdUsuario() != null) { UsuarioDTO usuarioDto = new UsuarioDTO(); usuarioDto.setIdUsuario(notificacaoUsuarioDto.getIdUsuario()); usuarioDto = (UsuarioDTO) usuarioService.restore(usuarioDto); document.executeScript("addLinhaTabelaUsuario(" + usuarioDto.getIdUsuario() + ", '" + usuarioDto.getNomeUsuario() + "', " + false + ");"); document.executeScript("exibirTabelaUsuario()"); document.executeScript("$('#gridUsuario').show()"); } } } if (listaIdGrupo != null && !listaIdGrupo.isEmpty()) { for (NotificacaoGrupoDTO notificacaoGrupoDto : listaIdGrupo) { if (notificacaoGrupoDto.getIdGrupo() != null) { GrupoDTO grupoDto = new GrupoDTO(); grupoDto.setIdGrupo(notificacaoGrupoDto.getIdGrupo()); grupoDto = (GrupoDTO) grupoService.restore(grupoDto); document.executeScript("addLinhaTabelaGrupo(" + grupoDto.getIdGrupo() + ", '" + grupoDto.getNome() + "', " + false + ");"); document.executeScript("exibirTabelaGrupo()"); document.executeScript("$('#gridGrupo').show()"); } } } } public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { NotificacaoDTO notificacaoDto = (NotificacaoDTO) document.getBean(); NotificacaoService notificacaoService = (NotificacaoService) ServiceLocator.getInstance().getService(NotificacaoService.class, null); if (notificacaoDto.getIdNotificacao() != null || notificacaoDto.getIdNotificacao() != 0) { notificacaoDto.setDataFim(UtilDatas.getDataAtual()); notificacaoService.delete(notificacaoDto); document.alert(UtilI18N.internacionaliza(request, "MSG07")); } document.executeScript("$('#gridUsuario').hide()"); document.executeScript("$('#gridGrupo').hide()"); HTMLForm form = document.getForm("form"); form.clear(); } public void preencherComboTipoNotificacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HTMLSelect comboTipoNotificacao = (HTMLSelect) document.getSelectById("tipoNotificacao"); inicializaCombo(comboTipoNotificacao, request); comboTipoNotificacao.addOption("T", "Tudo for alterado"); comboTipoNotificacao.addOption("C", "Novas nofitica��es for adicionadas"); comboTipoNotificacao.addOption("A", "Notifica��es forem alteradas"); comboTipoNotificacao.addOption("E", "Notifica��es forem excluidas"); } private void inicializaCombo(HTMLSelect componenteCombo, HttpServletRequest request) { componenteCombo.removeAllOptions(); componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); } @Override public Class getBeanClass() { // TODO Auto-generated method stub return NotificacaoDTO.class; } }