package br.com.centralit.citcorpore.metainfo.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.sql.Date; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspWriter; import br.com.centralit.citajax.reflexao.CitAjaxReflexao; import br.com.centralit.citcorpore.bean.MatrizVisaoDTO; import br.com.centralit.citcorpore.bean.ValorRecuperadoMatrizDTO; import br.com.centralit.citcorpore.integracao.MatrizVisaoDao; import br.com.centralit.citcorpore.metainfo.bean.CamposObjetoNegocioDTO; import br.com.centralit.citcorpore.metainfo.bean.GrupoVisaoCamposNegocioDTO; import br.com.centralit.citcorpore.metainfo.bean.GrupoVisaoCamposNegocioLigacaoDTO; import br.com.centralit.citcorpore.metainfo.bean.GrupoVisaoDTO; import br.com.centralit.citcorpore.metainfo.bean.LookupDTO; import br.com.centralit.citcorpore.metainfo.bean.ObjetoNegocioDTO; import br.com.centralit.citcorpore.metainfo.bean.ReturnLookupDTO; import br.com.centralit.citcorpore.metainfo.bean.ValorVisaoCamposNegocioDTO; import br.com.centralit.citcorpore.metainfo.bean.VisaoDTO; import br.com.centralit.citcorpore.metainfo.bean.VisaoRelacionadaDTO; import br.com.centralit.citcorpore.metainfo.integracao.CamposObjetoNegocioDao; import br.com.centralit.citcorpore.metainfo.negocio.CamposObjetoNegocioService; import br.com.centralit.citcorpore.metainfo.negocio.DinamicViewsServiceEjb; import br.com.centralit.citcorpore.metainfo.negocio.GrupoVisaoCamposNegocioLigacaoService; import br.com.centralit.citcorpore.metainfo.negocio.LookupService; import br.com.centralit.citcorpore.metainfo.negocio.ObjetoNegocioService; import br.com.centralit.citcorpore.negocio.MatrizVisaoService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.Reflexao; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; import br.com.citframework.util.UtilTratamentoArquivos; @SuppressWarnings({"rawtypes", "unchecked"}) public class MetaUtil { public static String TEXT = "TEXT"; public static String TEXTAREA = "TEXTAREA"; public static String RADIO = "RADIO"; public static String SELECT = "SELECT"; public static String DATE = "DATE"; public static String HIDDEN = "HIDDEN"; public static String RELATION = "RELATION"; public static String DECIMAL = "DECIMAL"; public static String NUMBER = "NUMBER"; public static String HTML = "HTML"; public static String CLASS_AND_METHOD = "CLASS"; public static String renderViewEdit(final VisaoDTO visaoDto, final JspWriter out, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { String strArrayNamesColumns = ""; if (visaoDto.getColGrupos() != null) { for (final Iterator it = visaoDto.getColGrupos().iterator(); it.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { out.println("<table>"); for (final Iterator it2 = grupoVisaoDTO.getColCamposVisao().iterator(); it2.hasNext();) { final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it2.next(); if (grupoVisaoCamposNegocioDTO.getVisivel() == null) { grupoVisaoCamposNegocioDTO.setVisivel("S"); } if (!grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(MetaUtil.HIDDEN) && !grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(MetaUtil.HTML) && grupoVisaoCamposNegocioDTO.getVisivel().equalsIgnoreCase("S")) { out.println("<tr>"); out.print("<td style='vertical-align: middle;'>"); out.print(" " + UtilI18N.internacionalizaString(grupoVisaoCamposNegocioDTO.getDescricaoNegocio(), request)); if (grupoVisaoCamposNegocioDTO.getObrigatorio() != null && grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { out.print("<span style='color:red'>*</span>"); } out.println("</td>"); out.println("<td>"); try { final String strAux = MetaUtil.geraCampoHTML(grupoVisaoCamposNegocioDTO, request); out.println(" " + UtilI18N.internacionalizaString(strAux, request)); } catch (final Exception e) { e.printStackTrace(); } out.println("</td>"); out.println("</tr>"); if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(DATE)) { out.println("<script type=\"text/javascript\">"); out.println("$(function(){"); out.println("$( \"#" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "\" ).datepicker();"); out.println("});"); out.println("</script>"); } if (!strArrayNamesColumns.equalsIgnoreCase("")) { strArrayNamesColumns += ","; } if (grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto() != null) { strArrayNamesColumns += "\"" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "\""; } } else { if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(MetaUtil.HIDDEN)) { final String campoHTML = MetaUtil.geraCampoHTML(grupoVisaoCamposNegocioDTO, request); out.println(UtilI18N.internacionalizaString(campoHTML, request)); if (!strArrayNamesColumns.equalsIgnoreCase("")) { strArrayNamesColumns += ","; } strArrayNamesColumns += "\"" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "\""; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(MetaUtil.HTML)) { final String htmlCode = grupoVisaoCamposNegocioDTO.getHtmlCode(); final String htmlCodeFinal = interpretaHTMLCode(htmlCode, out, request, response); out.println(htmlCodeFinal); } } } out.println("</table>"); } } } return "Array(" + strArrayNamesColumns + ")"; // Array em Javascript } public static String renderViewMatriz(final VisaoDTO visaoDto, final JspWriter out, final HttpServletRequest request, final HttpServletResponse response, final boolean vinculado) throws ServiceException, Exception { final MatrizVisaoService matrizVisaoService = (MatrizVisaoService) ServiceLocator.getInstance().getService(MatrizVisaoService.class, null); final ObjetoNegocioService objetoNegocioService = (ObjetoNegocioService) ServiceLocator.getInstance().getService(ObjetoNegocioService.class, null); final Collection colMatriz = matrizVisaoService.findByIdVisao(visaoDto.getIdVisao()); final String url = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tableSearchVinc/tableSearchVinc.load?idVisao=" + visaoDto.getIdVisao() + "&load=true&matriz=true"; if (colMatriz != null && colMatriz.size() > 0) { final DinamicViewsServiceEjb dinamicViewEjb = new DinamicViewsServiceEjb(); final Collection colCamposPKPrincipal = new ArrayList(); final Collection colCamposTodosPrincipal = new ArrayList(); dinamicViewEjb.setInfoSave(visaoDto.getIdVisao(), colCamposPKPrincipal, colCamposTodosPrincipal); final String tablePrincipal = dinamicViewEjb.generateFrom(colCamposTodosPrincipal); final MatrizVisaoDTO matrizVisaoDTO = (MatrizVisaoDTO) colMatriz.iterator().next(); ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO(); objetoNegocioDTO.setIdObjetoNegocio(matrizVisaoDTO.getIdObjetoNegocio()); objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioService.restore(objetoNegocioDTO); final MatrizVisaoDao matrizVisaoDao = new MatrizVisaoDao(); final ValorRecuperadoMatrizDTO valorRecuperadoMatrizDTO = matrizVisaoDao.recuperaDadosMatriz(matrizVisaoDTO); out.println("<table id='" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "' class='easyui-datagrid' data-options=\"fitColumns:true,singleSelect:true,url:'" + url + "'\">"); if (valorRecuperadoMatrizDTO.getColDados() != null) { out.println("<thead><tr>"); for (final Iterator it = valorRecuperadoMatrizDTO.getColDados().iterator(); it.hasNext();) { final Object[] obj = (Object[]) it.next(); for (int i = 0; i < obj.length; i++) { String valorApres = ""; if (i == 0) { valorApres = matrizVisaoDTO.getDescricaoCampo1(); } if (i == 1) { valorApres = matrizVisaoDTO.getDescricaoCampo2(); } if (i == 2) { valorApres = matrizVisaoDTO.getDescricaoCampo3(); } out.print("<th data-options=\"field:'fld_" + i + "'\">" + UtilI18N.internacionalizaString(valorApres, request) + "</th>"); } if (visaoDto.getColGrupos() != null) { for (final Iterator it2 = visaoDto.getColGrupos().iterator(); it2.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it2.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { for (final Iterator it3 = grupoVisaoDTO.getColCamposVisao().iterator(); it3.hasNext();) { final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it3.next(); if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(HIDDEN)) { continue; } if (grupoVisaoCamposNegocioDTO.getVisivel() == null) { grupoVisaoCamposNegocioDTO.setVisivel("S"); } String tam = "0"; if (grupoVisaoCamposNegocioDTO.getTamanho() == null || grupoVisaoCamposNegocioDTO.getTamanho().intValue() == 0) { tam = "1"; } else { Integer tamAux = 0; try { tamAux = new Integer(grupoVisaoCamposNegocioDTO.getTamanho()); } catch (final Exception e) {} tam = "" + tamAux * 1; } int tamAux = Integer.parseInt(tam); if (tamAux < 40) { tamAux = 40; } tam = "" + tamAux * 1.5; String options = MetaUtil.geraCampoGRID(grupoVisaoCamposNegocioDTO, request); options = UtilStrings.nullToVazio(options); if (!options.trim().equalsIgnoreCase("")) { options = "," + options; } final String str = "<th data-options=\"field:'" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "',width:" + tam + "" + options + "\">" + UtilI18N.internacionalizaString(grupoVisaoCamposNegocioDTO.getDescricaoNegocio(), request) + "</th>"; out.print(str); } } } } break; } out.println("</tr></thead>"); if (!vinculado) { out.println("<tbody>"); for (final Iterator it = valorRecuperadoMatrizDTO.getColDados().iterator(); it.hasNext();) { final Object[] obj = (Object[]) it.next(); out.println("<tr>"); for (final Object element : obj) { out.print("<td>"); out.print(element.toString()); out.print("</td>"); } if (visaoDto.getColGrupos() != null) { for (final Iterator it2 = visaoDto.getColGrupos().iterator(); it2.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it2.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { for (final Iterator it3 = grupoVisaoDTO.getColCamposVisao().iterator(); it3.hasNext();) { final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it3.next(); if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(HIDDEN)) { continue; } String valorApres = ""; if (valorRecuperadoMatrizDTO.getCamposObjetoNegocioApres1DTO() != null) { if (grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() .equalsIgnoreCase(valorRecuperadoMatrizDTO.getCamposObjetoNegocioApres1DTO().getNomeDB())) { valorApres = obj[1].toString(); } } if (valorRecuperadoMatrizDTO.getCamposObjetoNegocioApres2DTO() != null) { if (grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() .equalsIgnoreCase(valorRecuperadoMatrizDTO.getCamposObjetoNegocioApres2DTO().getNomeDB())) { valorApres = obj[2].toString(); } } if (valorApres.trim().equalsIgnoreCase("")) { // Se ainda estiver vazio, eh que ainda nao conseguiu pegar o valor atual valorApres = recuperaValorAtualCampo(colCamposPKPrincipal, grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto(), tablePrincipal, obj, matrizVisaoDTO, null, request); } out.print("<td>"); out.print(valorApres); out.print("</td>"); } } } } out.println("</tr>"); } out.println("</tbody>"); } } out.println("</table>"); } out.println("<script>"); String str = UtilTratamentoArquivos.getStringTextFromFileTxt(CITCorporeUtil.CAMINHO_REAL_APP + "/WEB-INF/classes/modelo_dataGrid_MATRIZ.properties"); str = UtilI18N.internacionalizaString(str, request); if (!vinculado) { str = str.replaceAll("\\#URL\\#", ""); } else { str = str.replaceAll("\\#URL\\#", "url:'" + url + "',"); } str = str.replaceAll("#tt", "#" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao()); out.println(str); out.println("</script>"); return ""; } public static String recuperaValorAtualCampo(final Collection colCamposPKPrincipal, final CamposObjetoNegocioDTO camposObjetoNegocioDTO, final String tablePrincipal, final Object[] objValues, final MatrizVisaoDTO matrizVisaoDTO, final Map map, final HttpServletRequest request) throws Exception { final StringBuilder sql = new StringBuilder(); sql.append("SELECT "); sql.append(camposObjetoNegocioDTO.getNomeDB()); sql.append(" FROM "); sql.append(tablePrincipal); CamposObjetoNegocioDTO camposObjetoNegocioChaveMatriz = new CamposObjetoNegocioDTO(); final List lstParms = new ArrayList(); final CamposObjetoNegocioDao camposObjetoNegocioDao = new CamposObjetoNegocioDao(); camposObjetoNegocioChaveMatriz.setIdCamposObjetoNegocio(matrizVisaoDTO.getIdCamposObjetoNegocio1()); camposObjetoNegocioChaveMatriz.setIdObjetoNegocio(matrizVisaoDTO.getIdObjetoNegocio()); camposObjetoNegocioChaveMatriz = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioChaveMatriz); CamposObjetoNegocioDTO camposObjetoNegocioAux = null; if (colCamposPKPrincipal != null) { camposObjetoNegocioAux = (CamposObjetoNegocioDTO) colCamposPKPrincipal.iterator().next(); } sql.append(" WHERE 1 = 1 "); if (camposObjetoNegocioChaveMatriz != null) { sql.append(" AND "); sql.append(camposObjetoNegocioChaveMatriz.getNomeDB()); sql.append(" = ? "); lstParms.add(objValues[0]); } if (map != null) { if (colCamposPKPrincipal != null && colCamposPKPrincipal.size() > 0) { for (final Iterator itVinc = colCamposPKPrincipal.iterator(); itVinc.hasNext();) { camposObjetoNegocioAux = (CamposObjetoNegocioDTO) itVinc.next(); if (!camposObjetoNegocioAux.getNomeDB().trim().equalsIgnoreCase(camposObjetoNegocioChaveMatriz.getNomeDB().trim())) { sql.append(" AND "); sql.append(camposObjetoNegocioAux.getNomeDB()); sql.append(" = ? "); final Object val = map.get(camposObjetoNegocioAux.getNomeDB()); if (val != null && camposObjetoNegocioAux.getTipoDB() != null) { lstParms.add(MetaUtil.convertType(camposObjetoNegocioAux.getTipoDB(), val.toString(), null, request)); } else { lstParms.add(val); } } } } } final MatrizVisaoDao matrizVisaoDao = new MatrizVisaoDao(); return matrizVisaoDao.recuperaValor(sql.toString(), lstParms.toArray()); } public static String interpretaHTMLCode(String htmlCode, final JspWriter out, final HttpServletRequest request, final HttpServletResponse response) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException { htmlCode = htmlCode + "\n"; final String[] htmlCodeAux = htmlCode.split("\n"); String htmlCodeFinal = ""; for (final String element : htmlCodeAux) { String html = element; if (html == null) { html = ""; } html = html.trim(); if (html.startsWith("loadHTML=")) { final String fileHtml = html.substring(9); final InputStream in = MetaUtil.class.getResourceAsStream(fileHtml); final String str = convertStreamToString(in); htmlCodeFinal = htmlCodeFinal + interpretaHTMLCode(str, out, request, response);; } else if (html.startsWith("executeClass=")) { String fileExecute = html.substring(13); if (fileExecute == null) { fileExecute = ""; } fileExecute = fileExecute.trim(); final Class classe = Class.forName(fileExecute); final Object objeto = classe.newInstance(); final Method mtd = CitAjaxReflexao.findMethod("execute", objeto); final Object parmReals[] = new Object[3]; parmReals[0] = out; parmReals[1] = request; parmReals[2] = response; Object retorno = mtd.invoke(objeto, parmReals); if (retorno == null) { retorno = new String(" "); } htmlCodeFinal = htmlCodeFinal + interpretaHTMLCode(retorno.toString(), out, request, response); } else { htmlCodeFinal = htmlCodeFinal + html; } } htmlCodeFinal = UtilI18N.internacionalizaString(htmlCodeFinal, request); return htmlCodeFinal; } public static String convertStreamToString(final InputStream is) throws IOException { /* * To convert the InputStream to String we use the Reader.read(char[] buffer) method. We iterate until the Reader return -1 which means there's no more data to read. We use * the StringWriter * class to produce the string. */ if (is != null) { final Writer writer = new StringWriter(); final char[] buffer = new char[1024]; try { final Reader reader = new BufferedReader(new InputStreamReader(is, "ISO-8859-1")); int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } } finally { is.close(); } return writer.toString(); } else { return ""; } } public static void renderViewTableSearch(final VisaoDTO visaoDto, final JspWriter out, final HttpServletRequest request) throws IOException { final String url = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tableSearch/tableSearch.load?idVisao=" + visaoDto.getIdVisao(); out.println("<form name='form_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + "' method='POST'>"); out.println("<table><tr><td>" + UtilI18N.internacionaliza(request, "dinamicview.pesquisa") + " </td><td><input name='termo_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + "' id='termo_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + "' type='text' size='30'/></td><td><button name='btn_REFRESH_VIEW' type='button' onclick='func_REFRESH_VIEW_" + visaoDto.getIdVisao() + "()'>" + UtilI18N.internacionaliza(request, "dinamicview.atualizar") + "</button></td></tr></table>"); out.println("<table id='dg_" + visaoDto.getIdVisao() + "' width='100%' cellpadding='0' cellspacing='0' class='easyui-datagrid' url='" + url + "' rownumbers='true' pagination='true' singleSelect='true'>"); out.println("<thead>"); if (visaoDto.getColGrupos() != null) { for (final Iterator it = visaoDto.getColGrupos().iterator(); it.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { for (final Iterator it2 = grupoVisaoDTO.getColCamposVisao().iterator(); it2.hasNext();) { Integer tam = 5; final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it2.next(); tam = grupoVisaoCamposNegocioDTO.getTamanho(); if (tam == null) { tam = 5; } tam = tam * 10; out.println(" <th field='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' width='" + tam + "'" + " sortable='true'>" + UtilI18N.internacionalizaString(grupoVisaoCamposNegocioDTO.getDescricaoNegocio(), request) + "</th>"); } } } } out.println("</thead>"); out.println("</table>"); out.println("<script>"); out.println("$(function(){"); out.println(" $('#dg_" + visaoDto.getIdVisao() + "').datagrid({"); out.println(" queryParams: {sSearch: document.form_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".termo_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".value},"); out.println(" onBeforeLoad:function(param){"); out.println(" param = {sSearch: document.form_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".termo_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".value};"); out.println(" },"); out.println(" onClickRow:function(rowIndex){"); out.println(" var obj = $('#dg_" + visaoDto.getIdVisao() + "').datagrid('getSelected');"); out.println(" try{ "); out.println(" TABLE_SEARCH_CLICK(" + visaoDto.getIdVisao() + ", '" + visaoDto.getAcaoVisaoFilhaPesqRelacionada() + "', obj, '" + url + "');"); out.println(" }catch(e){}"); out.println(" }"); out.println(" });"); out.println("});"); out.println("function func_REFRESH_VIEW_" + visaoDto.getIdVisao() + "(){"); out.println(" $('#dg_" + visaoDto.getIdVisao() + "').datagrid('load', {sSearch: document.form_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".termo_pesq_TABLESEARCH_" + visaoDto.getIdVisao() + ".value});"); out.println("}"); out.println("</script>"); out.println("</form>"); } public static String renderExternaClass(final VisaoDTO visaoDto, final JspWriter out) throws IOException { return Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/load/load.extern?className=" + visaoDto.getClasseName(); } public static void renderViewTableEditVinc_Easy(final VisaoDTO visaoDto, final JspWriter out, final VisaoRelacionadaDTO visaoRelacionadaDTO, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { final StringBuilder strBuff = new StringBuilder(); final String url = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tableSearchVinc/tableSearchVinc.load?idVisao=" + visaoDto.getIdVisao() + "&load=true&idVisaoRelacionada=" + visaoRelacionadaDTO.getIdVisaoRelacionada(); strBuff.append("<table id=\"" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "\" style=\"width:auto;height:auto\" data-options=\"iconCls:'icon-edit',singleSelect:true,url:'" + url + "'\" title=\"" + UtilI18N.internacionalizaString("$dinamicview.editar - " + visaoRelacionadaDTO.getTitulo(), request) + "\">"); strBuff.append("<thead>"); strBuff.append("<tr>"); String str = "<th data-options=\"field:'removed',width:60\">" + UtilI18N.internacionaliza(request, "citcorpore.comum.deletar") + "?</th>"; strBuff.append(str); String strAreasIniciais = ""; if (visaoDto.getColGrupos() != null) { for (final Iterator it = visaoDto.getColGrupos().iterator(); it.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { for (final Iterator it2 = grupoVisaoDTO.getColCamposVisao().iterator(); it2.hasNext();) { final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it2.next(); String tam = "0"; if (grupoVisaoCamposNegocioDTO.getTamanho() == null || grupoVisaoCamposNegocioDTO.getTamanho().intValue() == 0) { tam = "1"; } else { Integer tamAux = 0; try { tamAux = new Integer(grupoVisaoCamposNegocioDTO.getTamanho()); } catch (final Exception e) {} tam = "" + tamAux * 1; } int tamAux = Integer.parseInt(tam); if (tamAux < 50) { tamAux = 50; } tam = "" + tamAux * 2; if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(SELECT) || grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RADIO)) { boolean prim = true; strAreasIniciais += "var array_" + grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio() + " = ["; for (final Iterator itAux1 = grupoVisaoCamposNegocioDTO.getColValores().iterator(); itAux1.hasNext();) { final ValorVisaoCamposNegocioDTO valorVisaoCamposNegocioDTO = (ValorVisaoCamposNegocioDTO) itAux1.next(); if (!prim) { strAreasIniciais += ","; } String label = valorVisaoCamposNegocioDTO.getDescricao(); label = UtilStrings.nullToVazio(label).replaceAll("'", ""); strAreasIniciais += "{id:'" + valorVisaoCamposNegocioDTO.getValor() + "',desc:'" + label + "'}"; prim = false; } strAreasIniciais = strAreasIniciais + "];"; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RELATION)) { if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } if (grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_NONE)) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } final LookupService lookupService = (LookupService) ServiceLocator.getInstance().getService(LookupService.class, null); final LookupDTO lookupDto = new LookupDTO(); lookupDto.setTermoPesquisa(""); lookupDto.setIdGrupoVisao(grupoVisaoCamposNegocioDTO.getIdGrupoVisao()); lookupDto.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio()); strAreasIniciais += "var array_" + grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio() + " = ["; final Collection col = lookupService.findSimple(lookupDto); if (col != null) { boolean prim = true; for (final Iterator itX = col.iterator(); itX.hasNext();) { final ReturnLookupDTO returnLookupDTO = (ReturnLookupDTO) itX.next(); if (!prim) { strAreasIniciais += ","; } String label = returnLookupDTO.getLabel(); label = UtilStrings.nullToVazio(label).replaceAll("'", ""); strAreasIniciais += "{id:'" + label + "[" + returnLookupDTO.getValue() + "]',desc:'" + label + "'}"; prim = false; } } strAreasIniciais = strAreasIniciais + "];"; } String options = MetaUtil.geraCampoGRID(grupoVisaoCamposNegocioDTO, request); options = UtilStrings.nullToVazio(options); if (!options.trim().equalsIgnoreCase("")) { options = "," + options; } if (grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto() != null) { if (grupoVisaoCamposNegocioDTO.getTipoNegocio() != null && !grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(HIDDEN)) { str = "<th data-options=\"field:'" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "',width:" + tam + "" + options + "\">" + UtilI18N.internacionalizaString(grupoVisaoCamposNegocioDTO.getDescricaoNegocio(), request) + "</th>"; strBuff.append(str); } } } } } } strBuff.append("</tr>"); strBuff.append("</thead>"); strBuff.append("</table>"); out.println("<script>"); out.println(UtilI18N.internacionalizaString(strAreasIniciais, request)); out.println("\n\n"); out.println("</script>"); out.println(UtilI18N.internacionalizaString(strBuff.toString(), request)); out.println("<script>"); str = UtilTratamentoArquivos.getStringTextFromFileTxt(CITCorporeUtil.CAMINHO_REAL_APP + "/WEB-INF/classes/modelo_dataGrid_DYNAMICVIEW.properties"); str = UtilI18N.internacionalizaString(str, request); str = str.replaceAll("#tt", "#" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao()); out.println(str); out.println("</script>"); } public static void renderViewTableEditVinc(final VisaoDTO visaoDto, final JspWriter out, final VisaoRelacionadaDTO visaoRelacionadaDTO, final HttpServletRequest request, final HttpServletResponse response) throws ServiceException, Exception { out.println("<form name='formTableVinc" + visaoDto.getIdVisao() + "' id='formTableVinc" + visaoDto.getIdVisao() + "' action='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/pages/dinamicViews/dinamicViews'>"); out.println("<img src='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/imagens/plus.png' border='0' style='cursor:pointer' onclick='ADICIONA_TABLE_SEARCH_" + visaoDto.getIdVisao() + "()'/>"); out.println("<table width='100%' style='width:100%' cellpadding='0' cellspacing='0' border='0' class='display' id='" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "'>"); out.println("<thead>"); out.println(" <tr>"); out.println(" <th width='0%'>codes</th>"); out.println(" <th width='1%'> </th>"); String tams = "null, null"; if (visaoDto.getColGrupos() != null) { for (final Iterator it = visaoDto.getColGrupos().iterator(); it.hasNext();) { final GrupoVisaoDTO grupoVisaoDTO = (GrupoVisaoDTO) it.next(); if (grupoVisaoDTO.getColCamposVisao() != null) { for (final Iterator it2 = grupoVisaoDTO.getColCamposVisao().iterator(); it2.hasNext();) { final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO = (GrupoVisaoCamposNegocioDTO) it2.next(); String tam = "0"; if (grupoVisaoCamposNegocioDTO.getTamanho() == null || grupoVisaoCamposNegocioDTO.getTamanho().intValue() == 0) { tam = "1"; } else { Integer tamAux = 0; try { tamAux = new Integer(grupoVisaoCamposNegocioDTO.getTamanho()); } catch (final Exception e) {} tam = "" + tamAux * 1; } out.println(" <th width='" + tam + "%'>" + grupoVisaoCamposNegocioDTO.getDescricaoNegocio() + "</th>"); if (!tams.equalsIgnoreCase("")) { tams += ","; } tams += "{'sWidth': '" + tam + "%'}"; } } } } out.println(" </tr>"); out.println("</thead>"); out.println("<tbody>"); out.println("</tbody>"); out.println("</table>"); out.println("</form>"); if (visaoDto.getAcaoVisaoFilhaPesqRelacionada() == null) { visaoDto.setAcaoVisaoFilhaPesqRelacionada(""); } final String url = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tableSearchVinc/tableSearchVinc.load?idVisao=" + visaoDto.getIdVisao() + "&load=true&idVisaoRelacionada=" + visaoRelacionadaDTO.getIdVisaoRelacionada(); out.println("<script>"); out.println("function createTableVinc_" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "(urlParm, compl) {"); out.println(" var url = urlParm;"); out.println(" if (url == undefined){"); out.println(" url = '" + url + "';"); out.println(" }"); out.println(" url = url + compl;"); out.println(" $('#" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "').dataTable( {"); out.println(" 'bProcessing': false,"); out.println(" 'bPaginate': false,"); out.println(" 'bDestroy': true,"); out.println(" 'bDeferRender': true,"); out.println(" 'sSearch': 'Busca:',"); out.println(" 'sEmptyTable': 'N�o h� dados para apresentar',"); out.println(" 'sLoadingRecords': 'Carregando...',"); out.println(" 'sServerMethod': 'POST', "); out.println(" 'aoColumns': [" + tams + "], "); out.println(" 'bFilter': false,"); out.println(" 'bInfo': false,"); out.println(" 'aaSorting': [[ 0, 'asc' ]],"); out.println(" 'sAjaxSource': url "); out.println(" } );"); out.println("}"); out.println("$(document).ready(function() {"); out.println(" createTableVinc_" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "('" + url + "', '');"); out.println(" $('#" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + " tbody tr').live('click', function() {" + "var nTds = $('td', this); " + "try{ " + "TABLE_EDIT_CLICK(" + visaoDto.getIdVisao() + ", '" + visaoDto.getAcaoVisaoFilhaPesqRelacionada() + "', nTds, this);" + "}catch(e){}" + "} );"); out.println(" $( '#TABLE_EDIT_" + visaoDto.getIdVisao() + "' ).dialog({"); out.println(" title: '" + visaoDto.getDescricao() + "',"); out.println(" width: 800,"); out.println(" height: 600,"); out.println(" modal: true,"); out.println(" autoOpen: false,"); out.println(" resizable: false,"); out.println(" show: 'fade',"); out.println(" hide: 'fade'"); out.println(" });\n"); out.println(" $('#" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "').dataTable().fnSetColumnVis( 0, false);"); out.println("} );"); out.println("</script>"); out.println("<div id='TABLE_EDIT_" + visaoDto.getIdVisao() + "' style='display:none'>"); out.println("<form name='formEdit" + visaoDto.getIdVisao() + "' id='formEdit" + visaoDto.getIdVisao() + "' action='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/pages/dinamicViews/dinamicViews'>"); out.println("<input type='hidden' name='idVisaoEdit' value='" + visaoDto.getIdVisao() + "' />"); out.println("<input type='hidden' name='jsonDataEdit' value='' />"); out.println("<input type='hidden' name='rowIndexSel' value='' />"); out.println("<input type='hidden' name='REMOVED' value='' />"); final String strArrayNamesColumns = MetaUtil.renderViewEdit(visaoDto, out, request, response); MetaUtil.generateButtonActionsTableEditVinc(visaoDto, out, strArrayNamesColumns); out.println("</form>"); out.println("</div>"); out.println("<script>"); out.println("function ADICIONA_TABLE_SEARCH_" + visaoDto.getIdVisao() + "(){\n"); out.println(" limparForm(document.formEdit" + visaoDto.getIdVisao() + ");"); out.println(" document.formEdit" + visaoDto.getIdVisao() + ".rowIndexSel.value = '';"); out.println(" trObj = null;"); out.println(" $( '#TABLE_EDIT_" + visaoDto.getIdVisao() + "' ).dialog( 'open' );"); out.println("}\n"); out.println("</script>"); } public static void generateButtonActionsTableEditVinc(final VisaoDTO visaoDto, final JspWriter out, final String strArrayNamesColumns) throws IOException { out.println("<table>"); out.println("<tr>"); out.println("<td>"); out.print("<button type='button' name='btnGravar_" + visaoDto.getIdVisao() + "' class='light' onclick='VINCULA_TABLE_EDIT(" + visaoDto.getIdVisao() + ", document.formEdit" + visaoDto.getIdVisao() + ", \"" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "\", " + strArrayNamesColumns + ");'>"); out.print("<img src='" + br.com.citframework.util.Constantes.getValue("CONTEXTO_APLICACAO") + "/template_new/images/icons/small/grey/pencil.png'>"); out.print("<span>Vincular dados</span></button>"); out.println("</td>"); out.println("<td>"); out.print("<button type='button' name='btnRemover_" + visaoDto.getIdVisao() + "' class='light' onclick='VINCULA_TABLE_EDIT_REMOVE(" + visaoDto.getIdVisao() + ", document.formEdit" + visaoDto.getIdVisao() + ", \"" + VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoDto.getIdVisao() + "\", " + strArrayNamesColumns + ");'>"); out.print("<img src='" + br.com.citframework.util.Constantes.getValue("CONTEXTO_APLICACAO") + "/template_new/images/icons/small/grey/trashcan.png'>"); out.print("<span>Remover</span></button>"); out.println("</td>"); out.println("<td>"); out.print("<button type='button' name='btnLimpar_" + visaoDto.getIdVisao() + "' class='light' onclick='limparForm(document.formEdit" + visaoDto.getIdVisao() + ");'>"); out.print("<img src='" + br.com.citframework.util.Constantes.getValue("CONTEXTO_APLICACAO") + "/template_new/images/icons/small/grey/clear.png'>"); out.print("<span>Limpar Dados</span></button>"); out.println("</td>"); out.println("<td>"); out.print("<button type='button' name='btnLimpar_" + visaoDto.getIdVisao() + "' class='light' onclick=\"$('#TABLE_EDIT_" + visaoDto.getIdVisao() + "' ).dialog( 'close' );\">"); out.print("<span>Fechar</span></button>"); out.println("</td>"); out.println("</tr>"); out.println("</table>"); } public static String geraCampoHTML(final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO, final HttpServletRequest request) throws ServiceException, Exception { String ret = ""; String valid = ""; String format = ""; String descricao = grupoVisaoCamposNegocioDTO.getDescricaoNegocio(); if (descricao != null) { descricao = descricao.replaceAll("\\[", ""); descricao = descricao.replaceAll("\\]", ""); } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(TEXT)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<input type='text' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " maxlength='" + grupoVisaoCamposNegocioDTO.getTamanho() + "' size='" + grupoVisaoCamposNegocioDTO.getTamanho() + "'" + " class='" + valid + " Description[" + descricao + "]' />"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(TEXTAREA)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<textarea name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " maxlength='410000' " + " rows='5' cols='" + grupoVisaoCamposNegocioDTO.getTamanho() + "'" + " class='" + valid + " Description[" + descricao + "]' style='border:1px solid black'></textarea>"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(DECIMAL)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } format = "Format[Money]"; if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<input type='text' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " maxlength='" + grupoVisaoCamposNegocioDTO.getTamanho() + "' size='" + grupoVisaoCamposNegocioDTO.getTamanho() + "'" + " class='" + valid + " " + format + " Description[" + descricao + "]' />"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(NUMBER)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } format = "Format[Numero]"; if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<input type='text' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " maxlength='" + grupoVisaoCamposNegocioDTO.getTamanho() + "' size='" + grupoVisaoCamposNegocioDTO.getTamanho() + "'" + " class='" + valid + " " + format + " Description[" + descricao + "]' />"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(HIDDEN)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<input type='hidden' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " class='" + valid + " Description[" + descricao + "]' value='' />"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(DATE)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Date,Required"; } else { valid += "Date"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } ret = "<input type='text' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " maxlength='10' size='10' " + "class='" + valid + " Description[" + descricao + "] Format[Date]' />"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RADIO)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } if (grupoVisaoCamposNegocioDTO.getColValores() != null) { for (final Iterator it = grupoVisaoCamposNegocioDTO.getColValores().iterator(); it.hasNext();) { final ValorVisaoCamposNegocioDTO valorVisaoCamposNegocioDTO = (ValorVisaoCamposNegocioDTO) it.next(); ret += "<input type='radio' name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " class='" + valid + " Description[" + descricao + "]' value='" + valorVisaoCamposNegocioDTO.getValor() + "' />" + valorVisaoCamposNegocioDTO.getDescricao() + " "; } } return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(CLASS_AND_METHOD)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } String compl = ""; if (grupoVisaoCamposNegocioDTO.getTamanho() != null && grupoVisaoCamposNegocioDTO.getTamanho().intValue() > 0) { compl += " style='width: " + grupoVisaoCamposNegocioDTO.getTamanho() + "px' "; } ret += "<select name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " class='" + valid + " Description[" + descricao + "]' " + compl + ">"; // Thiago Fernandes - 03/11/2013 - 14:10 - Sol. 121468 - Internacionaliza��o. ret += "<option value=''>" + UtilI18N.internacionaliza(request, "citcorpore.comum.selecione") + "</option>"; String formula = grupoVisaoCamposNegocioDTO.getFormula(); if (formula == null) { formula = ""; } final String[] formulaArray = formula.split(","); try { if (formulaArray != null && formulaArray.length >= 4) { final String nomeClasse = UtilStrings.nullToVazio(formulaArray[0]).trim(); final String nomeMetodo = UtilStrings.nullToVazio(formulaArray[1]).trim(); final String nomeAtributoID = UtilStrings.nullToVazio(formulaArray[2]).trim(); final String nomeAtributoDescr = UtilStrings.nullToVazio(formulaArray[3]).trim(); final Class classe = Class.forName(nomeClasse); final Object objToExecute = classe.newInstance(); final Method metodo = Reflexao.findMethod(nomeMetodo, objToExecute); final Collection colValores = (Collection) metodo.invoke(objToExecute); if (colValores != null) { for (final Iterator it = colValores.iterator(); it.hasNext();) { final Object objDto = it.next(); final Method metodoID = Reflexao.findMethod("get" + UtilStrings.convertePrimeiraLetra(nomeAtributoID, "U"), objDto); final Method metodoDescr = Reflexao.findMethod("get" + UtilStrings.convertePrimeiraLetra(nomeAtributoDescr, "U"), objDto); final Object objId = metodoID.invoke(objDto); final Object objDescr = metodoDescr.invoke(objDto); ret += "<option value='" + objId.toString() + "'>" + objDescr.toString() + "</option>"; } } } } catch (final Exception e) { e.printStackTrace(); } ret += "</select>"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(SELECT)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } String compl = ""; if (grupoVisaoCamposNegocioDTO.getTamanho() != null && grupoVisaoCamposNegocioDTO.getTamanho().intValue() > 0) { compl += " style='width: " + grupoVisaoCamposNegocioDTO.getTamanho() + "px' "; } if (grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto() != null) { ret += "<select name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " class='" + valid + " Description[" + descricao + "]' " + compl + ">"; } if (grupoVisaoCamposNegocioDTO.getColValores() != null) { for (final Iterator it = grupoVisaoCamposNegocioDTO.getColValores().iterator(); it.hasNext();) { final ValorVisaoCamposNegocioDTO valorVisaoCamposNegocioDTO = (ValorVisaoCamposNegocioDTO) it.next(); ret += "<option value='" + valorVisaoCamposNegocioDTO.getValor() + "'>" + valorVisaoCamposNegocioDTO.getDescricao() + "</option>"; } } ret += "</select>"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RELATION)) { String style = grupoVisaoCamposNegocioDTO.getTipoLigacao(); if (style == null || style.equalsIgnoreCase("") || style.equalsIgnoreCase("C") || style.equalsIgnoreCase("N")) { style = "COMBO"; } else if (style.equalsIgnoreCase("S") || style.equalsIgnoreCase("O")) { style = "LOOKUP"; } if (style.equalsIgnoreCase("COMBO")) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } if (grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_NONE)) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } final LookupService lookupService = (LookupService) ServiceLocator.getInstance().getService(LookupService.class, null); final LookupDTO lookupDto = new LookupDTO(); lookupDto.setTermoPesquisa(""); lookupDto.setIdGrupoVisao(grupoVisaoCamposNegocioDTO.getIdGrupoVisao()); lookupDto.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio()); ret += "<select name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "'" + " class='" + valid + " Description[" + descricao + "]' >"; // Thiago Fernandes - 03/11/2013 - 14:10 - Sol. 121468 - Internacionaliza��o. ret += "<option value=''>" + UtilI18N.internacionaliza(request, "citcorpore.comum.selecione") + "</option>"; final Collection col = lookupService.findSimple(lookupDto); if (col != null) { for (final Iterator it = col.iterator(); it.hasNext();) { final ReturnLookupDTO returnLookupDTO = (ReturnLookupDTO) it.next(); ret += "<option value='" + returnLookupDTO.getValue() + "'>" + returnLookupDTO.getLabel() + "</option>"; } } ret += "</select>"; return ret; } if (style.equalsIgnoreCase("LOOKUP")) { final String url = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/lookup/lookup.load"; if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } if (grupoVisaoCamposNegocioDTO.getTipoLigacao() == null) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } if (grupoVisaoCamposNegocioDTO.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioDTO.RELATION_NONE)) { grupoVisaoCamposNegocioDTO.setTipoLigacao(GrupoVisaoCamposNegocioDTO.RELATION_COMBO); } ret += "<input name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' class='" + valid + " Description[" + descricao + "]' style='width:400px'></input>"; ret += generateScriptLookup(grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB(), url, grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio(), grupoVisaoCamposNegocioDTO.getIdGrupoVisao(), grupoVisaoCamposNegocioDTO.getTamanhoParaPesq(), request); return ret; } } return ""; } public static String geraCampoGRID(final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO, final HttpServletRequest request) throws ServiceException, Exception { String ret = ""; String valid = ""; String descricao = grupoVisaoCamposNegocioDTO.getDescricaoNegocio(); if (descricao != null) { descricao = descricao.replaceAll("\\[", ""); descricao = descricao.replaceAll("\\]", ""); } /* * Rodrigo Pecci Acorse - 03/02/2013 10h15 - #132885 * Altera��o realizada para os campos do tipo TEXT e TEXTAREA. * O plugin n�o validava se o campo era obrigat�rio, agora quando o campo for setado como obrigat�rio ir� receber o tipo validatebox para que seja validado corretamente. */ String options = ""; if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(TEXT)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S") && grupoVisaoCamposNegocioDTO.getTamanho() != null && grupoVisaoCamposNegocioDTO.getTamanho() > 0) { options = "editor:{type:'validatebox',options:{required:true, maxlength:" + grupoVisaoCamposNegocioDTO.getTamanho() + "}}"; } else if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options = "editor:{type:'validatebox',options:{required:true}}"; } else { options = "editor:{type:'text'}"; } return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(TEXTAREA)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options = "editor:{type:'validatebox',options:{required:true}}"; } else { options = "editor:{type:'textarea'}"; } return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(DECIMAL)) { options = ",options:{"; if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options += "required:true,"; } options += "precision:2,decimalSeparator:',',groupSeparator:''}"; options = "editor:{type:'numberbox'" + options + "}"; return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(NUMBER)) { options = ",options:{"; if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options += "required:true,"; } options += "decimalSeparator:',',groupSeparator:''}"; options = "editor:{type:'numberbox'" + options + "}"; return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(HIDDEN)) { return ""; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(DATE)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options = ",options:{required:true}"; } options = "editor:{type:'datepicker'" + options + "}"; return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RADIO)) { options = "options:{"; options += "valueField:'id',"; options += "textField:'desc',"; options += "editable:false,"; options += "panelHeight:'auto',"; options += "data:array_" + grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio(); if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options += ",required:true"; } options += "}"; options = "editor:{type:'combobox'," + options + "}"; return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(CLASS_AND_METHOD)) { if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { valid += "Required"; } if (!valid.equalsIgnoreCase("")) { valid = "Valid[" + valid + "]"; } String compl = ""; if (grupoVisaoCamposNegocioDTO.getTamanho() != null && grupoVisaoCamposNegocioDTO.getTamanho().intValue() > 0) { compl += " style='width: " + grupoVisaoCamposNegocioDTO.getTamanho() + "px' "; } ret += "<select name='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " id='" + grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto().getNomeDB() + "' " + " class='" + valid + " Description[" + descricao + "]' " + compl + ">"; // Thiago Fernandes - 03/11/2013 - 14:10 - Sol. 121468 - Internacionaliza��o. ret += "<option value=''>" + UtilI18N.internacionaliza(request, "citcorpore.comum.selecione") + "</option>"; String formula = grupoVisaoCamposNegocioDTO.getFormula(); if (formula == null) { formula = ""; } final String[] formulaArray = formula.split(","); try { if (formulaArray != null && formulaArray.length >= 4) { final String nomeClasse = UtilStrings.nullToVazio(formulaArray[0]).trim(); final String nomeMetodo = UtilStrings.nullToVazio(formulaArray[1]).trim(); final String nomeAtributoID = UtilStrings.nullToVazio(formulaArray[2]).trim(); final String nomeAtributoDescr = UtilStrings.nullToVazio(formulaArray[3]).trim(); final Class classe = Class.forName(nomeClasse); final Object objToExecute = classe.newInstance(); final Method metodo = Reflexao.findMethod(nomeMetodo, objToExecute); final Collection colValores = (Collection) metodo.invoke(objToExecute); if (colValores != null) { for (final Iterator it = colValores.iterator(); it.hasNext();) { final Object objDto = it.next(); final Method metodoID = Reflexao.findMethod("get" + UtilStrings.convertePrimeiraLetra(nomeAtributoID, "U"), objDto); final Method metodoDescr = Reflexao.findMethod("get" + UtilStrings.convertePrimeiraLetra(nomeAtributoDescr, "U"), objDto); final Object objId = metodoID.invoke(objDto); final Object objDescr = metodoDescr.invoke(objDto); ret += "<option value='" + objId.toString() + "'>" + objDescr.toString() + "</option>"; } } } } catch (final Exception e) { e.printStackTrace(); } ret += "</select>"; return ret; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(SELECT)) { options = "options:{"; options += "valueField:'id',"; options += "textField:'desc',"; options += "editable:false,"; options += "panelHeight:'auto',"; options += "data:array_" + grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio() + ""; if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options += ",required:true"; } options += "}"; options = "editor:{type:'combobox'," + options + "}"; return options; } if (grupoVisaoCamposNegocioDTO.getTipoNegocio().equalsIgnoreCase(RELATION)) { options = "options:{"; options += "valueField:'id',"; options += "textField:'desc',"; options += "editable:false,"; options += "panelHeight:'auto',"; options += "data:array_" + grupoVisaoCamposNegocioDTO.getIdCamposObjetoNegocio() + ""; if (grupoVisaoCamposNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) { options += ",required:true"; } options += "}"; options = "editor:{type:'combobox'," + options + "}"; return options; } return ""; } private static String generateScriptLookup(final String name, final String url, final Integer idCamposObjetoNegocio, final Integer idGrupoVisao, final Integer tamMaxParaPesq, final HttpServletRequest request) throws ServiceException, Exception { String ret = ""; new HashMap(); final String urlAux = url + "?lookupName=" + name + "&idCamposObjetoNegocio=" + idCamposObjetoNegocio + "&idGrupoVisao=" + idGrupoVisao + ""; final GrupoVisaoCamposNegocioLigacaoService grupoVisaoCamposNegocioLigacaoService = (GrupoVisaoCamposNegocioLigacaoService) ServiceLocator.getInstance().getService( GrupoVisaoCamposNegocioLigacaoService.class, null); final CamposObjetoNegocioService camposObjetoNegocioService = (CamposObjetoNegocioService) ServiceLocator.getInstance().getService(CamposObjetoNegocioService.class, null); ServiceLocator.getInstance().getService(ObjetoNegocioService.class, null); CamposObjetoNegocioDTO camposObjetoNegocioDTO = null; final Collection colPresentation = new ArrayList(); final Collection colValue = new ArrayList(); final Collection colItens = grupoVisaoCamposNegocioLigacaoService.findByIdGrupoVisaoAndIdCamposObjetoNegocio(idGrupoVisao, idCamposObjetoNegocio); if (colItens != null) { for (final Iterator it = colItens.iterator(); it.hasNext();) { final GrupoVisaoCamposNegocioLigacaoDTO grupoVisaoCamposNegocioLigacaoAux = (GrupoVisaoCamposNegocioLigacaoDTO) it.next(); if (grupoVisaoCamposNegocioLigacaoAux != null && grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.PRESENTATION)) { camposObjetoNegocioDTO = new CamposObjetoNegocioDTO(); camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao()); try { camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioService.restore(camposObjetoNegocioDTO); } catch (final Exception e) { e.printStackTrace(); camposObjetoNegocioDTO = null; } if (camposObjetoNegocioDTO != null) { camposObjetoNegocioDTO.setDescricao(grupoVisaoCamposNegocioLigacaoAux.getDescricao()); colPresentation.add(camposObjetoNegocioDTO); } } if (grupoVisaoCamposNegocioLigacaoAux != null && grupoVisaoCamposNegocioLigacaoAux.getTipoLigacao().equalsIgnoreCase(GrupoVisaoCamposNegocioLigacaoDTO.VALUE)) { if (grupoVisaoCamposNegocioLigacaoAux != null) { camposObjetoNegocioDTO = new CamposObjetoNegocioDTO(); camposObjetoNegocioDTO.setIdCamposObjetoNegocio(grupoVisaoCamposNegocioLigacaoAux.getIdCamposObjetoNegocioLigacao()); try { camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) camposObjetoNegocioService.restore(camposObjetoNegocioDTO); } catch (final Exception e) { e.printStackTrace(); camposObjetoNegocioDTO = null; } if (camposObjetoNegocioDTO != null) { camposObjetoNegocioDTO.setDescricao(UtilI18N.internacionaliza(request, "centroResultado.codigo")); colValue.add(camposObjetoNegocioDTO); } } } } } String columns = ""; String primeiroCampoId = ""; String primeiroCampoDesc = ""; if (colValue != null) { for (final Iterator it = colValue.iterator(); it.hasNext();) { camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) it.next(); if (!columns.trim().equalsIgnoreCase("")) { columns += ","; } columns += "{field:'" + camposObjetoNegocioDTO.getNomeDB() + "',title:'" + camposObjetoNegocioDTO.getDescricao() + "',width:50}"; if (primeiroCampoId.equalsIgnoreCase("")) { primeiroCampoId = camposObjetoNegocioDTO.getNomeDB(); } } } if (colPresentation != null) { for (final Iterator it = colPresentation.iterator(); it.hasNext();) { camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) it.next(); if (!columns.trim().equalsIgnoreCase("")) { columns += ","; } columns += "{field:'" + camposObjetoNegocioDTO.getNomeDB() + "',title:'" + camposObjetoNegocioDTO.getDescricao() + "',width:200}"; if (primeiroCampoDesc.equalsIgnoreCase("")) { primeiroCampoDesc = camposObjetoNegocioDTO.getNomeDB(); } } } ret += "<script>"; ret += "$('#" + name + "').combogrid({"; ret += " panelWidth:600,"; ret += " url: '" + urlAux + "',"; ret += " onSelect: function(rec){"; ret += " var r = $('#" + name + "').combogrid('grid').datagrid('getSelected');"; ret += " document.getElementById('" + primeiroCampoId + "').value = r." + primeiroCampoId + ";"; ret += " },"; ret += " idField:'" + primeiroCampoId + "',"; ret += " textField:'" + primeiroCampoDesc + "',"; ret += " mode:'remote',"; ret += " fitColumns:true,"; ret += " columns:[["; ret += " " + columns; ret += " ]]"; ret += "});\n"; ret += "function " + name + "_limparField(){"; ret += "$('#" + name + "').combogrid('clear');"; ret += "}\n"; ret += "</script>"; return ret; } public static boolean isDateType(final String typeDB) { if (typeDB == null) { return false; } String typeDBAux = typeDB; typeDBAux = typeDBAux.toUpperCase(); if (typeDBAux.startsWith("DATE")) { return true; } return false; } public static boolean isStringType(final String typeDB) { if (typeDB == null) { return false; } String typeDBAux = typeDB; typeDBAux = typeDBAux.toUpperCase(); if (typeDBAux.startsWith("VARCHAR") || typeDBAux.startsWith("CHAR") || typeDBAux.startsWith("TEXT") || typeDBAux.startsWith("BPCHAR") || typeDBAux.startsWith("CLOB") || typeDBAux.startsWith("STRING")) { return true; } return false; } public static boolean isNumericType(final String typeDB) { if (typeDB == null) { return false; } String typeDBAux = typeDB; typeDBAux = typeDBAux.toUpperCase(); if (typeDBAux.startsWith("INT") || typeDBAux.startsWith("LONG") || typeDBAux.startsWith("MONEY") || typeDBAux.startsWith("DOUBLE") || typeDBAux.startsWith("DECIMAL") || typeDBAux.startsWith("NUMBER") || typeDBAux.startsWith("BIGINT") || typeDBAux.startsWith("INTEGER") || typeDBAux.startsWith("SMALLINT") || typeDBAux.startsWith("REAL") || typeDBAux.startsWith("NUMERIC")) { return true; } return false; } /** * Realiza as convers�es necess�rias dos tipos de dados. * * @param typeDBParm * @param value * @param precisionDBParm * @param request * @return Object * @author rodrigo.acorse */ public static Object convertType(final String typeDBParm, String value, Integer precisionDBParm, final HttpServletRequest request) { if (typeDBParm == null) { return null; } if (precisionDBParm == null) { precisionDBParm = 0; } value = value.trim(); String typeDB = typeDBParm; typeDB = typeDB.toUpperCase(); if (typeDB.startsWith("VARCHAR") || typeDB.startsWith("CHAR") || typeDB.startsWith("TEXT") || typeDB.startsWith("MEDIUMTEXT") || typeDB.startsWith("CLOB") || typeDB.startsWith("BPCHAR") || typeDB.startsWith("STRING") || typeDB.startsWith("LONGTEXT")) { return value; } if (typeDB.startsWith("INT") || typeDB.startsWith("BIGINT") || typeDB.startsWith("INTEGER") || typeDB.startsWith("SMALLINT") || value.indexOf("[") > -1 && typeDB.startsWith("NUMBER") && precisionDBParm == 0) { Integer val = null; try { String valueAux = new String(value); if (value != null) { final int indexAux = value.indexOf("["); // Trata algumas coisas da DinamicView if (indexAux > -1) { valueAux = valueAux.substring(indexAux); } } valueAux = UtilStrings.apenasNumeros(valueAux); if (!valueAux.equalsIgnoreCase("")) { val = new Integer(valueAux); } } catch (final Exception e) { System.out.println("Problemas ao converter o tipo de dados: Funcao convertType: " + typeDB + " --> " + value); e.printStackTrace(); val = null; } return val; } if (typeDB.startsWith("LONG") || typeDB.startsWith("BIGLONG")) { Long val = null; try { val = new Long(value); } catch (final Exception e) { e.printStackTrace(); val = null; } return val; } if (typeDB.startsWith("TIMESTAMP")) { Timestamp val = new Timestamp(System.currentTimeMillis()); try { // Monta o date format de acordo com o formato da data e o idioma. final SimpleDateFormat sdf = UtilDatas.getSimpleDateFormatByTipoDataAndLanguage(UtilDatas.getTipoDate(value, WebUtil.getLanguage(request)), WebUtil.getLanguage(request)); // Valida se a data � v�lida if (UtilDatas.isThisDateValid(value, sdf)) { // Se a data for v�lida, faz a convers�o utilizando o TipoDate correto val = UtilDatas.convertStringToTimestamp(UtilDatas.getTipoDate(value, WebUtil.getLanguage(request)), value, WebUtil.getLanguage(request)); } else { // Se a data n�o for v�lida, faz o casting para Timestamp val = Timestamp.valueOf(value); } } catch (final Exception e) { e.printStackTrace(); val = null; } return val; } if (typeDB.startsWith("DATE") || typeDB.startsWith("DATA")) { Date data = null; try { // Monta o date format de acordo com o formato da data e o idioma. final SimpleDateFormat sdf = UtilDatas.getSimpleDateFormatByTipoDataAndLanguage(UtilDatas.getTipoDate(value, WebUtil.getLanguage(request)), WebUtil.getLanguage(request)); // Valida se a data � v�lida if (UtilDatas.isThisDateValid(value, sdf)) { // Se a data for v�lida, faz a convers�o utilizando o TipoDate correto data = UtilDatas.convertStringToSQLDate(UtilDatas.getTipoDate(value, WebUtil.getLanguage(request)), value, WebUtil.getLanguage(request)); } } catch (final Exception e) { // e.printStackTrace(); } return data; } if (typeDB.startsWith("MONEY") || typeDB.startsWith("DOUBLE") || typeDB.startsWith("DECIMAL") || typeDB.startsWith("NUMERIC") || typeDB.startsWith("NUMBER") || typeDB.startsWith("REAL") || typeDB.startsWith("FLOAT")) { final int posicaoPonto = value.indexOf("."); if (posicaoPonto > -1 && posicaoPonto == value.length() - 3) { // deve ser -3 mesmo, inclui a posicao do ponto. // ESTA NO PADRAO AMERICANO. PONTO NO LUGAR DE VIRGULA. String aux = value; aux = aux.replaceAll("\\,", ""); Double duplo = null; try { duplo = new Double(Double.parseDouble(aux)); } catch (final Exception e) { // e.printStackTrace(); duplo = null; } return duplo; } else { String aux = value; aux = aux.replaceAll("\\.", ""); aux = aux.replaceAll("\\,", "\\."); Double duplo = null; try { duplo = new Double(Double.parseDouble(aux)); } catch (final Exception e) { // e.printStackTrace(); duplo = null; } return duplo; } } return null; } }