- Timestamp:
- 2021-04-27T14:03:18+12:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-sites-dev/eurovision-lod/collect/eurovision/js/dataviz.js
r35113 r35121 254 254 } 255 255 } 256 257 /* 258 function showInfo() { 259 var treechart = $("#sgvizler-div"); 260 261 //var data = google.visualization.arrayToDataTable(heatmapData); 262 263 var chart = sgvizler2.sgvizler.Container.list[0] 264 var resultSparql = chart._chart._resultSparql; 265 var data = new sgvizler2.google.Data(resultSparql); 266 var data_table = data.getDataTable(); 267 268 var num_rows = data_table.getNumberOfRows(); 269 270 for (var ri=0; ri<num_rows; ri++) { 271 var country = data_table.getValue(ri,0); 272 var total_votes = data_table.getValue(ri,1); 273 var diff_votes = data_table.getValue(ri,2); 274 275 var v = data_table.getValue(ri,3); 276 console.log("*** v = " + v); 277 278 var replace_rec = { v: v, f: country + ": Tele vs Jury diff: " + v }; 279 var formatted_val = country + ": Tele vs Jury diff: " + v; 280 data_table.setFormattedValue(ri,0, formatted_val); 281 } 282 283 var tree = new google.visualization.TreeMap(document.getElementById('sgvizler-div')); 284 285 var tree_options = sgvizler2.getChartOptions('sgvizler-div') 286 287 tree.draw(data_table, tree_options); 288 289 290 / * 291 S.Container.list.forEach( 292 (container) => { 293 if(container.id === elementID) { 294 optionsChart = container.chart.newOptionsRaw 295 } 296 } 297 ) 298 * / 299 300 } 301 function showInfo2() { 302 303 var svg = treechart.find("svg"); 304 var cells = svg.find("g"); 305 cells.find("text").hide(); 306 307 cells.each(function(i, item) { 308 console.log("*** i = " + i); 309 var cell = $(item); 310 var xy = getCellCoordinates(cell); 311 var tableData = getTableData(i); 312 var cellColor = cell.find('rect').attr('fill'); 313 //var cellColor = setColor(tableData); 314 var extraCell = makeInfoCell(tableData, xy, cellColor); 315 $("#page").append(extraCell); 316 }); 317 318 function getCellCoordinates(cell) { 319 var top = window.pageYOffset || document.documentElement.scrollTop; 320 var rect = { 321 top: cell[0].getBoundingClientRect().top, 322 left: cell[0].getBoundingClientRect().left, 323 width: cell[0].getBoundingClientRect().width, 324 height: cell[0].getBoundingClientRect().height 325 }; 326 if (top > 0) { 327 rect.top = rect.top + top; 328 } 329 return rect; 330 } 331 332 function getTableData(row) { 333 row++; // 0-item is root 334 var dataObj = { 335 id: row, // int 336 name: data.getValue(row, 0), // str 337 val: data.getValue(row, 2), // int 338 //dir: data.getValue(row, 4), // str 339 //perc: data.getValue(row, 5), // int 340 //supplierId: data.getValue(row, 6) // int 341 }; 342 return dataObj; 343 } 344 345 function makeInfoCell(data, xy, color) { 346 var paddingTop = 0; 347 var tooTight = ""; 348 var tooLow = ""; 349 var tooSmall = ""; 350 var tagEl = ""; 351 352 if (xy.height > 67 && xy.height < 85) { 353 paddingTop = xy.height / 2 - 22; 354 tooLow = "tooLow"; 355 } else if (xy.height > 45 && xy.height <= 67) { 356 paddingTop = xy.height / 2 - 20; 357 } else if (xy.height <= 45) { 358 paddingTop = 0; 359 tooSmall = "tooSmall"; 360 } else { 361 paddingTop = xy.height - 82; 362 } 363 364 if (xy.width <= 62) { 365 tooTight = "tooTight"; 366 if (xy.width <= 30) { 367 tooSmall = "tooSmall"; 368 } 369 } 370 371 var style = 372 'style="left:' + 373 xy.left + 374 "px;top:" + 375 (xy.top - 1) + 376 "px;width:" + 377 xy.width + 378 "px;height:" + 379 xy.height + 380 "px;padding-top:" + 381 paddingTop + 382 "px;color:" + 383 color + 384 ";background:" + 385 color + 386 ';"'; 387 388 tagEl = '<a href="/" class="name">' + data.name + "</a>"; 389 390 var infoDiv = 391 '<div class="cellInfo ' + 392 tooTight + 393 " " + 394 tooLow + 395 " " + 396 tooSmall + 397 '" data-id="' + 398 data.supplierId + 399 '" ' + 400 style + 401 ">" + 402 tagEl; 403 404 if (xy.height > 67) { 405 if (data.perc !== null) { 406 infoDiv += 407 '<span class="perc arrow-' + 408 data.dir + 409 '"><span class="percValue">' + 410 data.perc + 411 "%</span></span>"; 412 } else { 413 infoDiv += '<span class="perc nodata">No data</span>'; 414 } 415 } 416 417 infoDiv += 418 '<span class="val">Risk: ' + 419 (data.val ? data.val.toFixed() : "-") + 420 "</span>" + 421 '<div class="hoverBox">' + 422 tagEl; 423 424 if (data.perc !== null) { 425 infoDiv += 426 '<span class="perc arrow-' + 427 data.dir + 428 '">' + 429 data.perc + 430 "%</span>"; 431 } 432 infoDiv += 433 "<span>Risk: " + 434 (data.val ? data.val.toFixed() : "-") + 435 "</span>" + 436 "</div></div>"; 437 return infoDiv; 438 } 439 } 440 */ 441 442 /* 443 // position black panel (tootltip) 444 $(".cellInfo").on("mouseenter touchstart", function(e) { 445 var cell = $(this); 446 var hoverBox = cell.find(".hoverBox"); 447 var cellWidth = cell[0].getBoundingClientRect().width; 448 var cellHeight = cell[0].getBoundingClientRect().height; 449 var hoverBoxWidth = hoverBox[0].getBoundingClientRect().width; 450 var hoverBoxY = hoverBox[0].getBoundingClientRect().right; 451 var treemapDivY = treechart[0].getBoundingClientRect().right; 452 cell.addClass("zindex"); 453 if (hoverBoxWidth > cellWidth) { 454 if (hoverBoxY >= treemapDivY) { 455 hoverBox.css({ right: 0 }); 456 } else { 457 hoverBox.css({ left: 0 }); 458 } 459 } else { 460 hoverBox.css({ left: 0 }); 461 } 462 463 if (cellHeight <= 64) { 464 hoverBox.css({ top: -hoverBox.outerHeight() + "px" }); 465 } 466 }); 467 468 $(".cellInfo").on("mouseleave touchend", function(e) { 469 var hoverBox = $(this).find(".hoverBox"); 470 hoverBox.parent().removeClass("zindex"); 471 hoverBox.css({ left: "auto", right: "auto" }); 472 }); 473 } 474 */ 475 476 /* 477 function setColor(data) { 478 var riskVal = 0; 479 var colorScale = ["#14914c", "#1abf64", "#ddad00", "#ff6633", "#dc572b"]; //from low to high 480 var color = ""; 481 482 if (typeof data === "string" || data instanceof String) { 483 return; 484 } 485 486 riskVal = data ? data.val : data; 487 setColorForRisk(riskVal); 488 489 function setColorForRisk(riskVal) { 490 if (riskVal == null || riskVal === 0) { 491 color = "#c2c1bf"; 492 } else if (riskVal <= 200) { 493 color = colorScale[0]; 494 } else if (riskVal > 200 && riskVal <= 400) { 495 color = colorScale[1]; 496 } else if (riskVal > 400 && riskVal <= 600) { 497 color = colorScale[2]; 498 } else if (riskVal > 600 && riskVal <= 800) { 499 color = colorScale[3]; 500 } else if (riskVal > 800) { 501 color = colorScale[4]; 502 } 503 } 504 505 return color; 506 } 507 508 */ 509
Note:
See TracChangeset
for help on using the changeset viewer.