Commit 8d1ff0752727224bf55b1e59132257f7b29a6ce0
1 parent
9ce0f6fa
Exists in
master
and in
7 other branches
inclusão de novos gráficos na ferramenta gráficos interativos
Showing
1 changed file
with
122 additions
and
13 deletions
Show diff stats
ferramentas/graficointerativo/index.js.php
... | ... | @@ -68,6 +68,7 @@ i3GEOF.graficointerativo = { |
68 | 68 | i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativoguia4","i3GEOgraficointerativoguia"); |
69 | 69 | var so = new SWFObject(i3GEO.configura.locaplic+"/pacotes/openflashchart/open-flash-chart.swf", "i3GEOgraficointerativoGrafico1", "95%", "88%", "9", "#ffffff"); |
70 | 70 | so.addVariable("get-data", "i3GEOF.graficointerativo.tabela2dados"); |
71 | + so.addVariable("loading","Criando grafico..."); | |
71 | 72 | so.write("i3GEOgraficointerativoGrafico"); |
72 | 73 | }; |
73 | 74 | i3GEOF.graficointerativo.ativaFoco(); |
... | ... | @@ -122,6 +123,25 @@ i3GEOF.graficointerativo = { |
122 | 123 | ' <p class=paragrafo >Escolha o tipo de gráfico: </p>' + |
123 | 124 | ' <table class=lista6 >' + |
124 | 125 | ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="pizza2d" name="tipoGrafico" style=cursor:pointer > </td><td>pizza 2d</td></tr>' + |
126 | + ' <tr><td> </td></tr>' + | |
127 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="area" name="tipoGrafico" style=cursor:pointer > </td><td>área 2d</td></tr>' + | |
128 | + ' <tr><td> </td></tr>' + | |
129 | + | |
130 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_filled" name="tipoGrafico" style=cursor:pointer > </td><td>barras simples</td></tr>' + | |
131 | + ' <tr><td> </td></tr>' + | |
132 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_glass" name="tipoGrafico" style=cursor:pointer > </td><td>barras 2 cores</td></tr>' + | |
133 | + ' <tr><td> </td></tr>' + | |
134 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_3d" name="tipoGrafico" style=cursor:pointer > </td><td>barras 3d</td></tr>' + | |
135 | + ' <tr><td> </td></tr>' + | |
136 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_sketch" name="tipoGrafico" style=cursor:pointer > </td><td>barras rascunho</td></tr>' + | |
137 | + ' <tr><td> </td></tr>' + | |
138 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_cylinder" name="tipoGrafico" style=cursor:pointer > </td><td>barras cilindro</td></tr>' + | |
139 | + ' <tr><td> </td></tr>' + | |
140 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_cylinder_outline" name="tipoGrafico" style=cursor:pointer > </td><td>barras cilindro com contorno</td></tr>' + | |
141 | + ' <tr><td> </td></tr>' + | |
142 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_round_glass" name="tipoGrafico" style=cursor:pointer > </td><td>barras cúpula</td></tr>' + | |
143 | + ' <tr><td> </td></tr>' + | |
144 | + ' <tr><td><input type=radio onclick="i3GEOF.graficointerativo.ativaTipo(this)" value="bar_round" name="tipoGrafico" style=cursor:pointer > </td><td>barras pílula</td></tr>' + | |
125 | 145 | ' </table>' + |
126 | 146 | '</div> ' + |
127 | 147 | '<div class=guiaobj id="i3GEOgraficointerativoguia2obj" style="left:1px;display:none;top:-5px">' + |
... | ... | @@ -145,7 +165,7 @@ i3GEOF.graficointerativo = { |
145 | 165 | '<div class=guiaobj id="i3GEOgraficointerativoguia3obj" style="left:1px;display:none;top:-5px">' + |
146 | 166 | '</div>'+ |
147 | 167 | '<div class=guiaobj id="i3GEOgraficointerativoguia4obj" style="left:1px;display:none;top:-5px">' + |
148 | - ' <div id="i3GEOgraficointerativoGrafico">gráfico</div>' + | |
168 | + ' <div id="i3GEOgraficointerativoGrafico"></div>' + | |
149 | 169 | '</div>'; |
150 | 170 | return ins; |
151 | 171 | }, |
... | ... | @@ -200,7 +220,10 @@ i3GEOF.graficointerativo = { |
200 | 220 | */ |
201 | 221 | ativaTipo: function(obj){ |
202 | 222 | i3GEOF.graficointerativo.tipo = obj.value; |
203 | - $i("i3GEOgraficointerativoguia2").onclick.call(); | |
223 | + if($i("i3GEOgraficointerativoGrafico").innerHTML === "") | |
224 | + {$i("i3GEOgraficointerativoguia2").onclick.call();} | |
225 | + else | |
226 | + {$i("i3GEOgraficointerativoguia4").onclick.call();} | |
204 | 227 | }, |
205 | 228 | /* |
206 | 229 | Function: configuraDados |
... | ... | @@ -284,7 +307,7 @@ i3GEOF.graficointerativo = { |
284 | 307 | ins = [], |
285 | 308 | i, |
286 | 309 | id; |
287 | - ins.push("<p class=paragrafo >Tabela de dados para o gráfico. Os valores podem ser editados</p><table class=lista4 id=i3GEOgraficointerativotabeladados ><tr><td style=background-color:yellow >nome</td><td style=background-color:yellow >valor</td><td style=background-color:yellow >cor</td><td></td></tr>"); | |
310 | + ins.push("<p class=paragrafo >Tabela de dados para o gráfico. Os valores podem ser editados</p><table class=lista4 id=i3GEOgraficointerativotabeladados ><tr><td></td><td style=background-color:yellow >nome</td><td style=background-color:yellow >valor</td><td style=background-color:yellow >cor</td><td></td></tr>"); | |
288 | 311 | for (i=1;i<n; i++){ |
289 | 312 | v = dados[i].split(";"); |
290 | 313 | v[0] = v[0].replace("'",""); |
... | ... | @@ -292,6 +315,8 @@ i3GEOF.graficointerativo = { |
292 | 315 | //ins += v[0]+" "+v[1]; |
293 | 316 | id = "i3GEOgraficointerativoDados"+i; //layer+indice da classe |
294 | 317 | ins.push("<tr><td>"); |
318 | + ins.push("<img style='cursor:pointer' title='clique para excluir' onclick='i3GEOF.graficointerativo.excluilinha(this)' src='"+i3GEO.configura.locaplic+"/imagens/x.gif' title='excluir' /></td>"); | |
319 | + ins.push("</td><td>"); | |
295 | 320 | ins.push($inputText("","",id+"_nome","digite o novo nome",20,v[0],"nome")); |
296 | 321 | ins.push("</td><td>"); |
297 | 322 | ins.push($inputText("","",id+"_valor","digite o novo valor",12,v[1],"valor")); |
... | ... | @@ -314,7 +339,8 @@ i3GEOF.graficointerativo = { |
314 | 339 | Obtém os dados da tabela para compor o gráfico |
315 | 340 | */ |
316 | 341 | tabela2dados: function(){ |
317 | - var inputs = $i("i3GEOgraficointerativoDados").getElementsByTagName("input"), | |
342 | + var temp, | |
343 | + inputs = $i("i3GEOgraficointerativoDados").getElementsByTagName("input"), | |
318 | 344 | ninputs = inputs.length, |
319 | 345 | i, |
320 | 346 | parametros, |
... | ... | @@ -323,38 +349,121 @@ i3GEOF.graficointerativo = { |
323 | 349 | cores = [], |
324 | 350 | indice = $i("i3GEOgraficointerativoComboTemasId").options.selectedIndex, |
325 | 351 | titulo = $i("i3GEOgraficointerativoComboTemasId").options[indice].text, |
326 | - par = []; | |
352 | + par = [], | |
353 | + soma = 0, | |
354 | + menor = inputs[1].value * 1, | |
355 | + maior = 0, | |
356 | + alpha = 0.8, | |
357 | + stroke = 2, | |
358 | + gradient = true, | |
359 | + tituloSize = "15px", | |
360 | + tituloCor = "#000000", | |
361 | + tituloAlinhamento = "center", | |
362 | + corunica = "#E2D66A", | |
363 | + outlinecolor = "#577261", | |
364 | + corGrid = "#D7E4A3", | |
365 | + divisoesY = 10, | |
366 | + rotacaoX = 270, | |
367 | + legendaX = $i("i3GEOgraficointerativoComboXid").value, | |
368 | + legendaY = $i("i3GEOgraficointerativoComboYid").value, | |
369 | + fill = "#C4B86A"; | |
327 | 370 | for(i=0;i<ninputs;i = i + 3){ |
328 | 371 | nomes.push(inputs[i].value+" "); |
329 | 372 | cores.push(inputs[i+2].value); |
330 | - valores.push(inputs[i+1].value * 1); | |
373 | + temp = inputs[i+1].value * 1; | |
374 | + valores.push(temp); | |
375 | + soma += temp; | |
376 | + if(temp > maior) | |
377 | + {maior = temp;} | |
378 | + if(temp < menor) | |
379 | + {menor = temp;} | |
331 | 380 | par.push({"value":inputs[i+1].value * 1,"label":inputs[i].value+" "}); |
332 | 381 | } |
333 | 382 | if(i3GEOF.graficointerativo.tipo === "pizza2d"){ |
334 | - parametros = JSON1.stringify({ | |
383 | + parametros = { | |
335 | 384 | "elements":[{ |
336 | 385 | "type": "pie", |
337 | 386 | "start-angle": 180, |
338 | 387 | "colours": cores, |
339 | - "alpha": 0.6, | |
340 | - "stroke": 2, | |
388 | + "alpha": alpha, | |
389 | + "stroke": stroke, | |
341 | 390 | "animate": 1, |
342 | 391 | "values" : par, |
343 | 392 | "tip": "#val# de #total#<br>#percent# de 100%", |
344 | - "gradient-fill": true | |
393 | + "gradient-fill": gradient | |
345 | 394 | }], |
346 | 395 | "title":{ |
347 | 396 | "text": titulo, |
348 | - "style": "{font-size: 15px; color:#000000; text-align: center;}" | |
397 | + "style": "{font-size: "+tituloSize+"; color:"+tituloCor+"; text-align: "+tituloAlinhamento+";}" | |
349 | 398 | }, |
350 | 399 | "num_decimals": 2, |
351 | 400 | "is_fixed_num_decimals_forced": true, |
352 | 401 | "is_decimal_separator_comma": true, |
353 | 402 | "is_thousand_separator_disabled": true, |
354 | 403 | "x_axis": null |
355 | - }); | |
404 | + }; | |
405 | + } | |
406 | + if(i3GEOF.graficointerativo.tipo === "area" || i3GEOF.graficointerativo.tipo === "bar_round" || i3GEOF.graficointerativo.tipo === "bar_round_glass" || i3GEOF.graficointerativo.tipo === "bar_filled" || i3GEOF.graficointerativo.tipo === "bar_glass" || i3GEOF.graficointerativo.tipo === "bar_3d" || i3GEOF.graficointerativo.tipo === "bar_sketch" || i3GEOF.graficointerativo.tipo === "bar_cylinder" || i3GEOF.graficointerativo.tipo === "bar_cylinder_outline"){ | |
407 | + parametros = { | |
408 | + "elements":[{ | |
409 | + "type": i3GEOF.graficointerativo.tipo, | |
410 | + "start-angle": 180, | |
411 | + "colour": corunica, | |
412 | + "outlinecolor": outlinecolor, | |
413 | + "alpha": alpha, | |
414 | + "stroke": stroke, | |
415 | + "animate": 1, | |
416 | + "values" : valores, | |
417 | + "tip": "#val#", | |
418 | + "gradient-fill": gradient, | |
419 | + "fill": fill, | |
420 | + "fill-alpha": alpha, | |
421 | + "dot-style": { "type": "dot", "colour": "#9C0E57", "dot-size": 7 } | |
422 | + }], | |
423 | + "x_axis": { | |
424 | + "colour": "#A2ACBA", | |
425 | + "grid-colour": corGrid, | |
426 | + "offset": true, | |
427 | + "steps": 1, | |
428 | + "labels": { | |
429 | + "steps": 1, | |
430 | + "rotate": rotacaoX, | |
431 | + "colour": "#000000", | |
432 | + "labels": nomes | |
433 | + } | |
434 | + }, | |
435 | + "y_axis": { | |
436 | + "min": menor, | |
437 | + "max": maior, | |
438 | + "steps": parseInt((parseInt(maior - menor,10) / divisoesY),10), | |
439 | + }, | |
440 | + "x_legend": { | |
441 | + "text": legendaX, | |
442 | + "style": "{font-size: 12px; color: #778877}" | |
443 | + }, | |
444 | + "y_legend": { | |
445 | + "text": legendaY, | |
446 | + "style": "{font-size: 12px; color: #778877}" | |
447 | + }, | |
448 | + "title":{ | |
449 | + "text": titulo, | |
450 | + "style": "{font-size: "+tituloSize+"; color:"+tituloCor+"; text-align: "+tituloAlinhamento+";}" | |
451 | + } | |
452 | + }; | |
356 | 453 | } |
357 | - return parametros; | |
454 | + return JSON1.stringify(parametros); | |
455 | + }, | |
456 | + /* | |
457 | + Function: excluilinha | |
458 | + | |
459 | + Exclui uma linha da tabela de dados | |
460 | + */ | |
461 | + excluilinha: function(celula){ | |
462 | + var p = celula.parentNode.parentNode; | |
463 | + do{ | |
464 | + p.removeChild(p.childNodes[0]); | |
465 | + } while (p.childNodes.length > 0); | |
466 | + p.parentNode.removeChild(p); | |
358 | 467 | }, |
359 | 468 | /* |
360 | 469 | Function: corj | ... | ... |