/** * */ package br.com.centralit.citcorpore.ajaxForms; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citcorpore.bean.ReleaseDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.CitBrowser; import br.com.centralit.citcorpore.util.WebUtil; import br.com.centralit.citgerencial.util.Util; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; /** * @author valdoilo.damasceno * */ @SuppressWarnings("unchecked") public class Index extends AjaxFormAction { private static final Logger LOGGER = Logger.getLogger(Index.class); private String locale = UtilI18N.PORTUGUESE_SIGLA; @Override public void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } final HttpSession session = request.getSession(); if (session.getAttribute("locale") != null && StringUtils.isNotBlank(session.getAttribute("locale").toString())) { locale = session.getAttribute("locale").toString(); } final String separator = System.getProperty("file.separator"); final String path = CITCorporeUtil.CAMINHO_REAL_APP + "XMLs" + separator + "release_" + locale + ".xml"; Reader reader = null; try { reader = new InputStreamReader(new FileInputStream(path), "ISO-8859-1"); } catch (final FileNotFoundException e) { LOGGER.warn(e.getMessage(), e); } final XStream x = new XStream(new DomDriver("ISO-8859-1")); final Collection<ReleaseDTO> listRelease = (Collection<ReleaseDTO>) x.fromXML(reader); this.preencherComboVersao(document, request, response, listRelease); try { if (reader != null) { reader.close(); } } catch (final IOException e) { LOGGER.warn(e.getMessage(), e); } if (listRelease != null && !listRelease.isEmpty()) { final StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("<div id='historicoRelease' style='overflow: auto; text-align: justify;'>"); int countRelease = 0; for (final ReleaseDTO releaseDto : listRelease) { stringBuilder.append("<div id='release"); stringBuilder.append(countRelease); stringBuilder.append("' style='height:100%' >"); stringBuilder.append("<div style='overflow: auto;' >"); stringBuilder.append("<br>"); if (releaseDto.getConteudo() != null && !releaseDto.getConteudo().isEmpty()) { int i = 0; for (final String item : releaseDto.getConteudo()) { ++i; stringBuilder.append("<div>"); stringBuilder.append("<span style='font-weight:bold;'>"); stringBuilder.append(i); stringBuilder.append(" "); stringBuilder.append("</span>"); stringBuilder.append(Util.encodeHTML(item)); stringBuilder.append("</div>"); stringBuilder.append("<br>"); } } stringBuilder.append("</div>"); stringBuilder.append("</div>"); ++countRelease; break; } stringBuilder.append("</div>"); document.getElementById("divRelease").setInnerHTML(stringBuilder.toString()); } final String mensagem = request.getParameter("mensagem"); if (mensagem != null && !mensagem.isEmpty()) { document.alert(UtilI18N.internacionaliza(request, mensagem)); } CitBrowser browser = null; if (request != null) { try { browser = new CitBrowser(request); } catch (final Exception e) { e.printStackTrace(); } } if (browser != null && browser.valido() < 1) { document.getElementById("content").setInnerHTML( "<label style='font-size: 14px !important; line-height: 24px; color:red !important;'>" + UtilI18N.internacionaliza(WebUtil.getUsuarioSistema(request).getLocale(), "login.incompativelComNavegador") + "</label>"); request.getSession().invalidate(); } } public void preencherComboVersao(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response, final Collection<ReleaseDTO> listRelease) throws Exception { if (listRelease != null && !listRelease.isEmpty()) { final HTMLSelect comboVersao = document.getSelectById("versao"); if (comboVersao != null) { comboVersao.removeAllOptions(); comboVersao.addOptions(listRelease, "versao", "versao", null); } } } public void buscaHistoricoPorVersao(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final ReleaseDTO releaseDTO = (ReleaseDTO) document.getBean(); final String separator = System.getProperty("file.separator"); final String path = CITCorporeUtil.CAMINHO_REAL_APP + "XMLs" + separator + "release_" + locale + ".xml"; Reader reader = null; try { reader = new InputStreamReader(new FileInputStream(path), "ISO-8859-1"); } catch (final FileNotFoundException e) { LOGGER.warn(e.getMessage(), e); } final XStream x = new XStream(new DomDriver("ISO-8859-1")); final Collection<ReleaseDTO> listRelease = (Collection<ReleaseDTO>) x.fromXML(reader); try { if (reader != null) { reader.close(); } } catch (final IOException e) { LOGGER.warn(e.getMessage(), e); } if (listRelease != null && !listRelease.isEmpty()) { final StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("<div id='historicoRelease' style='overflow: auto;'>"); int countRelease = 0; for (final ReleaseDTO releaseDto : listRelease) { if (releaseDTO.getVersao().equals(releaseDto.getVersao())) { stringBuilder.append("<div id='release"); stringBuilder.append(countRelease); stringBuilder.append("' style='width: 100%; text-align: justify;'>"); stringBuilder.append("<div>"); stringBuilder.append("<br>"); if (releaseDto.getConteudo() != null && !releaseDto.getConteudo().isEmpty()) { int i = 0; for (final String item : releaseDto.getConteudo()) { ++i; stringBuilder.append("<div>"); stringBuilder.append("<span style='font-weight:bold;'>"); stringBuilder.append(i); stringBuilder.append(" "); stringBuilder.append("</span>"); stringBuilder.append(Util.encodeHTML(item)); stringBuilder.append("</div>"); stringBuilder.append("<br>"); } } stringBuilder.append("</div>"); stringBuilder.append("</div>"); ++countRelease; } stringBuilder.append("</div>"); document.getElementById("divRelease").setInnerHTML(stringBuilder.toString()); } } } @Override public Class<ReleaseDTO> getBeanClass() { return ReleaseDTO.class; } }