Commit 1d3bad95 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Implementa GetFeatureInfo (WMS) desde actividades

Unifica obtención de definición y configuración de capas en base común.
Hasta ahora se generaban desde el módulo Atlas, pero se ha refactorizado
en la base de gestión de capas WMS para reutilizar la funcionalidad
desde la vista detalle de actividades.
parent de1632e4
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ define([
	, "app/designs/mapWithSideContent/main/Geographic"
	, "dojo/_base/declare"
	, "dojo/_base/lang"
	, 'redmic/modules/map/layer/WmsLayerImpl'
	, 'templates/ActivityLayerList'
], function(
	_ListenActivityDataAndAccessByActivityCategory
@@ -16,7 +15,6 @@ define([
	, Geographic
	, declare
	, lang
	, WmsLayerImpl
	, ActivityLayerList
) {

@@ -68,20 +66,6 @@ define([
					}
				}
			}, this.widgetConfigs || {}]);

			this.layerConfig = this._merge([{
				idProperty: 'uuid',
				parentChannel: this.getChannel()
			}, this.layerConfig || {}]);
		},

		_initialize: function() {

			if (!this.definitionLayer) {
				this.definitionLayer = [WmsLayerImpl];
			}

			this._layerDefinition = declare(this.definitionLayer);
		},

		_clearModules: function() {
+16 −24
Original line number Diff line number Diff line
@@ -4,14 +4,12 @@ define([
	, 'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'redmic/modules/map/_AtlasLayersManagement'
	, 'redmic/modules/map/layer/WmsLayerImpl'
], function(
	ActivityLayerMap
	, redmicConfig
	, declare
	, lang
	, _AtlasLayersManagement
	, WmsLayerImpl
) {

	return declare([ActivityLayerMap, _AtlasLayersManagement], {
@@ -25,7 +23,6 @@ define([
				templateTargetChange: 'activityLayers',
				layerTarget: redmicConfig.services.atlasLayer,
				activityCategory: ['ml'],
				definitionLayer: [WmsLayerImpl],
				_activityLayers: {}
			};

@@ -64,6 +61,12 @@ define([

		_onLayerActivitiesData: function(resWrapper) {

			var widgetInstance = this._getWidgetInstance('geographic');

			if (!widgetInstance) {
				return;
			}

			var data = resWrapper.res.data,
				layers = data.data || [];

@@ -76,7 +79,7 @@ define([

			for (var i = 0; i < layers.length; i++) {
				var layer = layers[i];
				this._createLayer(layer);
				this._createLayer(widgetInstance, layer);

				if (i === 0) {
					var layerId = layer.id;
@@ -85,29 +88,18 @@ define([
			}
		},

		_createLayer: function(layer) {

			var widgetInstance = this._getWidgetInstance('geographic');
		_createLayer: function(widgetInstance, layer) {

			if (!widgetInstance) {
				return;
			}
			var layerDefinition = this._getAtlasLayerDefinition(),
				layerConfiguration = this._getAtlasLayerConfiguration(layer);

			var layerDefinition = this._getLayerDefinitionByProtocol(layer);

			this.layerConfig = this._merge([
				{
			layerConfiguration = this._merge([layerConfiguration, {
				mapChannel: widgetInstance.getChildChannel('map'),
				selectorChannel: widgetInstance.getChannel()
				},
				this.layerConfig || {},
				{
					layerDefinition: layerDefinition
				}
			]);
			}]);

			var mapLayerInstance = new this._layerDefinition(this.layerConfig),
				mapLayerId = layer.id;
			var mapLayerInstance = new layerDefinition(layerConfiguration),
				mapLayerId = this._getAtlasLayerId(layer);

			this._activityLayers[mapLayerId] = mapLayerInstance;
		},
+8 −28
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@ define([
	, "redmic/modules/layout/dataDisplayer/DataDisplayer"
	, "redmic/modules/layout/templateDisplayer/TemplateDisplayer"
	, 'redmic/modules/map/_AtlasLayersManagement'
	, "redmic/modules/map/layer/_PublishInfo"
	, "redmic/modules/map/layer/WmsLayerImpl"
	, "templates/AtlasList"
	, "templates/LoadingCustom"
	, "templates/ServiceOGCAtlasList"
@@ -50,8 +48,6 @@ define([
	, DataDisplayer
	, TemplateDisplayer
	, _AtlasLayersManagement
	, _PublishInfo
	, WmsLayerImpl
	, ListTemplate
	, LoadingCustom
	, serviceOGCList
@@ -84,8 +80,6 @@ define([
				selectionTarget: redmicConfig.services.atlasLayerSelection,
				pathSeparator: ".",
				parentProperty: "parent",
				layerIdSeparator: "_",
				themeSeparator: "-",
				showBrowserAnimationClass: "animated fadeIn",
				hideBrowserAnimationClass: "animated fadeOut",

@@ -434,32 +428,25 @@ define([
				return;
			}

			var itemId = item.id;
			var itemId = this._getAtlasLayerId(item);

			if (this._layerIdsById[itemId]) {
				return;
			}

			var layerId = this._createLayerId(item),
				layerLabel = item.alias || item.title,
				layerDefinition = this._getLayerDefinitionByProtocol(item);
			var layerDefinition = this._getAtlasLayerDefinition(),
				layerConfiguration = this._getAtlasLayerConfiguration(item),
				layerLabel = layerConfiguration.layerLabel;

			layerConfiguration.mapChannel = this.getMapChannel();

			var data = {
				id: itemId,
				label: layerLabel,
				originalItem: item,
				layer: {
					definition: declare([WmsLayerImpl, _PublishInfo]),
					props: {
						parentChannel: this.getChannel(),
						mapChannel: this.getMapChannel(),
						layerDefinition: layerDefinition,
						styleLayer: item.styleLayer,
						queryable: item.queryable,
						layerId: layerId,
						layerLabel: layerLabel,
						refresh: item.refresh
					}
					definition: layerDefinition,
					props: layerConfiguration
				}
			};

@@ -635,13 +622,6 @@ define([
			});
		},

		_createLayerId: function(item) {

			var themeInspire = item.themeInspire ? item.themeInspire.code : 'default';

			return themeInspire + this.themeSeparator + item.name + this.layerIdSeparator + item.id;
		},

		_getLayerInstance: function(id, layerId, definition, props) {

			var layer = this._layerInstances[layerId];
+45 −0
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'redmic/modules/map/layer/_PublishInfo'
	, 'redmic/modules/map/layer/WmsLayerImpl'
], function(
	declare
	, lang
	, _PublishInfo
	, WmsLayerImpl
) {

	return declare(null, {
@@ -14,6 +18,8 @@ define([
		constructor: function(args) {

			this.config = {
				layerIdSeparator: '_',
				themeSeparator: '-'
			};

			lang.mixin(this, this.config, args);
@@ -203,6 +209,45 @@ define([
			}

			return 'image/jpeg';
		},

		_getAtlasLayerDefinition: function() {

			return declare([WmsLayerImpl, _PublishInfo]);
		},

		_getAtlasLayerConfiguration: function(layerItem) {

			var layerId = this._createLayerId(layerItem),
				layerLabel = this._createLayerLabel(layerItem),
				layerDefinition = this._getLayerDefinitionByProtocol(layerItem);

			return {
				parentChannel: this.getChannel(),
				layerDefinition: layerDefinition,
				styleLayer: layerItem.styleLayer,
				queryable: layerItem.queryable,
				layerId: layerId,
				layerLabel: layerLabel,
				refresh: layerItem.refresh
			};
		},

		_getAtlasLayerId: function(layerItem) {

			return layerItem && layerItem.id;
		},

		_createLayerId: function(layerItem) {

			var themeInspire = layerItem.themeInspire ? layerItem.themeInspire.code : 'default';

			return themeInspire + this.themeSeparator + layerItem.name + this.layerIdSeparator + layerItem.id;
		},

		_createLayerLabel: function(layerItem) {

			return layerItem.alias || layerItem.title;
		}
	});
});