package br.com.centralit.citcorpore.ajaxForms; import java.io.File; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.VisaoPersonalizadaDTO; import br.com.centralit.citcorpore.metainfo.bean.VisaoDTO; import br.com.centralit.citcorpore.metainfo.negocio.VisaoService; import br.com.centralit.citcorpore.negocio.VisaoPersonalizadaService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilTratamentoArquivos; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class ControleVisoes extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { VisaoPersonalizadaService visaoPersonalizadaService = (VisaoPersonalizadaService) ServiceLocator.getInstance().getService(VisaoPersonalizadaService.class, null); VisaoService visaoService = (VisaoService) ServiceLocator.getInstance().getService(VisaoService.class, null); String dirPrinc = CITCorporeUtil.CAMINHO_REAL_APP + "/visoesXML"; File fileDir = new File(dirPrinc); String strBuffer = "<table>"; strBuffer += "<tr>"; strBuffer += "<td>"; strBuffer += "<b>Vis�o</b>"; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<b>Personalizada nesta instala��o?</b>  "; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<b>Carregar agora ?</b>"; strBuffer += "</td>"; strBuffer += "</tr>"; if (fileDir.isDirectory()){ File[] files = fileDir.listFiles(); if (files != null){ for(int i = 0; i < files.length; i++){ byte[] bytes = UtilTratamentoArquivos.getBytesFromFile(files[i]); XStream x = new XStream(new DomDriver("ISO-8859-1")); String str = new String(bytes, "ISO-8859-1"); VisaoDTO visaoAux = (VisaoDTO) x.fromXML(str); VisaoDTO visaoDto = visaoService.findByIdentificador(visaoAux.getIdentificador()); String personalizada = "N"; if (visaoDto != null){ VisaoPersonalizadaDTO visaoPersonalizadaAux = new VisaoPersonalizadaDTO(); visaoPersonalizadaAux.setIdvisao(visaoDto.getIdVisao()); try{ visaoPersonalizadaAux = (VisaoPersonalizadaDTO) visaoPersonalizadaService.restore(visaoPersonalizadaAux); if (visaoPersonalizadaAux != null){ if (visaoPersonalizadaAux.getPersonalizada() != null && visaoPersonalizadaAux.getPersonalizada().equalsIgnoreCase("S")){ personalizada = "S"; } } }catch (Exception e) { } } strBuffer += "<tr>"; strBuffer += "<td>"; strBuffer += "" + files[i].getName(); strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<input type='checkbox' name='identifPersonalizado' id='identifPersonalizado' value='" + files[i].getName() + "' " + (personalizada.equalsIgnoreCase("S") ? "checked=checked" : "") + "/>"; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<input type='checkbox' name='carregar' id='carregar' value='" + files[i].getName() + "'/>"; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<div id='" + files[i].getName() + "'></div>"; strBuffer += "</td>"; strBuffer += "</tr>"; } } } strBuffer += "<tr>"; strBuffer += "<td>"; strBuffer += " "; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<input type='button' name='btnGravarPers' id='btnGravarPers' value='Gravar' onclick='gravar()'/>"; strBuffer += "</td>"; strBuffer += "<td>"; strBuffer += "<input type='button' name='btnCarregar' id='btnCarregar' value='Carregar'/>"; strBuffer += "</td>"; strBuffer += "</tr>"; strBuffer += "</table>"; document.getElementById("divVisoes").setInnerHTML(strBuffer); } @Override public Class getBeanClass() { return VisaoPersonalizadaDTO.class; } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { VisaoPersonalizadaDTO visaoPersonalizadaDTO = (VisaoPersonalizadaDTO)document.getBean(); VisaoPersonalizadaService visaoPersonalizadaService = (VisaoPersonalizadaService) ServiceLocator.getInstance().getService(VisaoPersonalizadaService.class, null); VisaoService visaoService = (VisaoService) ServiceLocator.getInstance().getService(VisaoService.class, null); visaoPersonalizadaService.deleteAll(); if (visaoPersonalizadaDTO.getIdentifPersonalizado() != null){ for (int i = 0; i < visaoPersonalizadaDTO.getIdentifPersonalizado().length; i++){ File file = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/visoesXML/" + visaoPersonalizadaDTO.getIdentifPersonalizado()[i]); byte[] bytes = UtilTratamentoArquivos.getBytesFromFile(file); XStream x = new XStream(new DomDriver("ISO-8859-1")); String str = new String(bytes, "ISO-8859-1"); VisaoDTO visaoAux = (VisaoDTO) x.fromXML(str); VisaoDTO visaoDto = visaoService.findByIdentificador(visaoAux.getIdentificador()); if (visaoDto != null){ VisaoPersonalizadaDTO visaoPersonalizadaAux = new VisaoPersonalizadaDTO(); visaoPersonalizadaAux.setIdvisao(visaoDto.getIdVisao()); try{ visaoPersonalizadaAux = (VisaoPersonalizadaDTO) visaoPersonalizadaService.restore(visaoPersonalizadaAux); if (visaoPersonalizadaAux == null){ visaoPersonalizadaAux = new VisaoPersonalizadaDTO(); visaoPersonalizadaAux.setIdvisao(visaoDto.getIdVisao()); visaoPersonalizadaAux.setPersonalizada("S"); visaoPersonalizadaAux.setDataModif(UtilDatas.getDataAtual()); visaoPersonalizadaService.create(visaoPersonalizadaAux); }else{ visaoPersonalizadaAux.setPersonalizada("S"); visaoPersonalizadaAux.setDataModif(UtilDatas.getDataAtual()); visaoPersonalizadaService.update(visaoPersonalizadaAux); } document.getElementById(visaoPersonalizadaDTO.getIdentifPersonalizado()[i]).setInnerHTML("Vis�o atualizada com sucesso!"); }catch (Exception e) { document.getElementById(visaoPersonalizadaDTO.getIdentifPersonalizado()[i]).setInnerHTML("Ocorreu um erro ao atualizar!"); } }else{ document.getElementById(visaoPersonalizadaDTO.getIdentifPersonalizado()[i]).setInnerHTML("Vis�o n�o encontrada. Fa�a a importa��o."); } } } } }