Commit e6c3d92d authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Agrega dimensión de atlas a layers, refactoriza

Reorganiza gestión de dimensiones desde atlas para abarcar tanto datos
temporales como de elevación.

Inyecta definición de dimensiones a los componentes de capa, para que
puedan conocer sus posibilidades.

Aplica dimensión de elevación por defecto a capas que cuentan con ella.
parent fddf003d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ define([
	, 'src/component/base/_Show'
	, 'src/component/base/_ShowInTooltip'
	, 'src/component/base/_Store'
	, 'src/component/atlas/_AtlasElevationManagement'
	, 'src/component/atlas/_AtlasDimensionsManagement'
	, 'src/component/atlas/_AtlasLayersManagement'
	, 'src/component/atlas/_AtlasLegendManagement'
	, 'src/component/atlas/_AtlasThemesManagement'
@@ -34,7 +34,7 @@ define([
	, _Show
	, _ShowInTooltip
	, _Store
	, _AtlasElevationManagement
	, _AtlasDimensionsManagement
	, _AtlasLayersManagement
	, _AtlasLegendManagement
	, _AtlasThemesManagement
@@ -47,7 +47,7 @@ define([
) {

	return declare([
		_Module, _Show, _Store, _Selection, _AtlasElevationManagement, _AtlasLayersManagement, _AtlasLegendManagement,
		_Module, _Show, _Store, _Selection, _AtlasDimensionsManagement, _AtlasLayersManagement, _AtlasLegendManagement,
		_AtlasThemesManagement
	], {
		//	summary:
+19 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ define([

	return declare(null, {
		//	summary:
		//		Gestión de dimensión de elevación de capas para el módulo Atlas.
		//		Gestión de dimensiones de capas (como tiempo y elevación) para el módulo Atlas.

		constructor: function(args) {

@@ -25,6 +25,24 @@ define([
			lang.mixin(this, this.config, args);
		},

		_getAtlasLayerDimensions: function(atlasItem) {

			var dimensions = {};

			var time = atlasItem.timeDefinition || atlasItem.timeDimension,
				elevation = atlasItem.elevationDimension;

			if (time) {
				dimensions.time = time;
			}

			if (elevation) {
				dimensions.elevation = elevation;
			}

			return dimensions;
		},

		_removeElevationOfRemovedLayer: function(layerId) {

			this._hideLayerElevationTagList(layerId);
+2 −1
Original line number Diff line number Diff line
@@ -271,7 +271,8 @@ define([
				layerId: layerId,
				layerLabel: layerLabel,
				queryable: atlasItem.queryable,
				refresh: atlasItem.refresh
				refresh: atlasItem.refresh,
				dimensions: this._getAtlasLayerDimensions(atlasItem)
			};
		},

+21 −9
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ define([

			aspect.after(this, '_mixEventsAndActions', lang.hitch(this, this._mixLayerDimensionsEventsAndActions));
			aspect.after(this, '_defineSubscriptions', lang.hitch(this, this._defineLayerDimensionsSubscriptions));
			aspect.after(this, '_afterLayerAdded', lang.hitch(this, this._afterLayerAddedLayerDimensions));
		},

		_mixLayerDimensionsEventsAndActions: function() {
@@ -47,6 +48,17 @@ define([
			this._deleteDuplicatedChannels(this.subscriptionsConfig);
		},

		_afterLayerAddedLayerDimensions: function() {

			var elevationDimension = this.dimensions.elevation;

			if (elevationDimension) {
				this._setElevationDimension({
					value: elevationDimension.defaultValue
				});
			}
		},

		_obtainDimensionParams: function(data) {

			var dimensionParams = {};
@@ -78,22 +90,22 @@ define([

		_subSetLayerDimension: function(req) {

			this._setElevationDimension(req);
		},

		_setElevationDimension: function(req) {

			if (!req || !req.elevation) {
				return;
			}

			var newElevation = req.elevation.value;
			this._setElevationDimension(req.elevation);
		},

		_setElevationDimension: function(elevation) {

			var newElevation = elevation.value;
			this._currentDimensionValues.elevation = newElevation;

			this._applyElevationDimension();
		},

		_applyElevationDimension: function(req) {
		_applyElevationDimension: function() {

			if (!this.layer) {
				return;
+3 −1
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'src/component/atlas/_AtlasDimensionsManagement'
	, 'src/component/atlas/_AtlasLayersManagement'
	, 'src/redmicConfig'
], function(
	declare
	, lang
	, _AtlasDimensionsManagement
	, _AtlasLayersManagement
	, redmicConfig
) {

	return declare(_AtlasLayersManagement, {
	return declare([_AtlasDimensionsManagement, _AtlasLayersManagement], {
		//	summary:
		//		Extensión para el manejo de los datos de servicios OGC vinculados a actividades, permitiendo generar
		//		capas para el mapa y su control.