From 10485b5222b770ef0b404201ec36eb41330d26bc Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 5 Nov 2014 03:02:26 +0000 Subject: [PATCH] opção para integração entre gráficos --- ferramentas/graficointerativo1/dicionario.js | 681 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ferramentas/graficointerativo1/index.js | 357 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------- ferramentas/graficointerativo1/template_mst.html | 20 +++++++++++++++++++- 3 files changed, 713 insertions(+), 345 deletions(-) diff --git a/ferramentas/graficointerativo1/dicionario.js b/ferramentas/graficointerativo1/dicionario.js index 3bec6b5..fd4f273 100755 --- a/ferramentas/graficointerativo1/dicionario.js +++ b/ferramentas/graficointerativo1/dicionario.js @@ -1,275 +1,408 @@ //+$trad(1,i3GEOF.graficointerativo1.dicionario)+ -i3GEOF.graficointerativo1.dicionario = { - "tipo" : [ { - pt : "Tipo", - en : "", - es : "" - } ], - "dados" : [ { - pt : "Dados", - en : "", - es : "" - } ], - "grafico" : [ { - pt : "Gráfico", - en : "", - es : "" - } ], - "escolhatipo" : [ { - pt : "Escolha o tipo de gráfico", - en : "", - es : "" - } ], - "pizza2d" : [ { - pt : "pizza 2d", - en : "", - es : "" - } ], - "areasimp" : [ { - pt : "área simples", - en : "", - es : "" - } ], - "distpt" : [ { - pt : "distribuição de pontos", - en : "", - es : "" - } ], - "linhassimp" : [ { - pt : "linhas simples", - en : "", - es : "" - } ], - "arvore" : [ { - pt : "Árvore", - en : "", - es : "" - } ], - "barrasv" : [ { - pt : "barras verticais", - en : "", - es : "" - } ], - "barrash" : [ { - pt : "barras horizontais", - en : "", - es : "" - } ], - "configgr" : [ { - pt : "Configuração do gráfico", - en : "", - es : "" - } ], - "tema" : [ { - pt : "Tema", - en : "", - es : "" - } ], - "itemcx" : [ { - pt : "Item com as classes ou eixo X", - en : "", - es : "" - } ], - "itemcy" : [ { - pt : "Item(ns) com os valores ou eixo Y", - en : "", - es : "" - } ], - "excluirval" : [ { - pt : "Excluir o seguinte valor", - en : "", - es : "" - } ], - "geracor" : [ { - pt : "gera cores aleatórias", - en : "", - es : "" - } ], - "obterdados" : [ { - pt : "Obter dados", - en : "", - es : "" - } ], - "seescolher" : [ { - pt : "Se vc escolher para X e Y o mesmo item, será considerada a frequência das ocorrências para compor cada parte da pizza. Caso contrário, será feita a soma dos valores existentes em Y para cada ocorrência existente em X.", - en : "", - es : "" - } ], - "inclinax" : [ { - pt : "Inclina os textos do eixo X", - en : "", - es : "" - } ], - "adlinbarras" : [ { - pt : "Adiciona as linhas em gráficos de barras", - en : "", - es : "" - } ], - "utilizvalacum" : [ { - pt : "Utiliza valores acumulados", - en : "", - titleFont : 'bold 14px sans-serif', - titlePosition : "top", - es : "" - } ], - "utilizvalrelat" : [ { - pt : "Utiliza valores relativos", - en : "", - es : "" - } ], - "ordenax" : [ { - pt : "Ordena o eixo X", - en : "", - es : "" - } ], - "naoprocessa" : [ { - pt : "Não processa os valores ao obter os dados (mantém os dados como estão na tabela de atributos) - essa opção é útil nos gráficos de distribuição de pontos", - en : "", - es : "" - } ], - "soma" : [ { - pt : "Soma", - en : "", - es : "" - } ], - "media" : [ { - pt : "Média", - en : "", - es : "" - } ], - "tipoagregay" : [ { - pt : "Tipo de agregação dos valores do eixo Y", - en : "", - es : "" - } ], - "fatcalclarg" : [ { - pt : "Fator de cálculo da largura do gráfico. O número de ocorrências será multiplicado por esse fator para calcular o tamanho final do gráfico em pixels. Deixe como 0 para usar o cálculo automático.", - en : "", - es : "" - } ], - "janelasep" : [ { - pt : "abrir em uma janela separada", - en : "", - es : "" - } ], - 'selecionaTipoGrafico' : [ { - pt : "Escolha um tipo de grafico", - en : "", - es : "" - } ], - 'erroTemaOrigem' : [ { - pt : "erro ao ler os itens do tema de origem", - en : "", - es : "" - } ], - 'digitaTituloLegenda' : [ { - pt : "Digite o título para legenda", - en : "", - es : "" - } ], - 'selecionaTema' : [ { - pt : "Escolha um tema", - en : "", - es : "" - } ], - 'selecionaItemX' : [ { - pt : "Escolha um item para X", - en : "", - es : "" - } ], - 'selecionaItemY' : [ { - pt : "Escolha um item para Y", - en : "", - es : "" - } ], - 'dadosRegiaoMostrada' : [ { - pt : "Os dados utilizados referem-se apenas à região atual mostrada no mapa", - en : "", - es : "" - } ], - 'tabelaGrafico' : [ { - pt : "Tabela de dados para o gráfico. Os valores podem ser editados", - en : "", - es : "" - } ], - 39 : [ { - pt : "nome", - en : "", - es : "" - } ], - 40 : [ { - pt : "valor", - en : "", - es : "" - } ], - 'cor' : [ { - pt : "cor", - en : "", - es : "" - } ], - 'exclui' : [ { - pt : "excluir", - en : "", - es : "" - } ], - 'digitaNovoNome' : [ { - pt : "digite o novo nome", - en : "", - es : "" - } ], - 44 : [ { - pt : "digite o novo valor", - en : "", - es : "" - } ], - 'casos' : [ { - pt : "casos", - en : "", - es : "" - } ], - 'numeroCasos' : [ { - pt : "n. de casos", - en : "", - es : "" - } ], - 47 : [ { - pt : "Atualiza o gráfico ao navegar pelo mapa", - en : "", - es : "" - } ], - "stacked" : [ { - pt : "Utiliza barras divididas entre os valores (stacked)", - en : "", - es : "" - } ], - "linhasnascols" : [ { - pt : "As linhas de dados ficam nas colunas", - en : "", - es : "" - } ], - "titulo" : [ { - pt : "Título", - en : "", - es : "" - } ], - "titux" : [ { - pt : "Título do eixo X", - en : "", - es : "" - } ], - "tituy" : [ { - pt : "Título do eixo Y", - en : "", - es : "" - } ], - "atualizaNavegacao" : [ { - pt : "Atualiza ao navegar", - en : "", - es : "" - } ], - "idDoGrafico" : [ { - pt : "ID do gráfico", - en : "", - es : "" - } ] -}; +i3GEOF.graficointerativo1.dicionario = + { + "tipo" : [ + { + pt : "Tipo", + en : "", + es : "" + } + ], + "dados" : [ + { + pt : "Dados", + en : "", + es : "" + } + ], + "grafico" : [ + { + pt : "Gráfico", + en : "", + es : "" + } + ], + "escolhatipo" : [ + { + pt : "Escolha o tipo de gráfico", + en : "", + es : "" + } + ], + "pizza2d" : [ + { + pt : "pizza 2d", + en : "", + es : "" + } + ], + "areasimp" : [ + { + pt : "área simples", + en : "", + es : "" + } + ], + "distpt" : [ + { + pt : "distribuição de pontos", + en : "", + es : "" + } + ], + "linhassimp" : [ + { + pt : "linhas simples", + en : "", + es : "" + } + ], + "arvore" : [ + { + pt : "Árvore", + en : "", + es : "" + } + ], + "barrasv" : [ + { + pt : "barras verticais", + en : "", + es : "" + } + ], + "barrash" : [ + { + pt : "barras horizontais", + en : "", + es : "" + } + ], + "configgr" : [ + { + pt : "Configuração do gráfico", + en : "", + es : "" + } + ], + "tema" : [ + { + pt : "Tema", + en : "", + es : "" + } + ], + "itemcx" : [ + { + pt : "Item com as classes ou eixo X", + en : "", + es : "" + } + ], + "itemcy" : [ + { + pt : "Item(ns) com os valores ou eixo Y", + en : "", + es : "" + } + ], + "excluirval" : [ + { + pt : "Excluir o seguinte valor", + en : "", + es : "" + } + ], + "geracor" : [ + { + pt : "gera cores aleatórias", + en : "", + es : "" + } + ], + "obterdados" : [ + { + pt : "Obter dados", + en : "", + es : "" + } + ], + "seescolher" : [ + { + pt : "Se vc escolher para X e Y o mesmo item, será considerada a frequência das ocorrências para compor cada parte da pizza. Caso contrário, será feita a soma dos valores existentes em Y para cada ocorrência existente em X.", + en : "", + es : "" + } + ], + "inclinax" : [ + { + pt : "Inclina os textos do eixo X", + en : "", + es : "" + } + ], + "adlinbarras" : [ + { + pt : "Adiciona as linhas em gráficos de barras", + en : "", + es : "" + } + ], + "utilizvalacum" : [ + { + pt : "Utiliza valores acumulados", + en : "", + titleFont : 'bold 14px sans-serif', + titlePosition : "top", + es : "" + } + ], + "utilizvalrelat" : [ + { + pt : "Utiliza valores relativos", + en : "", + es : "" + } + ], + "ordenax" : [ + { + pt : "Ordena o eixo X", + en : "", + es : "" + } + ], + "naoprocessa" : [ + { + pt : "Não processa os valores ao obter os dados (mantém os dados como estão na tabela de atributos) - essa opção é útil nos gráficos de distribuição de pontos", + en : "", + es : "" + } + ], + "soma" : [ + { + pt : "Soma", + en : "", + es : "" + } + ], + "media" : [ + { + pt : "Média", + en : "", + es : "" + } + ], + "tipoagregay" : [ + { + pt : "Tipo de agregação dos valores do eixo Y", + en : "", + es : "" + } + ], + "fatcalclarg" : [ + { + pt : "Fator de cálculo da largura do gráfico. O número de ocorrências será multiplicado por esse fator para calcular o tamanho final do gráfico em pixels. Deixe como 0 para usar o cálculo automático.", + en : "", + es : "" + } + ], + "janelasep" : [ + { + pt : "abrir em uma janela separada", + en : "", + es : "" + } + ], + 'selecionaTipoGrafico' : [ + { + pt : "Escolha um tipo de grafico", + en : "", + es : "" + } + ], + 'erroTemaOrigem' : [ + { + pt : "erro ao ler os itens do tema de origem", + en : "", + es : "" + } + ], + 'digitaTituloLegenda' : [ + { + pt : "Digite o título para legenda", + en : "", + es : "" + } + ], + 'selecionaTema' : [ + { + pt : "Escolha um tema", + en : "", + es : "" + } + ], + 'selecionaItemX' : [ + { + pt : "Escolha um item para X", + en : "", + es : "" + } + ], + 'selecionaItemY' : [ + { + pt : "Escolha um item para Y", + en : "", + es : "" + } + ], + 'dadosRegiaoMostrada' : [ + { + pt : "Os dados utilizados referem-se apenas à região atual mostrada no mapa", + en : "", + es : "" + } + ], + 'tabelaGrafico' : [ + { + pt : "Tabela de dados para o gráfico. Os valores podem ser editados", + en : "", + es : "" + } + ], + 39 : [ + { + pt : "nome", + en : "", + es : "" + } + ], + 40 : [ + { + pt : "valor", + en : "", + es : "" + } + ], + 'cor' : [ + { + pt : "cor", + en : "", + es : "" + } + ], + 'exclui' : [ + { + pt : "excluir", + en : "", + es : "" + } + ], + 'digitaNovoNome' : [ + { + pt : "digite o novo nome", + en : "", + es : "" + } + ], + 44 : [ + { + pt : "digite o novo valor", + en : "", + es : "" + } + ], + 'casos' : [ + { + pt : "casos", + en : "", + es : "" + } + ], + 'numeroCasos' : [ + { + pt : "n. de casos", + en : "", + es : "" + } + ], + 47 : [ + { + pt : "Atualiza o gráfico ao navegar pelo mapa", + en : "", + es : "" + } + ], + "stacked" : [ + { + pt : "Utiliza barras divididas entre os valores (stacked)", + en : "", + es : "" + } + ], + "linhasnascols" : [ + { + pt : "As linhas de dados ficam nas colunas", + en : "", + es : "" + } + ], + "titulo" : [ + { + pt : "Título", + en : "", + es : "" + } + ], + "titux" : [ + { + pt : "Título do eixo X", + en : "", + es : "" + } + ], + "tituy" : [ + { + pt : "Título do eixo Y", + en : "", + es : "" + } + ], + "atualizaNavegacao" : [ + { + pt : "Atualiza ao navegar", + en : "", + es : "" + } + ], + "idDoGrafico" : [ + { + pt : "ID do gráfico", + en : "", + es : "" + } + ], + "compor" : [ + { + pt : "Compor", + en : "", + es : "", + it : "" + } + ], + "escolherGrafico" : [ + { + pt : "Escolha as janelas que contém os gráficos que serão compostos com o atual:", + en : "", + es : "", + it : "" + } + ], + "GrComposicao" : [ + { + pt : "Lista com os gráficos sobrepostos na atual composição:", + en : "", + es : "", + it : "" + } + ] + }; diff --git a/ferramentas/graficointerativo1/index.js b/ferramentas/graficointerativo1/index.js index 26ffa4a..5c1436a 100755 --- a/ferramentas/graficointerativo1/index.js +++ b/ferramentas/graficointerativo1/index.js @@ -117,7 +117,7 @@ i3GEOF.graficointerativo1 = * Default: {false} */ dadospuros : false, - w: "450px", + w: "460px", h: "400px", /** * Configura o grafico conforme um objeto contendo parametros e opcionalmente os dados Alguns parametros possuem definicoes padrao, @@ -185,6 +185,10 @@ i3GEOF.graficointerativo1 = if (!parametros.tipo || parametros.tipo == undefined) { i3GEOF.graficointerativo1.propJanelas[idjanela].tipo = i3GEOF.graficointerativo1.tipo; } + //comp guarda a lista de diferentes graficos que formam composicoes + if (!parametros.comp || parametros.comp == undefined) { + i3GEOF.graficointerativo1.propJanelas[idjanela].comp = []; + } return idjanela; }, /** @@ -428,7 +432,7 @@ i3GEOF.graficointerativo1 = t.style.position = "relative"; t.style.top = "-5px"; t.visibility = "visible"; - i3GEOF.graficointerativo1.tabela2dados(idjanela); + i3GEOF.graficointerativo1.tabela2grafico(idjanela); }; $i(idjanela + "i3GEOgraficointerativo1guia5").onclick = function() { @@ -466,6 +470,12 @@ i3GEOF.graficointerativo1 = form.action = form.action + "?" + "w=" + w + "&h=" + h; form.submit(); }; + $i(idjanela + "i3GEOgraficointerativo1guia7").onclick = + function() { + i3GEOF.graficointerativo1.composicao.html(idjanela); + i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOgraficointerativo1guia7", idjanela + "i3GEOgraficointerativo1guia"); + }; + i3GEOF.graficointerativo1.ativaFoco(idjanela); i3GEOF.graficointerativo1.comboTemas(idjanela); b = new YAHOO.widget.Button(idjanela + "i3GEOgraficointerativo1botao1", { @@ -551,7 +561,7 @@ i3GEOF.graficointerativo1 = mudaTamanhoGrafico = function() { var t = $i(idjanela + "i3GEOgraficointerativo1Grafico"); if (t.style.display === "block") { - i3GEOF.graficointerativo1.tabela2dados(idjanela); + i3GEOF.graficointerativo1.tabela2grafico(idjanela); } }; duplica = function() { @@ -865,6 +875,8 @@ i3GEOF.graficointerativo1 = * * */ + contadorDados: 0, + janelasEsperando: [], obterDados : function(idjanela) { if (!i3GEO.Interface) { return; @@ -880,6 +892,7 @@ i3GEOF.graficointerativo1 = } else { tema = tema.value; } + i3GEOF.graficointerativo1.contadorDados++; excluir = $i(idjanela + "i3GEOgraficointerativo1excluir").value; cp = new cpaint(); tipo = $i(idjanela + "i3GEOgraficointerativo1TipoAgregacao").value; @@ -936,9 +949,19 @@ i3GEOF.graficointerativo1 = return; } monta = function(retorno) { + //o contador e utilizado para disparar processos apenas quando todas as operacoes tiverem terminado + i3GEOF.graficointerativo1.contadorDados--; i3GEOF.graficointerativo1.propJanelas[idjanela].aguarde.visibility = "hidden"; i3GEOF.graficointerativo1.montaTabelaDados(idjanela, retorno); - $i(idjanela + "i3GEOgraficointerativo1guia4").onclick.call(); + i3GEOF.graficointerativo1.janelasEsperando.push(idjanela); + if(i3GEOF.graficointerativo1.contadorDados === 0){ + var n = i3GEOF.graficointerativo1.janelasEsperando.length, + i; + for(i=0;i 0) { - menor = inputs[1].value * 1; - } + var titulo = "", + menor = 0, + legendaX = "", + legendaY = "", + dados = {}, + xInclinado = false; + + var dados = i3GEOF.graficointerativo1.tabela2dados(idjanela); + + xInclinado = $i(idjanela + "i3GEOgraficointerativo1xInclinado").checked; if ($i(idjanela + "i3GEOgraficointerativo1ComboTemasId")) { titulo = $i(idjanela + "i3GEOgraficointerativo1ComboTemasId").options[$i(idjanela + "i3GEOgraficointerativo1ComboTemasId").options.selectedIndex].text; @@ -1109,6 +1130,71 @@ i3GEOF.graficointerativo1 = if ($i(idjanela + "i3GEOgraficointerativo1ComboYid")) { legendaY = $i(idjanela + "i3GEOgraficointerativo1ComboYidTitulo").value; } + + if (legendaX == legendaY && (legendaX != "" && legendaY != "")) { + menor = 0; + legendaX += " (" + $trad('casos', i3GEOF.graficointerativo1.dicionario) + ")"; + legendaY += " (" + $trad('numeroCasos', i3GEOF.graficointerativo1.dicionario) + ")"; + } + + switch (i3GEOF.graficointerativo1.propJanelas[idjanela].tipo) { + case "bar_1": + legendaX = ""; + i3GEOF.graficointerativo1.barras(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX, xInclinado, "vertical"); + break; + case "bar_2": + legendaX = ""; + i3GEOF.graficointerativo1.barras(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX, xInclinado, "horizontal"); + break; + case "linha_1": + legendaX = ""; + i3GEOF.graficointerativo1.linhas(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX, xInclinado); + break; + case "pizza_1": + legendaX = ""; + i3GEOF.graficointerativo1.pizzas(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX); + break; + case "ponto_1": + i3GEOF.graficointerativo1.pontos(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX); + break; + case "area_1": + legendaX = ""; + i3GEOF.graficointerativo1.areas(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX, xInclinado); + break; + case "arvore_1": + i3GEOF.graficointerativo1.arvores(idjanela, dados["dados"], dados["maior"], dados["cores"], legendaY, legendaX); + break; + default: + // alert($trad("escolhatipo", i3GEOF.graficointerativo1.dicionario)); + } + }, + /** + * Function: tabela2dados + * + * Obtém os dados da tabela para compor o gráfico + */ + tabela2dados : function(idjanela) { + var colunas = i3GEOF.graficointerativo1.nomesColunas(idjanela), + ncolunas = colunas[0].length, + temp = 0, + ultimo = 0, + inputs = $i(idjanela + "i3GEOgraficointerativo1Dados").getElementsByTagName("input"), + ninputs = inputs.length, + tipoColuna = "String", + metadados = [], + i, + j, + acumulado = [], + acum, + cores = [], + par = [], + total = 0, + menor = 0, + maior = 0, + dados = {}; + if (ninputs > 0) { + menor = inputs[1].value * 1; + } if (ncolunas === 2) { for (i = 0; i < ninputs; i = i + 3) { temp = inputs[i + 1].value * 1; @@ -1152,11 +1238,6 @@ i3GEOF.graficointerativo1 = } cores = colunas[2]; } - if (legendaX == legendaY && (legendaX != "" && legendaY != "")) { - menor = 0; - legendaX += " (" + $trad('casos', i3GEOF.graficointerativo1.dicionario) + ")"; - legendaY += " (" + $trad('numeroCasos', i3GEOF.graficointerativo1.dicionario) + ")"; - } for (j = 0; j < ncolunas; j++) { metadados.push({ @@ -1170,36 +1251,12 @@ i3GEOF.graficointerativo1 = "resultset" : par, "metadata" : metadados }; - switch (i3GEOF.graficointerativo1.propJanelas[idjanela].tipo) { - case "bar_1": - legendaX = ""; - i3GEOF.graficointerativo1.barras(idjanela, dados, maior, cores, legendaY, legendaX, xInclinado, "vertical"); - break; - case "bar_2": - legendaX = ""; - i3GEOF.graficointerativo1.barras(idjanela, dados, maior, cores, legendaY, legendaX, xInclinado, "horizontal"); - break; - case "linha_1": - legendaX = ""; - i3GEOF.graficointerativo1.linhas(idjanela, dados, maior, cores, legendaY, legendaX, xInclinado); - break; - case "pizza_1": - legendaX = ""; - i3GEOF.graficointerativo1.pizzas(idjanela, dados, maior, cores, legendaY, legendaX); - break; - case "ponto_1": - i3GEOF.graficointerativo1.pontos(idjanela, dados, maior, cores, legendaY, legendaX); - break; - case "area_1": - legendaX = ""; - i3GEOF.graficointerativo1.areas(idjanela, dados, maior, cores, legendaY, legendaX, xInclinado); - break; - case "arvore_1": - i3GEOF.graficointerativo1.arvores(idjanela, dados, maior, cores, legendaY, legendaX); - break; - default: - // alert($trad("escolhatipo", i3GEOF.graficointerativo1.dicionario)); - } + return { + "dados": dados, + "cores": cores, + "menor": menor, + "maior": maior + }; }, /** * Function: excluilinha @@ -1337,7 +1394,7 @@ i3GEOF.graficointerativo1 = return config; }, barras : function(idjanela, dados, maior, cores, legendaY, legendaX, xInclinado, tipo) { - var ct = true, sr = false, config = i3GEOF.graficointerativo1.configDefault(idjanela, dados, maior, cores, legendaY, legendaX); + var contador = 0, ct = true, sr = false, config = i3GEOF.graficointerativo1.configDefault(idjanela, dados, maior, cores, legendaY, legendaX); if (tipo === "horizontal") { config.orientation = 'horizontal'; } @@ -1346,18 +1403,24 @@ i3GEOF.graficointerativo1 = config.extensionPoints.xAxisLabel_textBaseline = 'top'; config.extensionPoints.xAxisLabel_textAlign = 'right'; } + config.colors = cores; + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + if (dados.resultset && dados.resultset[0] && dados.resultset[0].length > 2) { config.stacked = $i(idjanela + "i3GEOFgraficointerativo1ativaStacked").checked; config.legend = true; ct = true; sr = $i(idjanela + "i3GEOFgraficointerativo1ativaRowsInColumns").checked; - config.colors = cores; - } else { - if (cores != "") { - config.extensionPoints.bar_fillStyle = function(d) { - return cores[this.index]; - }; - } + + } + else if (cores != "") { + config.extensionPoints.bar_fillStyle = function(d) { + return config.colors[this.index]; + }; } new pvc.BarChart(config).setData(dados, { crosstabMode : ct, @@ -1384,6 +1447,12 @@ i3GEOF.graficointerativo1 = sr = $i(idjanela + "i3GEOFgraficointerativo1ativaRowsInColumns").checked; config.colors = cores; } + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + new pvc.LineChart(config).setData(dados, { crosstabMode : ct, seriesInRows : sr @@ -1410,6 +1479,12 @@ i3GEOF.graficointerativo1 = sr = $i(idjanela + "i3GEOFgraficointerativo1ativaRowsInColumns").checked; config.colors = cores; } + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + new pvc.LineChart(config).setData(dados, { crosstabMode : ct, seriesInRows : sr @@ -1439,6 +1514,12 @@ i3GEOF.graficointerativo1 = if (cores != "") { config.colors = cores; } + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + new pvc.TreemapChart(config).setData(dados, { crosstabMode : false }).render(); @@ -1468,6 +1549,12 @@ i3GEOF.graficointerativo1 = if (cores != "") { config.colors = cores; } + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + new pvc.PieChart(config).setData(dados, { crosstabMode : false }).render(); @@ -1503,6 +1590,12 @@ i3GEOF.graficointerativo1 = if (cores != "") { config.colors = cores; } + // + //pega os parametros de graficos que fazem composicao com este + // + dados = i3GEOF.graficointerativo1.composicao.incluiDados(idjanela,dados); + config = i3GEOF.graficointerativo1.composicao.incluiConfig(idjanela,config); + new pvc.DotChart(config).setData(dados, { crosstabMode : false }).render(); @@ -1511,7 +1604,11 @@ i3GEOF.graficointerativo1 = $i(idjanela).style.visibility = "visible"; } }, - sobreposicao: { + /** + * Gerencia a sobreposicao de graficos em um unico + * i3GEOF.graficointerativo1.propJanelas[idjanela].comp + */ + composicao: { /** * Parametros do grafico sobreposto * E armazenado quando a janela sobreposta e fechada @@ -1523,40 +1620,160 @@ i3GEOF.graficointerativo1 = * "s" e o codigo da janela do grafico sobreposto */ remove: function(idjanela,s){ - + var c = i3GEOF.graficointerativo1.propJanelas[idjanela].comp; + c.remove(s); + i3GEOF.graficointerativo1.composicao.listaComp(idjanela); }, /** * Adiciona ao grafico uma nova sobreposicao */ adiciona: function(idjanela,s){ - + if(s === ""){ + return; + } + var c = i3GEOF.graficointerativo1.propJanelas[idjanela].comp; + c.remove(s); + c.push(s); + i3GEOF.graficointerativo1.composicao.listaComp(idjanela); }, /** * HTML com o formulario para adicionar sobreposicoes */ html: function(idjanela){ - + i3GEOF.graficointerativo1.composicao.combojanelas(idjanela); + i3GEOF.graficointerativo1.composicao.listaComp(idjanela); }, /** - * Aplica uma sobreposicao especifica a um grafico + * Verifica todas as sobreposicoes e as aplica ao grafico + * A aplicacao e feita sobre o objeto de dados antes de ser renderizado + * Verifica se a janela com o grafico esta aberta ou se devem ser usados os parametros + * guardados */ - aplica: function(idjanela,s,grafico){ - + incluiDados: function(idjanela,dados){ + try{ + var c = i3GEOF.graficointerativo1.propJanelas[idjanela].comp, + n = c.length, + i, + nmeta, + dadosNovos, + metaNovos, + rsNovos, + coresNovos, + rs, + nrs = [], + a = {}, + b = {}, + e = [], + d, + j, + nj; + if(n > 0){ + for(i=0;i 0){ + for(i=0;i" + + " X" + + ""; + } + $i(idjanela + "Composicoes").innerHTML = ins; }, /** * Lista as janelas de graficos abertas */ combojanelas: function(idjanela){ + var n = i3GEOF.graficointerativo1.janelas.length, + ins = "", + i; + ins += ""; + $i(idjanela + "ComboJanelasGr").innerHTML = ins; }, /** * Verifica se o grafico dessa janela tem sobreposicao diff --git a/ferramentas/graficointerativo1/template_mst.html b/ferramentas/graficointerativo1/template_mst.html index e1abc0c..a6ac64b 100644 --- a/ferramentas/graficointerativo1/template_mst.html +++ b/ferramentas/graficointerativo1/template_mst.html @@ -43,6 +43,13 @@ +
  • + +

  • @@ -167,7 +174,9 @@

    {{{itemcy}}} :

    -

    {{{excluirval}}} : +
    +
    +

    {{{excluirval}}} :

    @@ -244,5 +253,14 @@ + + + -- libgit2 0.21.2