o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1380709799.0183198:@value"�{I" class:ETI"BundledAsset;�FI"logical_path;�TI"8Widgets/BaseLayerPicker/BaseLayerPickerViewModel.js;�TI" pathname;�TI"q/Users/bogumil/www/engines/cesium/app/assets/javascripts/Widgets/BaseLayerPicker/BaseLayerPickerViewModel.js;�FI"content_type;�TI"application/javascript;�TI" mtime;�TI"2013-10-02T12:16:28+02:00;�TI"length;�Ti~I"digest;�TI"%26284e9d92d925c7683d3c59214db18f;�FI"source;�TI"~/*global define*/ define(['Core/defined', 'Core/defineProperties', 'Core/DeveloperError', 'Widgets/createCommand', 'ThirdParty/knockout'], function( defined, defineProperties, DeveloperError, createCommand, knockout) { "use strict"; /** * The view model for {@link BaseLayerPicker}. * @alias BaseLayerPickerViewModel * @constructor * * @param {ImageryLayerCollection} imageryLayers The imagery layer collection to use. * @param {Array} [imageryProviderViewModels=[]] The array of ImageryProviderViewModel instances to use. * * @exception {DeveloperError} imageryLayers is required. * @exception {DeveloperError} imageryProviderViewModels must be an array. * * @see ImageryProviderViewModel */ var BaseLayerPickerViewModel = function(imageryLayers, imageryProviderViewModels) { if (!defined(imageryLayers)) { throw new DeveloperError('imageryLayers is required'); } if (!defined(imageryProviderViewModels)) { imageryProviderViewModels = []; } else if (!Array.isArray(imageryProviderViewModels)) { throw new DeveloperError('imageryProviderViewModels must be an array'); } var that = this; this._imageryLayers = imageryLayers; /** * Gets or sets an array of ImageryProviderViewModel instances available for selection. * This property is observable. * @type {Array} */ this.imageryProviderViewModels = imageryProviderViewModels.slice(0); /** * Gets or sets whether the imagery selection drop-down is currently visible. * @type {Boolean} * @default false */ this.dropDownVisible = false; knockout.track(this, ['imageryProviderViewModels', 'dropDownVisible']); /** * Gets the currently selected item name. This property is observable. * @type {String} * @default undefined */ this.selectedName = undefined; knockout.defineProperty(this, 'selectedName', function() { var selected = that.selectedItem; return defined(selected) ? selected.name : undefined; }); /** * Gets the image url of the currently selected item. This property is observable. * @type {String} * @default undefined */ this.selectedIconUrl = undefined; knockout.defineProperty(this, 'selectedIconUrl', function() { var viewModel = that.selectedItem; return defined(viewModel) ? viewModel.iconUrl : undefined; }); /** * Gets or sets the currently selected item. This property is observable. * @type {ImageryProviderViewModel} * @default undefined */ this.selectedItem = undefined; var selectedViewModel = knockout.observable(); this._currentProviders = []; knockout.defineProperty(this, 'selectedItem', { get : function() { return selectedViewModel(); }, set : function(value) { var i; var currentProviders = that._currentProviders; var currentProvidersLength = currentProviders.length; for (i = 0; i < currentProvidersLength; i++) { var layersLength = imageryLayers.getLength(); for ( var x = 0; x < layersLength; x++) { var layer = imageryLayers.get(x); if (layer.getImageryProvider() === currentProviders[i]) { imageryLayers.remove(layer); break; } } } if (defined(value)) { var newProviders = value.creationCommand(); if (Array.isArray(newProviders)) { var newProvidersLength = newProviders.length; for (i = newProvidersLength - 1; i >= 0; i--) { imageryLayers.addImageryProvider(newProviders[i], 0); } that._currentProviders = newProviders.slice(0); } else { that._currentProviders = [newProviders]; imageryLayers.addImageryProvider(newProviders, 0); } selectedViewModel(value); } that.dropDownVisible = false; } }); this._toggleDropDown = createCommand(function() { that.dropDownVisible = !that.dropDownVisible; }); }; defineProperties(BaseLayerPickerViewModel.prototype, { /** * Gets the command to toggle the visibility of the drop down. * @memberof BaseLayerPickerViewModel.prototype * * @type {Command} */ toggleDropDown : { get : function() { return this._toggleDropDown; } }, /** * Gets the imagery layer collection. * @memberof BaseLayerPickerViewModel.prototype * * @type {ImageryLayerCollection} */ imageryLayers : { get : function() { return this._imageryLayers; } } }); return BaseLayerPickerViewModel; }); ;�TI"required_assets_digest;�TI"%3b1e74a928c9d6189beac980ae6ac71b;�FI" _version;�TI"%6776f581a4329e299531e1d52aa59832;�F