2
* @fileOverview Contains the class definition for an EventLayerManager class.
3
* @author <a href="mailto:keith.hughitt@nasa.gov">Keith Hughitt</a>
5
* @requires EventManager
7
/*jslint browser: true, white: true, onevar: true, undef: true, nomen: false, eqeqeq: true, plusplus: true,
8
bitwise: true, regexp: true, strict: true, newcap: true, immed: true, maxlen: 120, sub: true */
9
/*global Helioviewer, LayerManager, TileLayer, Layer, $ */
11
var EventLayerManager = EventManager.extend(
12
/** @lends EventLayerManager.prototype */
16
* @description Creates a new EventLayerManager instance
18
init: function (requestDate, defaultEventTypes, viewportScale, rsun,
19
savedEventLayers, urlEventLayers) {
21
this._eventLayers = [];
23
this._eventMarkers = [];
24
this._treeContainer = $("#eventJSTree");
25
this._eventTypes = {};
26
this._jsTreeData = [];
28
if ( typeof date == 'undefined' ) {
29
var date = requestDate;
33
this._requestDate = requestDate;
34
this.defaultEventTypes = defaultEventTypes;
35
this.viewportScale = viewportScale;
38
$(document).bind("event-layer-finished-loading", $.proxy(this.updateMaxDimensions, this))
39
.bind("save-event-layers", $.proxy(this.save, this))
40
.bind("add-new-event-layer", $.proxy(this.addNewLayer, this))
41
.bind("remove-event-layer", $.proxy(this._onLayerRemove, this));
45
* @description Updates the list of loaded event layers stored in
46
* localStorage and cookies
49
var eventLayers = this.toJSON();
50
Helioviewer.userSettings.set("state.eventLayers", eventLayers);
54
* Remove a specified layer
56
_onLayerRemove: function (event, id) {
60
getRequestDateAsISOString: function () {
61
return this._requestDate.toISOString();