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.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.citcorpore.bean.ImagemItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.ImagemItemConfiguracaoRelacaoDTO; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.MapaDesenhoServicoDTO; import br.com.centralit.citcorpore.bean.ServicoDTO; import br.com.centralit.citcorpore.negocio.ImagemItemConfiguracaoRelacaoService; import br.com.centralit.citcorpore.negocio.ImagemItemConfiguracaoService; import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; import br.com.citframework.util.WebUtil; @SuppressWarnings({ "unused", "unchecked", "rawtypes" }) public class MapaDesenhoServico extends AjaxFormAction { private String idServico; private String selecaoIc; ArrayList<ServicoDTO> listaServicos; private ArrayList<Integer> itensDeletadosInesperadamente; @Override public Class getBeanClass() { return MapaDesenhoServicoDTO.class; } @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { if (isIdServicoNoParametro(request)) { MapaDesenhoServicoDTO mapa = (MapaDesenhoServicoDTO) document.getBean(); mapa.setIdServico(Integer.parseInt(idServico)); selecionarServico(document, request, response); } } /** * Verifica se o idServico foi passado como par�metro de URL e inicializa a p�gina com o servi�o carregado. * * @param request * @return */ private boolean isIdServicoNoParametro(HttpServletRequest request) { idServico = request.getParameter("idServico"); return idServico != null && !idServico.equals("") ? true : false; } public void selecionarServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MapaDesenhoServicoDTO mapa = (MapaDesenhoServicoDTO) document.getBean(); String imagensItemConfiguracaoSerializado = getImagensItemConfiguracaoSerializado(mapa.getIdServico(), request); imagensItemConfiguracaoSerializado = StringEscapeUtils.escapeJavaScript(imagensItemConfiguracaoSerializado); mapa.setListaItensConfiguracaoSerializada(imagensItemConfiguracaoSerializado); itensDeletadosInesperadamente = new ArrayList<Integer>(); if (this.itensDeletadosInesperadamente.size() > 0) { document.alert(UtilI18N.internacionaliza(request, "mapaDesenhoServico.algunsItensForamDeletadosPorOutrasFontes") + itensDeletadosInesperadamente.toString()); } HTMLForm form = document.getForm("form"); form.setValues(mapa); document.executeScript("atualizaServicoMapa('"+imagensItemConfiguracaoSerializado+"');"); } /** * @param idServico * @param request * @return * @throws Exception */ private String getImagensItemConfiguracaoSerializado(int idServico, HttpServletRequest request) throws Exception { ImagemItemConfiguracaoService imagemItemConfiguracaoService = (ImagemItemConfiguracaoService) ServiceLocator.getInstance().getService(ImagemItemConfiguracaoService.class, null); ImagemItemConfiguracaoRelacaoService imagemItemConfiguracaoRelacaoService = (ImagemItemConfiguracaoRelacaoService) ServiceLocator.getInstance().getService(ImagemItemConfiguracaoRelacaoService.class, null); ArrayList<ImagemItemConfiguracaoDTO> imagensItemConfiguracao = (ArrayList) imagemItemConfiguracaoService.findByIdServico(idServico); String serializado = null; if (imagensItemConfiguracao != null) { for (ImagemItemConfiguracaoDTO img : imagensItemConfiguracao) { ItemConfiguracaoService itemService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null); ItemConfiguracaoDTO item = new ItemConfiguracaoDTO(); item.setIdItemConfiguracao(img.getIdItemConfiguracao()); item = (ItemConfiguracaoDTO) itemService.restore(item); if (item == null) { itensDeletadosInesperadamente.add(img.getIdItemConfiguracao()); imagemItemConfiguracaoService.delete(img); } else { img.setIdentificacao(item.getIdentificacao()); } if(img.getIdImagemItemConfiguracao()!= null){ Collection<ImagemItemConfiguracaoRelacaoDTO> colIdImagemItemConfiguracaoPai = new ArrayList<ImagemItemConfiguracaoRelacaoDTO>(); Collection<ImagemItemConfiguracaoRelacaoDTO> imgItemConfiguracaoRel = null; imgItemConfiguracaoRel = imagemItemConfiguracaoRelacaoService.findByIdImagemItemConfiguracao(img.getIdImagemItemConfiguracao()); //Trata itens que j� existiam itens pai if(img.getIdImagemItemConfiguracaoPai()!= null){ ImagemItemConfiguracaoRelacaoDTO imgItemPaiAux = null; imgItemPaiAux = imagemItemConfiguracaoRelacaoService.findByIdImagemItemConfiguracaoAndIdItemPai(img.getIdImagemItemConfiguracao(), img.getIdImagemItemConfiguracaoPai()); if(imgItemPaiAux == null){ imgItemPaiAux = new ImagemItemConfiguracaoRelacaoDTO(); imgItemPaiAux.setIdImagemItemConfiguracaoPai(img.getIdImagemItemConfiguracaoPai()); imgItemPaiAux.setIdImagemItemConfiguracao(img.getIdImagemItemConfiguracao()); colIdImagemItemConfiguracaoPai.add(imgItemPaiAux); } } //Adiciona na lista de itens pais. if(imgItemConfiguracaoRel!= null && !imgItemConfiguracaoRel.isEmpty()){ for(ImagemItemConfiguracaoRelacaoDTO imgRel:imgItemConfiguracaoRel){ if(imgRel.getIdImagemItemConfiguracaoPai()!= null){ colIdImagemItemConfiguracaoPai.add(imgRel); } } } if(colIdImagemItemConfiguracaoPai!= null && !colIdImagemItemConfiguracaoPai.isEmpty()){ String colSerializado = WebUtil.serializeObjects(colIdImagemItemConfiguracaoPai, WebUtil.getLanguage(request)); img.setIdImagemItemConfiguracaoPaiColSerializado(colSerializado); } } // System.out.println("id imagem: " + // img.getIdImagemItemConfiguracao()); // System.out.println("id item: " + // img.getIdItemConfiguracao()); // System.out.println("id servi�o: " + img.getIdServico()); // System.out.println("posx: " + img.getPosx()); // System.out.println("posy: " + img.getPosy()); // System.out.println("descricao: " + img.getDescricao()); // System.out.println("----------------------------------------"); WebUtil.serializeObjects( } } serializado = WebUtil.serializeObjects(imagensItemConfiguracao, WebUtil.getLanguage(request)); return serializado; } /** * @param document * @param request * @param response * @throws Exception */ public void selecionarItemConfigurcao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MapaDesenhoServicoDTO mapa = (MapaDesenhoServicoDTO) document.getBean(); ItemConfiguracaoService itemService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null); ItemConfiguracaoDTO item = new ItemConfiguracaoDTO(); item.setIdItemConfiguracao(mapa.getIdItemConfiguracao()); item = (ItemConfiguracaoDTO) itemService.restore(item); mapa.setIdentificacao(item.getIdentificacao()); mapa.setIdItemConfiguracao(item.getIdItemConfiguracao()); HTMLForm form = document.getForm("form"); form.clear(); form.setValues(mapa); } public void salvarServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ArrayList<ImagemItemConfiguracaoDTO> listaItens = (ArrayList) WebUtil.deserializeCollectionFromRequest(ImagemItemConfiguracaoDTO.class, "listaItensConfiguracaoSerializada", request); ImagemItemConfiguracaoService imagemItemService = (ImagemItemConfiguracaoService) ServiceLocator.getInstance().getService(ImagemItemConfiguracaoService.class, null); ImagemItemConfiguracaoRelacaoService imagemItemConfiguracaoRelacaoServico = (ImagemItemConfiguracaoRelacaoService) ServiceLocator.getInstance().getService(ImagemItemConfiguracaoRelacaoService.class, null); if (listaItens != null) { for (ImagemItemConfiguracaoDTO img : listaItens) { // System.out.println("id imagem: " + // img.getIdImagemItemConfiguracao()); // System.out.println("id item: " + // img.getIdItemConfiguracao()); // System.out.println("id servi�o: " + img.getIdServico()); // System.out.println("posx: " + img.getPosx()); // System.out.println("posy: " + img.getPosy()); // System.out.println("descricao: " + img.getDescricao()); // System.out.println("----------------------------------------"); if (img.getIdImagemItemConfiguracao() == 0) { imagemItemService.create(img); } else { imagemItemService.update(img); } //Salvar itens na tabela de rela��o if(img.getIdImagemItemConfiguracaoPaiColSerializado()!= null && UtilStrings.isNotVazio(img.getIdImagemItemConfiguracaoPaiColSerializado())){ Collection<ImagemItemConfiguracaoRelacaoDTO> listaItensItemRel = (ArrayList) WebUtil.deserializeCollectionFromString(ImagemItemConfiguracaoRelacaoDTO.class, img.getIdImagemItemConfiguracaoPaiColSerializado()); for(ImagemItemConfiguracaoRelacaoDTO imgRel : listaItensItemRel){ if(imgRel!= null && imgRel.getIdImagemItemConfiguracao()!= null && imgRel.getIdImagemItemConfiguracaoPai()!= null){ ImagemItemConfiguracaoRelacaoDTO imgAux = imagemItemConfiguracaoRelacaoServico.findByIdImagemItemConfiguracaoAndIdItemPai(imgRel.getIdImagemItemConfiguracao(), imgRel.getIdImagemItemConfiguracaoPai()); if(imgAux == null){ imagemItemConfiguracaoRelacaoServico.create(imgRel); } } } } } } selecionarServico(document, request, response); document.executeScript("UtilMapa.mostrarMsgTemporaria('msg', 4," + UtilI18N.internacionaliza(request, "MSG06") + " );"); } public void excluirImagemItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { MapaDesenhoServicoDTO mapa = (MapaDesenhoServicoDTO) document.getBean(); ImagemItemConfiguracaoService imagemItemService = (ImagemItemConfiguracaoService) ServiceLocator.getInstance().getService(ImagemItemConfiguracaoService.class, null); ImagemItemConfiguracaoDTO img = new ImagemItemConfiguracaoDTO(); img.setIdImagemItemConfiguracao(mapa.getIdImagemItemConfiguracao()); imagemItemService.delete(img); mapa.setListaItensConfiguracaoSerializada(getImagensItemConfiguracaoSerializado(mapa.getIdServico(), request)); HTMLForm form = document.getForm("form"); form.setValues(mapa); document.executeScript("atualizaServicoMapa(); " + "UtilMapa.mostrarMsgTemporaria('msg', 4, " + UtilI18N.internacionaliza(request, "MSG07") + ");"); } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { } }