package br.com.centralit.citcorpore.ajaxForms; import java.io.ByteArrayInputStream; import java.io.File; import java.io.InputStream; import java.io.PrintWriter; import java.sql.Date; import java.util.ArrayList; import java.util.Collection; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLElement; import br.com.centralit.citcorpore.bean.BIConsultaColunasDTO; import br.com.centralit.citcorpore.bean.BIConsultaDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.BIConsultaColunasService; import br.com.centralit.citcorpore.negocio.BIConsultaService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.centralit.citgerencial.bean.GerencialOptionDTO; import br.com.centralit.citgerencial.bean.GerencialOptionsDTO; import br.com.centralit.citgerencial.bean.GerencialParameterDTO; import br.com.centralit.citgerencial.negocio.GerencialGenerate; import br.com.centralit.citgerencial.util.WebUtilGerencial; import br.com.citframework.dto.Usuario; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.JdbcEngine; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; import br.com.citframework.util.UtilTratamentoArquivos; public class GeraInfoPivotTable extends AjaxFormAction{ @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { BIConsultaDTO biConsultaParm = (BIConsultaDTO)document.getBean(); BIConsultaService biConsultaService = (BIConsultaService) ServiceLocator.getInstance().getService(BIConsultaService.class, null); BIConsultaColunasService biConsultaColunasService = (BIConsultaColunasService) ServiceLocator.getInstance().getService(BIConsultaColunasService.class, null); Usuario user = WebUtilGerencial.getUsuario(request); if (user == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); return; } BIConsultaDTO biConsultaDTO = new BIConsultaDTO(); biConsultaDTO.setIdConsulta(biConsultaParm.getIdConsulta()); try{ biConsultaDTO = (BIConsultaDTO) biConsultaService.restore(biConsultaDTO); }catch(Exception e){ document.alert("Consulta inexistente!"); return; } if (biConsultaDTO == null){ document.alert("Consulta inexistente!"); return; } HashMap hashParametros = null; if (biConsultaDTO.getParametros() != null && !biConsultaDTO.getParametros().trim().equalsIgnoreCase("")){ biConsultaDTO.setListParameters(getSubTreeParameters(biConsultaDTO.getParametros())); hashParametros = getParametrosInformados(request); } if (!biConsultaParm.isParametersPreenchidos() && biConsultaDTO.getListParameters() != null && biConsultaDTO.getListParameters().size() > 0) { HTMLElement divParametros = document.getElementById("divParametros"); divParametros.setInnerHTML(geraParametrosPainel(biConsultaDTO.getListParameters(), hashParametros, user, true, request)); document.executeScript("DEFINEALLPAGES_atribuiCaracteristicasCitAjax()"); // document.executeScript("$('#POPUP_PARAM').attr('title','" + gerencialPainelDto.getDescription() + "')"); document.executeScript("HTMLUtils.focusInFirstActivateField(document.formParametros)"); document.executeScript("pageLoad();"); document.executeScript("$('#POPUP_PARAM').dialog('open')"); return; } if (!biConsultaParm.isParametersPreenchidos()){ document.executeScript("gerarPainelSemParametros()"); return; } JdbcEngine jdbcEngine = null; if (CITCorporeUtil.JDBC_ALIAS_REPORTS != null && !CITCorporeUtil.JDBC_ALIAS_REPORTS.trim().equalsIgnoreCase("")){ jdbcEngine = new JdbcEngine(CITCorporeUtil.JDBC_ALIAS_REPORTS, null); }else{ jdbcEngine = new JdbcEngine(Constantes.getValue("DATABASE_ALIAS"), null); } String sql = biConsultaDTO.getTextoSQL(); Collection colParmsUtilizadosNoSQL = new ArrayList(); sql = trataSQL(sql, user, colParmsUtilizadosNoSQL); List listParms = trataParameters(hashParametros, user, colParmsUtilizadosNoSQL, biConsultaDTO.getListParameters()); StringBuilder buffer = new StringBuilder(); buffer.append("["); List result = null; if (listParms != null) { result = jdbcEngine.execSQL(sql, listParms.toArray(), 0); }else{ result = jdbcEngine.execSQL(sql, null, 0); } List colColunas = (List) biConsultaColunasService.findByIdConsulta(biConsultaParm.getIdConsulta()); if (colColunas == null){ colColunas = new ArrayList(); } boolean primVez = true; long qtde = 0; if (result != null){ for (Iterator it = result.iterator(); it.hasNext();){ Object[] objs = (Object[]) it.next(); if (!primVez){ buffer.append(","); } primVez = false; String str = "{"; for (int i = 0; i < objs.length; i++){ if (!str.equalsIgnoreCase("{")){ str += ","; } String valueStr = ""; if (objs[i] != null && objs[i].toString() != null){ valueStr = objs[i].toString(); } valueStr = valueStr.replaceAll("\"", ""); valueStr = valueStr.replaceAll("\'", ""); String strNomeColuna = ""; if (i < colColunas.size()){ BIConsultaColunasDTO biConsultaColunasDTO = (BIConsultaColunasDTO) colColunas.get(i); strNomeColuna = biConsultaColunasDTO.getNomeColuna(); }else{ strNomeColuna = "campo_" + i; } strNomeColuna = strNomeColuna.replaceAll("\"", ""); strNomeColuna = strNomeColuna.replaceAll("\'", ""); str += "\"" + strNomeColuna + "\":"; if (objs[i] != null){ valueStr = valueStr.replaceAll("\"", ""); valueStr = valueStr.replaceAll("\'", ""); valueStr = valueStr.replaceAll("[^a-zA-Z0-9 \\.\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\�\\-\\_\\(\\)\\*\\%\\$\\#\\@\\!\\|\\,]+"," "); //valueStr = valueStr.replaceAll("\\W", ""); str += "\"" + valueStr + "\""; }else{ str += "\"\""; } } str += "}"; buffer.append(str); qtde++; /* if (qtde > 1500){ break; } */ } } buffer.append("]"); request.setAttribute("json", "S"); //request.setAttribute("textJSON", buffer.toString()); response.setContentType("application/json; charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=resp.json"); PrintWriter printout = response.getWriter(); response.setContentLength(buffer.toString().length()); printout.print(buffer.toString()); printout.flush(); //response.getOutputStream().write(buffer.toString().getBytes()); } public void geraOds(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null){ document.alert("Sess�o expirada! Favor efetuar logon novamente!"); return; } BIConsultaDTO biConsultaParm = (BIConsultaDTO)document.getBean(); String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempReceitas/" + usuario.getIdEmpregado(); String diretorioRelativoReceita = Constantes.getValue("CONTEXTO_APLICACAO") + "/tempReceitas/" + usuario.getIdEmpregado(); File f = new File(diretorioReceita); if (!f.exists()){ f.mkdirs(); } String conteudo = ""; if (biConsultaParm.getConteudo() != null){ conteudo = biConsultaParm.getConteudo(); } conteudo = conteudo.replaceAll("\\<th", "<td"); conteudo = conteudo.replaceAll("\\<\\/th>", "</td>"); conteudo = conteudo.replaceAll("tbody", "table"); String arquivo = diretorioReceita + "/resultado.ods"; UtilTratamentoArquivos.geraFileTxtFromString(arquivo, conteudo); arquivo = diretorioRelativoReceita + "/resultado.ods"; document.executeScript("window.open('" + arquivo + "')"); } public void geraExcel(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null){ document.alert("Sess�o expirada! Favor efetuar logon novamente!"); return; } BIConsultaDTO biConsultaParm = (BIConsultaDTO)document.getBean(); String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempReceitas/" + usuario.getIdEmpregado(); String diretorioRelativoReceita = Constantes.getValue("CONTEXTO_APLICACAO") + "/tempReceitas/" + usuario.getIdEmpregado(); File f = new File(diretorioReceita); if (!f.exists()){ f.mkdirs(); } String conteudo = ""; if (biConsultaParm.getConteudo() != null){ conteudo = biConsultaParm.getConteudo(); } conteudo = conteudo.replaceAll("\\<th", "<td"); conteudo = conteudo.replaceAll("\\<\\/th>", "</td>"); conteudo = conteudo.replaceAll("tbody", "table"); String arquivo = diretorioReceita + "/resultado.xls"; UtilTratamentoArquivos.geraFileTxtFromString(arquivo, conteudo); arquivo = diretorioRelativoReceita + "/resultado.xls"; document.executeScript("window.open('" + arquivo + "')"); } @Override public Class getBeanClass() { return BIConsultaDTO.class; } private String trataSQL(String sql, Usuario usuario, Collection colParmsUtilizadosNoSQL) { sql = sql.replaceAll("\\{IDEMPRESA\\}", "" + usuario.getIdEmpresa()); sql = sql.replaceAll("\\{DATAATUAL\\}", "'" + UtilDatas.dateToSTR(UtilDatas.getDataAtual()) + "'"); boolean b = true; while (b) { int beginIndex = sql.indexOf("{PARAM"); if (beginIndex >= 0) { int endIndex = sql.indexOf("}"); String nameParm = sql.substring(beginIndex, endIndex); nameParm = nameParm.replaceAll("\\{", ""); sql = sql.replaceFirst("\\{" + nameParm + "\\}", "?"); colParmsUtilizadosNoSQL.add(nameParm); } else { b = false; } } return sql; } private List trataParameters(HashMap hsmParms, Usuario usuario, Collection colParmsUtilizadosNoSQL, Collection colDefinicaoParametros) { if (colParmsUtilizadosNoSQL == null || colParmsUtilizadosNoSQL.size() == 0) { return null; } List lstRetorno = new ArrayList(); for (Iterator it = colParmsUtilizadosNoSQL.iterator(); it.hasNext();) { String nameParm = (String) it.next(); String type = getTypeParametro(colDefinicaoParametros, nameParm); String valor = (String) hsmParms.get(nameParm); if (type.equalsIgnoreCase("java.sql.Date")) { Date data = null; try { data = UtilDatas.strToSQLDate(valor); } catch (LogicException e) { e.printStackTrace(); } lstRetorno.add(data); } if (type.equalsIgnoreCase("java.lang.Integer")) { Integer intAux = null; if (valor == null) { intAux = new Integer(0); } else { intAux = new Integer(valor); } lstRetorno.add(intAux); } if (type.equalsIgnoreCase("java.lang.Double")) { Double duplo; String aux = valor; aux = aux.replaceAll("\\.", ""); aux = aux.replaceAll("\\,", "\\."); duplo = new Double(Double.parseDouble(aux)); lstRetorno.add(duplo); } if (type.equalsIgnoreCase("java.lang.String")) { lstRetorno.add(valor); } } return lstRetorno; } private String getTypeParametro(Collection colDefinicaoParametros, String nameParm) { if (colDefinicaoParametros == null) { return ""; } for (Iterator it = colDefinicaoParametros.iterator(); it.hasNext();) { GerencialParameterDTO gerencialParameterDTO = (GerencialParameterDTO) it.next(); String nomeParmAux = "PARAM." + gerencialParameterDTO.getName().trim(); if (nomeParmAux.equalsIgnoreCase(nameParm)) { return gerencialParameterDTO.getType(); } } return ""; } private String geraParametrosPainel(List listParameters, HashMap hashParametros, Usuario user, boolean reload, HttpServletRequest request) throws ServiceException, Exception { String strRetorno = "<table>"; for (Iterator it = listParameters.iterator(); it.hasNext();) { GerencialParameterDTO gerencialParameterDto = (GerencialParameterDTO) it.next(); strRetorno += "<tr>"; strRetorno += "<td>"; strRetorno += UtilI18N.internacionaliza(request, gerencialParameterDto.getDescription()); if (gerencialParameterDto.isMandatory()) { strRetorno += "*"; } strRetorno += "</td>"; strRetorno += "<td>"; strRetorno += geraCampo(gerencialParameterDto, listParameters, hashParametros, user, reload, request); strRetorno += "</td>"; strRetorno += "</tr>"; } strRetorno += "</table>"; return strRetorno; } private String geraCampo(GerencialParameterDTO gerencialParameterDto, List listParameters, HashMap hashParametros, Usuario user, boolean reload, HttpServletRequest request) throws ServiceException, Exception { String strRetorno = ""; String strValid = ""; if (gerencialParameterDto.isMandatory()) { strValid = "Required"; } // Verifica se o campo tem o tipo HTML como select. if (gerencialParameterDto.getTypeHTML() != null && gerencialParameterDto.getTypeHTML().equalsIgnoreCase("select")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } strRetorno += "<select size='" + gerencialParameterDto.getSize() + "' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "' class='Description[" + gerencialParameterDto.getDescription() + "]" + strValidCompleta + "'"; if (gerencialParameterDto.isReload()) { // strRetorno += " onchange='recarrega(this)'"; } String value = "#$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%"; // Valor absurdo!!!! So sera usado se nao foi informado o parametro. if (reload) { value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value == null) { value = "#$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%"; } } strRetorno += ">"; if (gerencialParameterDto.getColOptions() != null) { for (Iterator it = gerencialParameterDto.getColOptions().iterator(); it.hasNext();) { Object obj = it.next(); if (GerencialOptionDTO.class.isInstance(obj)) { GerencialOptionDTO option = (GerencialOptionDTO) obj; strRetorno += "<option value='" + option.getValue() + "'"; if (reload) { if (option.getValue().equalsIgnoreCase(value)) { strRetorno += " selected "; } } strRetorno += ">" + UtilI18N.internacionaliza(request, option.getText()) + "</option>"; } if (GerencialOptionsDTO.class.isInstance(obj)) { GerencialOptionsDTO options = (GerencialOptionsDTO) obj; if (options.isOnload() || reload) { GerencialGenerate gerencialGenerateService = (GerencialGenerate) ServiceLocator.getInstance().getService(GerencialGenerate.class, WebUtil.getUsuarioSistema(request)); Collection col = gerencialGenerateService.executaSQLOptions(options, listParameters, hashParametros, user); for (Iterator itOptions = col.iterator(); itOptions.hasNext();) { GerencialOptionDTO option = (GerencialOptionDTO) itOptions.next(); strRetorno += "<option value='" + option.getValue() + "'"; if (reload) { if (option.getValue().equalsIgnoreCase(value)) { strRetorno += " selected "; } } strRetorno += ">" + option.getText() + "</option>"; } } } } } strRetorno += "</select>"; } // Verifica se o campo tem o tipo HTML como checkbox. if (gerencialParameterDto.getTypeHTML() != null && gerencialParameterDto.getTypeHTML().equalsIgnoreCase("checkbox")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } String value = "#$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%"; // Valor absurdo!!!! So sera usado se nao foi informado o parametro. if (reload) { value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value == null) { value = "#$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%$#%"; } } if (gerencialParameterDto.getColOptions() != null) { String strRetornoAux = ""; int qtdeOpcoes = 0; for (Iterator it = gerencialParameterDto.getColOptions().iterator(); it.hasNext();) { Object obj = it.next(); if (GerencialOptionDTO.class.isInstance(obj)) { qtdeOpcoes++; GerencialOptionDTO option = (GerencialOptionDTO) obj; strRetornoAux += "<input type='checkbox' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "' class='Description[" + gerencialParameterDto.getDescription() + "] " + strValidCompleta + "' value='" + option.getValue() + "'"; if (reload) { if (option.getValue().equalsIgnoreCase(value)) { strRetornoAux += " checked='checked' "; } } if (gerencialParameterDto.isReload()) { // strRetornoAux += " onclick='recarrega(this)'"; } strRetornoAux += "/>" + option.getText() + "<br/>"; } if (GerencialOptionsDTO.class.isInstance(obj)) { GerencialOptionsDTO options = (GerencialOptionsDTO) obj; if (options.isOnload() || reload) { GerencialGenerate gerencialGenerateService = (GerencialGenerate) ServiceLocator.getInstance().getService(GerencialGenerate.class, WebUtil.getUsuarioSistema(request)); Collection col = gerencialGenerateService.executaSQLOptions(options, listParameters, hashParametros, user); for (Iterator itOptions = col.iterator(); itOptions.hasNext();) { qtdeOpcoes++; GerencialOptionDTO option = (GerencialOptionDTO) itOptions.next(); strRetornoAux += "<input type='checkbox' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "' class='Description[" + gerencialParameterDto.getDescription() + "] " + strValidCompleta + "' value='" + option.getValue() + "'"; if (reload) { if (option.getValue().equalsIgnoreCase(value)) { strRetornoAux += " checked='checked' "; } } if (gerencialParameterDto.isReload()) { // strRetornoAux += " onclick='recarrega(this)'"; } strRetornoAux += "/>" + option.getText() + "<br/>"; } } } } if (!strRetornoAux.equalsIgnoreCase("")) { if (qtdeOpcoes > 5) { strRetorno += "<div style='height:100px; overflow:auto; border: 1px solid black'>" + strRetornoAux + "</div>"; } else { strRetorno += strRetornoAux; } } } } // Campo Date if (gerencialParameterDto.getType().equalsIgnoreCase("java.sql.Date")) { strValid += ",Date"; strRetorno += "<input type='text' size='" + gerencialParameterDto.getSize() + "' maxlength='" + gerencialParameterDto.getSize() + "' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "'"; if (!reload) { strRetorno += " value='" + gerencialParameterDto.getDefaultValue() + "' "; } strRetorno += " class='Format[Date] Description[" + gerencialParameterDto.getDescription() + "] Valid[" + strValid + "] datepicker' "; if (gerencialParameterDto.isReload()) { // strRetorno += " onblur='recarrega(this)'"; } if (reload) { String value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value != null) { strRetorno += " value='" + value + "'"; } } strRetorno += "/>"; } // Campo Inteiro - Nao ha casas decimais if (gerencialParameterDto.getType().equalsIgnoreCase("java.lang.Integer")) { if (gerencialParameterDto.getTypeHTML() == null || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("") || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("text")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } strRetorno += "<input type='text' size='" + gerencialParameterDto.getSize() + "' maxlength='" + gerencialParameterDto.getSize() + "' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "'"; if (!reload) { strRetorno += " value='" + gerencialParameterDto.getDefaultValue() + "' "; } strRetorno += " class='Format[Numero] Description[" + gerencialParameterDto.getDescription() + "]" + strValidCompleta + "'"; if (gerencialParameterDto.isReload()) { // strRetorno += " onblur='recarrega(this)'"; } if (reload) { String value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value != null) { strRetorno += " value='" + value + "'"; } } strRetorno += "/>"; } } // Campo Duplo - Com casas decimais if (gerencialParameterDto.getType().equalsIgnoreCase("java.lang.Double")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } strRetorno += "<input type='text' size='" + gerencialParameterDto.getSize() + "' maxlength='" + gerencialParameterDto.getSize() + "' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "'"; if (!reload) { strRetorno += " value='" + gerencialParameterDto.getDefaultValue() + "' "; } strRetorno += " class='Format[Money] Description[" + gerencialParameterDto.getDescription() + "]" + strValidCompleta + "'"; if (gerencialParameterDto.isReload()) { // strRetorno += " onblur='recarrega(this)'"; } if (reload) { String value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value != null) { strRetorno += " value='" + value + "'"; } } strRetorno += "/>"; } // Campo String if (gerencialParameterDto.getType().equalsIgnoreCase("java.lang.String")) { if (gerencialParameterDto.getTypeHTML() == null || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("") || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("text")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } strRetorno += "<input type='text' size='" + gerencialParameterDto.getSize() + "' maxlength='" + gerencialParameterDto.getSize() + "' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "'"; if (!reload) { strRetorno += " value='" + gerencialParameterDto.getDefaultValue() + "' "; } strRetorno += " class='Description[" + gerencialParameterDto.getDescription() + "]" + strValidCompleta + "'"; if (gerencialParameterDto.isReload()) { // strRetorno += " onblur='recarrega(this)'"; } if (reload) { String value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); if (value != null) { strRetorno += " value='" + value + "'"; } } strRetorno += "/>"; } } // Campo StringBuilder if (gerencialParameterDto.getType().equalsIgnoreCase("java.lang.StringBuilder")) { if (gerencialParameterDto.getTypeHTML() == null || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("") || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("text") || gerencialParameterDto.getTypeHTML().equalsIgnoreCase("textarea")) { String strValidCompleta = ""; if (!strValid.trim().equalsIgnoreCase("")) { strValidCompleta = " Valid[" + strValid + "]"; } strRetorno += "<textarea rows='" + gerencialParameterDto.getSize() + "' cols='70' name='PARAM." + gerencialParameterDto.getName() + "' id='PARAM." + gerencialParameterDto.getName() + "'"; strRetorno += " class='Description[" + gerencialParameterDto.getDescription() + "]" + strValidCompleta + "'"; if (gerencialParameterDto.isReload()) { // strRetorno += " onblur='recarrega(this)'"; } String value = ""; if (reload) { value = (String) hashParametros.get("PARAM." + gerencialParameterDto.getName()); } else { value = gerencialParameterDto.getDefaultValue(); } strRetorno += ">"; if (!reload) { if (value == null) { value = ""; } strRetorno += value; } strRetorno += "</textarea>"; } } return strRetorno; } public List getSubTreeParameters(String parametros){ Document doc = null; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); if (parametros == null){ return null; } InputStream is = new ByteArrayInputStream(parametros.getBytes()); doc = builder.parse(is); } catch (Exception e) { e.printStackTrace(); return null; } if (doc == null) return null; Node noItem = doc.getChildNodes().item(0); if (noItem == null){ return null; } List colParameters = new ArrayList(); GerencialParameterDTO gerencialParameter; if (noItem.getChildNodes() != null){ for (int i = 0; i < noItem.getChildNodes().getLength(); i++){ Node noSubItem = noItem.getChildNodes().item(i); if(noSubItem.getNodeName().equals("#text")) continue; if(noSubItem.getNodeName().equals("#comment")) continue; if (noSubItem.getNodeName().equalsIgnoreCase("PARAM")){ gerencialParameter = new GerencialParameterDTO(); NamedNodeMap map = noSubItem.getAttributes(); gerencialParameter.setType(map.getNamedItem("type").getNodeValue()); if (map.getNamedItem("typeHTML") != null){ gerencialParameter.setTypeHTML(map.getNamedItem("typeHTML").getNodeValue()); } gerencialParameter.setValue(map.getNamedItem("value").getNodeValue()); gerencialParameter.setName(map.getNamedItem("name").getNodeValue()); gerencialParameter.setDescription(map.getNamedItem("description").getNodeValue()); String size = map.getNamedItem("size").getNodeValue(); if (size == null || size.trim().equalsIgnoreCase("")){ size = "0"; } gerencialParameter.setSize(new Integer(Integer.parseInt(size))); String defaultValue = null; if (map.getNamedItem("default") != null){ defaultValue = map.getNamedItem("default").getNodeValue(); } if (defaultValue == null){ defaultValue = ""; } if (defaultValue.equalsIgnoreCase("{TODAY}") || defaultValue.equalsIgnoreCase("{DATAATUAL}")){ defaultValue = UtilDatas.dateToSTR(UtilDatas.getDataAtual()); } if (defaultValue.equalsIgnoreCase("{MESATUAL}")){ defaultValue = "" + UtilDatas.getMonth(UtilDatas.getDataAtual()); } if (defaultValue.equalsIgnoreCase("{ANOATUAL}")){ defaultValue = "" + UtilDatas.getYear(UtilDatas.getDataAtual()); } gerencialParameter.setDefaultValue(defaultValue); gerencialParameter.setFix(Boolean.valueOf(map.getNamedItem("fix").getNodeValue()).booleanValue()); gerencialParameter.setMandatory(Boolean.valueOf(map.getNamedItem("mandatory").getNodeValue()).booleanValue()); if (map.getNamedItem("reload") != null){ if (map.getNamedItem("reload").getNodeValue() != null && !map.getNamedItem("reload").getNodeValue().equalsIgnoreCase("")){ gerencialParameter.setReload(Boolean.valueOf(map.getNamedItem("reload").getNodeValue()).booleanValue()); }else{ gerencialParameter.setReload(false); } }else{ gerencialParameter.setReload(false); } if ("select".equalsIgnoreCase(gerencialParameter.getTypeHTML()) || "checkbox".equalsIgnoreCase(gerencialParameter.getTypeHTML()) || "radio".equalsIgnoreCase(gerencialParameter.getTypeHTML())){ gerencialParameter.setColOptions(getSubTreeOptions(noSubItem)); } colParameters.add(gerencialParameter); } } } return colParameters; } public Collection getSubTreeOptions(Node noItem){ if (noItem == null) return null; Collection colRetorno = new ArrayList(); if (noItem.getChildNodes() != null){ for (int i = 0; i < noItem.getChildNodes().getLength(); i++){ Node noSubItem = noItem.getChildNodes().item(i); if(noSubItem.getNodeName().equals("#text")) continue; if(noSubItem.getNodeName().equals("#comment")) continue; if (noSubItem.getNodeName().equalsIgnoreCase("OPTION")){ NamedNodeMap map = noSubItem.getAttributes(); GerencialOptionDTO gerencialOptionDTO = new GerencialOptionDTO(); gerencialOptionDTO.setValue(map.getNamedItem("value").getNodeValue()); gerencialOptionDTO.setText(map.getNamedItem("text").getNodeValue()); colRetorno.add(gerencialOptionDTO); } if (noSubItem.getNodeName().equalsIgnoreCase("OPTIONS")){ NamedNodeMap map = noSubItem.getAttributes(); GerencialOptionsDTO gerencialOptionsDTO = new GerencialOptionsDTO(); String onLoad = UtilStrings.nullToVazio(map.getNamedItem("onload").getNodeValue()); if (onLoad.equalsIgnoreCase("true")){ gerencialOptionsDTO.setOnload(true); }else{ gerencialOptionsDTO.setOnload(false); } gerencialOptionsDTO.setType(UtilStrings.nullToVazio(map.getNamedItem("type").getNodeValue())); if (gerencialOptionsDTO.getType().equalsIgnoreCase("CLASS_GENERATE_SQL") || gerencialOptionsDTO.getType().equalsIgnoreCase("SERVICE")){ gerencialOptionsDTO.setClassExecute(UtilStrings.nullToVazio(noSubItem.getChildNodes().item(0).getNodeValue()).trim()); }else{ gerencialOptionsDTO.setType("SQL"); gerencialOptionsDTO.setSql(noSubItem.getChildNodes().item(0).getNodeValue()); } colRetorno.add(gerencialOptionsDTO); } } } return colRetorno; } public HashMap getParametrosInformados(HttpServletRequest request) { Enumeration x = request.getParameterNames(); HashMap hashRetorno = new HashMap(); String[] aux; while (x.hasMoreElements()) { String nameElement = (String) x.nextElement(); // System.out.println("Parametro vindo no request: " + nameElement + " ---> Valor: " + request.getParameter(nameElement)); if (nameElement.startsWith("PARAM.")) { String[] strValores = request.getParameterValues(nameElement); if (strValores.length == 0 || strValores.length == 1) { String value = request.getParameter(nameElement); hashRetorno.put(nameElement, value); } else { aux = new String[strValores.length]; for (int i = 0; i < strValores.length; i++) { aux[i] = strValores[i]; } hashRetorno.put(nameElement, aux); } } } Usuario user = WebUtilGerencial.getUsuario(request); hashRetorno.put("USER", user); return hashRetorno; } }