diff lib/GeoTemCo/js/Build/Loader/Loader.js @ 0:b57c7821382f

initial
author Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de>
date Thu, 28 May 2015 10:28:12 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/GeoTemCo/js/Build/Loader/Loader.js	Thu May 28 10:28:12 2015 +0200
@@ -0,0 +1,321 @@
+/*
+* Loader.js
+*
+* Copyright (c) 2012, Stefan Jänicke. All rights reserved.
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA 02110-1301  USA
+*/
+
+/**
+ * Script Loader for GeoTemCo (used for debugging purposes)
+ * @author Stefan Jänicke (stjaenicke@informatik.uni-leipzig.de)
+ * @release 1.0
+ * @release date: 2012-07-27
+ * @version date: 2012-07-27
+ */
+
+var arrayIndex = function(array, obj) {
+	return $.inArray(obj, array);
+}
+GeoTemCoLoader = {
+
+	resolveUrlPrefix : function(file) {
+		var sources = document.getElementsByTagName("script");
+		for (var i = 0; i < sources.length; i++) {
+			var index = sources[i].src.indexOf(file);
+			if (index != -1) {
+				return sources[i].src.substring(0, index);
+			}
+		}
+	},
+
+	load : function() {
+		GeoTemCoLoader.startTime = new Date();
+		GeoTemCoLoader.urlPrefix = GeoTemCoLoader.resolveUrlPrefix('js/Build/Loader/Loader.js');
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'js/Build/Loader/TimeplotLoader.js'
+		}], GeoTemCoLoader.loadJquery);
+	},
+
+	loadJquery : function() {
+		if (typeof jQuery == 'undefined') {
+			(new DynaJsLoader()).loadScripts([{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery.min.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jquery/purl.min.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery.remember.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery-deparam.min.js'
+			},],GeoTemCoLoader.loadFlot);
+		}
+		else {
+			GeoTemCoLoader.loadFlot();
+		}
+	},
+	
+	loadFlot : function() {
+		if (typeof $.plot == 'undefined') {
+			(new DynaJsLoader()).loadScripts([{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.resize.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.pie.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.selection.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.time.js'
+			},{
+				url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.tooltip.js'
+			}],GeoTemCoLoader.loadMomentJS);
+		}
+		else {
+			GeoTemCoLoader.loadMomentJS();
+		}
+	},
+	
+	loadMomentJS : function() {
+		if (typeof moment == 'undefined') {
+			(new DynaJsLoader()).loadScripts([{
+				url : GeoTemCoLoader.urlPrefix + 'lib/momentjs/moment.js'
+			}],GeoTemCoLoader.loadJSZip);
+		}
+		else {
+			GeoTemCoLoader.loadJSZip();
+		}
+	},
+	
+	loadJSZip : function() {
+		if (typeof JSZip == 'undefined') {
+			var jsZipFiles = [{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip.js'
+			}, {
+				url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-deflate.js',
+			}, {
+				url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-inflate.js'
+			}, {
+				url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-load.js',
+			}];
+			
+			(new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loaduCSV);
+		}
+		else {
+			GeoTemCoLoader.loaduCSV();
+		}
+	},
+
+	loaduCSV : function() {
+		if (typeof CSV == 'undefined') {
+			var jsZipFiles = [{
+				url : GeoTemCoLoader.urlPrefix + 'lib/ucsv/ucsv-1.1.0-min.js',
+			}];
+			
+			(new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loadJqueryUI);
+		}
+		else {
+			GeoTemCoLoader.loadJqueryUI();
+		}
+	},
+
+	loadJqueryUI : function() {
+		if (typeof jQuery.ui == 'undefined') {
+			var jsZipFiles = [{
+				url : GeoTemCoLoader.urlPrefix + 'lib/jquery-ui/jquery-ui-1.10.3.custom.js'
+			}];
+			
+			$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', GeoTemCoLoader.urlPrefix + 'lib/jquery-ui/jquery-ui-1.10.3.custom.css') );
+			
+			(new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loadTimeplot);
+		}
+		else {
+			GeoTemCoLoader.loadTimeplot();
+		}
+	},
+
+	loadTimeplot : function() {
+		var jsFiles = [{
+			url : GeoTemCoLoader.urlPrefix + 'lib/SimileRemnants.js'
+		}];
+		
+		(new DynaJsLoader()).loadScripts(jsFiles, GeoTemCoLoader.loadScripts);
+	},
+
+	loadScripts : function() {
+
+		SimileAjax.includeCssFile(document, GeoTemCoLoader.urlPrefix + 'css/style.css');
+		SimileAjax.includeCssFile(document, GeoTemCoLoader.urlPrefix + 'lib/openlayers/theme/default/style.css');
+
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/range.js'
+		}]);
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/slider.js'
+		}]);
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/timer.js'
+		}]);
+		// SIMILE was removed (see above in "loadTimeplot")
+		/*
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'SimileTimeplotModify.js'
+		}]);
+		*/
+		(new DynaJsLoader()).loadScripts([{
+			url : GeoTemCoLoader.urlPrefix + 'lib/' + 'openlayers/' + 'OpenLayers.js'
+		}]);
+
+		var geoTemCoFiles = [{
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Tooltips.js'
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/' + 'GeoTemConfig.js',
+			test : "GeoTemConfig.loadKml"
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapControl.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'CircleObject.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'FilterBar.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Selection.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'PlacenameTags.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'Table.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'DataObject.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Dataset.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeDataSource.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'Binning.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapDataSource.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'Clustering.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Dropdown.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapZoomSlider.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapPopup.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'PlacenamePopup.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/Publisher.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Util/WidgetWrapper.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'Dataloader.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'Overlayloader.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChart.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartCategoryChooser.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartHashFunctions.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'Placetable.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlayConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlayWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlay.js',
+		}, {			
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineDensity.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangeSlider.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangePiechart.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangeBars.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingConfig.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingGui.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingWidget.js',
+		}, {
+			url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'Storytelling.js',
+		}];
+		(new DynaJsLoader()).loadScripts(geoTemCoFiles, GeoTemCoLoader.initGeoTemCo);
+
+	},
+
+	initGeoTemCo : function() {
+
+		GeoTemConfig.configure(GeoTemCoLoader.urlPrefix);
+		Publisher.Publish('GeoTemCoReady', '', null);
+		
+		//TODO: find more appropriate position for this
+		$(window).resize(function() {
+		    Publisher.Publish("resizeWidget");
+		});
+	}
+}
+
+GeoTemCoLoader.load();