Commit 1378936c authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Crea visor de stats de datos, lo aplica a windRose

En teoría este summary será aplicable a otros tipos de charts, pero por
ahora se aplica a circulares (windRose, pie...).
Aprovecha para controlar detalles de seteo del título de la leyenda.
parent dfe48400
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -215,10 +215,8 @@ define([
			}

			var chartsData = data.data,
				limits = data.limits;

			//chartsData = [[{"value":5.863},{"value":0.826},{"value":0.413},{"value":0.578},{"value":0.826},{"value":0.413},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.495},{"value":0.661},{"value":0.413},{"value":0.413},{"value":0.0},{"value":0.165},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.413},{"value":0.33},{"value":0.165},{"value":0.33},{"value":0.165},{"value":0.0},{"value":0.083},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.495},{"value":0.413},{"value":0.248},{"value":0.413},{"value":0.0},{"value":0.0},{"value":0.165},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.578},{"value":1.156},{"value":0.578},{"value":0.661},{"value":0.083},{"value":0.083},{"value":0.165},{"value":0.083},{"value":0.0}],[{"value":0.0},{"value":0.33},{"value":0.33},{"value":0.083},{"value":0.33},{"value":0.248},{"value":0.083},{"value":0.248},{"value":0.083},{"value":0.0}],[{"value":0.0},{"value":0.248},{"value":0.413},{"value":0.413},{"value":0.661},{"value":0.165},{"value":0.0},{"value":0.495},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.495},{"value":1.073},{"value":0.33},{"value":0.33},{"value":0.083},{"value":0.165},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.248},{"value":0.083},{"value":0.083},{"value":0.165},{"value":0.165},{"value":0.165},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.413},{"value":0.248},{"value":0.0},{"value":0.413},{"value":0.248},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.661},{"value":0.578},{"value":0.248},{"value":0.578},{"value":0.083},{"value":0.248},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.826},{"value":0.908},{"value":0.248},{"value":0.578},{"value":0.495},{"value":0.248},{"value":0.165},{"value":0.083},{"value":0.0}],[{"value":0.0},{"value":0.991},{"value":0.578},{"value":0.991},{"value":1.486},{"value":0.248},{"value":0.495},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.165},{"value":0.413},{"value":0.165},{"value":0.495},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.578},{"value":0.33},{"value":0.165},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":1.156},{"value":0.743},{"value":0.083},{"value":0.248},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.495},{"value":0.165},{"value":0.248},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.083},{"value":0.0},{"value":0.083},{"value":0.248},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.0},{"value":0.743},{"value":0.578},{"value":0.248},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.165},{"value":0.743},{"value":0.578},{"value":0.413},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.991},{"value":1.156},{"value":1.982},{"value":0.908},{"value":0.248},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":1.239},{"value":1.652},{"value":0.743},{"value":0.743},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":1.486},{"value":1.404},{"value":0.991},{"value":0.743},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.578},{"value":0.991},{"value":0.661},{"value":0.661},{"value":0.248},{"value":0.0},{"value":0.083},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.743},{"value":0.578},{"value":0.661},{"value":1.321},{"value":0.578},{"value":0.0},{"value":0.248},{"value":0.0},{"value":0.083}],[{"value":0.0},{"value":0.578},{"value":0.578},{"value":0.578},{"value":0.661},{"value":0.083},{"value":0.578},{"value":0.33},{"value":0.248},{"value":0.165}],[{"value":0.0},{"value":0.413},{"value":0.33},{"value":0.248},{"value":0.33},{"value":1.321},{"value":0.743},{"value":0.578},{"value":0.248},{"value":0.083}],[{"value":0.0},{"value":0.826},{"value":0.413},{"value":1.321},{"value":1.899},{"value":0.991},{"value":1.073},{"value":0.248},{"value":0.165},{"value":0.083}],[{"value":0.0},{"value":1.239},{"value":2.064},{"value":1.239},{"value":1.073},{"value":0.083},{"value":0.083},{"value":0.165},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.33},{"value":1.156},{"value":0.743},{"value":0.578},{"value":0.33},{"value":0.165},{"value":0.0},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.33},{"value":1.404},{"value":0.908},{"value":0.495},{"value":0.661},{"value":0.165},{"value":0.083},{"value":0.0},{"value":0.0}],[{"value":0.0},{"value":0.33},{"value":0.578},{"value":0.826},{"value":0.578},{"value":0.33},{"value":0.083},{"value":0.0},{"value":0.0},{"value":0.0}]];
			//limits = [{"min":0.0,"max":2.53},{"min":2.53,"max":5.06},{"min":5.06,"max":7.59},{"min":7.59,"max":10.12},{"min":10.12,"max":12.65},{"min":12.65,"max":15.18},{"min":15.18,"max":17.71},{"min":17.71,"max":20.24},{"min":20.24,"max":22.77},{"min":22.77,"max":25.3}];
				limits = data.limits,
				stats = data.stats;

			this._chartsData = {
				data: chartsData,
@@ -227,6 +225,9 @@ define([

			this._limits = limits;

			delete stats.sum;
			this._stats = stats;

			this._updateCharts();
		},

@@ -297,10 +298,11 @@ define([
			}

			var param = this.i18n.speed,
				humanizedStartDate = moment(this._startDate).format('YYYY-MM-DD hh:mm:ss'),
				humanizedEndDate = moment(this._endDate).format('YYYY-MM-DD hh:mm:ss'),
				dateFormat = 'YYYY-MM-DD hh:mm:ss',
				humanizedStartDate = moment(this._startDate).format(dateFormat),
				humanizedEndDate = moment(this._endDate).format(dateFormat),
				dateRange = humanizedStartDate + ' - ' + humanizedEndDate,
				legendTitle = param + ' (' + this.sourceUnit + ') ' + dateRange;
				legendTitle = param + ' (' + this.sourceUnit + ') | ' + dateRange;

			this._publish(this.chartsContainer.getChannel('SET_PROPS'), {
				legendTitle: legendTitle
@@ -319,6 +321,10 @@ define([
			for (var i = 0; i < this._domainSplit; i++) {
				this._updateChart(i, colorScale(i));
			}

			this._publish(this.chartsContainer.getChannel('SET_PROPS'), {
				summaryData: this._stats
			});
		},

		_getColorScale: function() {
+4 −1
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ define([
	, "redmic/modules/chart/ChartsContainer/_InfoOnMouseOver"
	, "redmic/modules/chart/ChartsContainer/_LegendBar"
	, "redmic/modules/chart/ChartsContainer/_RadialAxisWithGridDrawing"
	, "redmic/modules/chart/ChartsContainer/_SummaryBox"
	, "redmic/modules/layout/templateDisplayer/TemplateDisplayer"
	, "redmic/modules/map/layer/GeoJsonLayerImpl"
	, "redmic/modules/map/LeafletImpl"
@@ -32,6 +33,7 @@ define([
	, _InfoOnMouseOver
	, _LegendBar
	, _RadialAxisWithGridDrawing
	, _SummaryBox
	, TemplateDisplayer
	, GeoJsonLayerImpl
	, LeafletImpl
@@ -127,7 +129,8 @@ define([
							_AngularAxisWithGridDrawing,
							_RadialAxisWithGridDrawing,
							_InfoOnMouseOver,
							_LegendBar
							_LegendBar,
							_SummaryBox
						]
					}
				},
+0 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ define([
	, "redmic/modules/chart/ChartsContainer/_BreadcrumbsBar"
	, "redmic/modules/chart/ChartsContainer/_GroupedLegendBar"
	, "redmic/modules/chart/ChartsContainer/_LegendBar"
	, "redmic/modules/chart/ChartsContainer/InfoChartsContainerImpl"
	, "redmic/modules/chart/ChartsContainer/_InfoOnMouseOver"
	, "redmic/modules/chart/ChartsContainer/_TemporalAxisWithGridDrawing"
	, "redmic/modules/chart/ChartsContainer/_VerticalAxesWithGridDrawing"
@@ -39,7 +38,6 @@ define([
	, _BreadcrumbsBar
	, _GroupedLegendBar
	, _LegendBar
	, InfoChartsContainerImpl
	, _InfoOnMouseOver
	, _TemporalAxisWithGridDrawing
	, _VerticalAxesWithGridDrawing
+7 −1
Original line number Diff line number Diff line
@@ -83,6 +83,10 @@ define([

			this.legendBarTitleElement = this.legendBarTitleArea.append('svg:text');

			if (this._currentLegendTitle) {
				this._setLegendTitle(this._currentLegendTitle);
			}

			this.legendBarTitleElement
				.on('mouseleave', lang.hitch(this, this._onLegendTitleMouseLeave))
				.on('mouseenter', lang.partial(this._onLegendTitleMouseEnter, this));
@@ -304,7 +308,9 @@ define([

			this._currentLegendTitle = title;

			if (this.legendBarTitleElement) {
				this.legendBarTitleElement.text(this._getClippedTitleText(title));
			}
		},

		_placeLegendElement: function(legendElement) {
+69 −0
Original line number Diff line number Diff line
define([
	'd3/d3.min'
	, "dojo/_base/declare"
	, "dojo/_base/lang"
	, "dojo/aspect"
	, "RWidgets/Utilities"
], function(
	d3
	, declare
	, lang
	, aspect
	, Utilities
) {
	return declare(null, {
		//	summary:
		//		Extensión para crear una caja que muestre información resumida de la representación actual.

		constructor: function(args) {

			this.config = {
				summaryBoxClass: 'chartSummaryBox'
			};

			lang.mixin(this, this.config, args);
			aspect.after(this, '_createElements', lang.hitch(this, this._createSummaryBoxElements));
			aspect.after(this, '_resize', lang.hitch(this, this._summaryBoxAfterResize));
		},

		_createSummaryBoxElements: function() {

			this.summaryBoxArea = this.drawBox.append('svg:g')
				.attr('id', 'summaryBox')
				.attr('class', this.summaryBoxClass);
		},

		_summaryBoxAfterResize: function() {

			this._translateSummaryBoxArea();
		},

		_onSummaryDataPropSet: function(res) {

			var data = res.value,
				yTranslate = 0;

			this.summaryBoxArea.selectAll('*').remove();

			for (var key in data) {
				this.summaryBoxArea.append('svg:text')
					.text((this.i18n[key] || key) + ': ' + data[key])
					.attr('transform', 'translate(0,' + yTranslate + ')');
				yTranslate += 15;
			}

			this._translateSummaryBoxArea();
		},

		_translateSummaryBoxArea: function() {

			var node = this.summaryBoxArea ? this.summaryBoxArea.node() : null,
				bbox = node ? node.getBBox() : null,
				height = bbox ? bbox.height : 0,
				xTranslate = this._innerWidth,
				yTranslate = this._innerHeight - height;

			this.summaryBoxArea.attr('transform', 'translate(' + xTranslate + ',' + yTranslate + ')');
		}
	});
});