comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:b57c7821382f
1 /*
2 * Loader.js
3 *
4 * Copyright (c) 2012, Stefan Jänicke. All rights reserved.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301 USA
20 */
21
22 /**
23 * Script Loader for GeoTemCo (used for debugging purposes)
24 * @author Stefan Jänicke (stjaenicke@informatik.uni-leipzig.de)
25 * @release 1.0
26 * @release date: 2012-07-27
27 * @version date: 2012-07-27
28 */
29
30 var arrayIndex = function(array, obj) {
31 return $.inArray(obj, array);
32 }
33 GeoTemCoLoader = {
34
35 resolveUrlPrefix : function(file) {
36 var sources = document.getElementsByTagName("script");
37 for (var i = 0; i < sources.length; i++) {
38 var index = sources[i].src.indexOf(file);
39 if (index != -1) {
40 return sources[i].src.substring(0, index);
41 }
42 }
43 },
44
45 load : function() {
46 GeoTemCoLoader.startTime = new Date();
47 GeoTemCoLoader.urlPrefix = GeoTemCoLoader.resolveUrlPrefix('js/Build/Loader/Loader.js');
48 (new DynaJsLoader()).loadScripts([{
49 url : GeoTemCoLoader.urlPrefix + 'js/Build/Loader/TimeplotLoader.js'
50 }], GeoTemCoLoader.loadJquery);
51 },
52
53 loadJquery : function() {
54 if (typeof jQuery == 'undefined') {
55 (new DynaJsLoader()).loadScripts([{
56 url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery.min.js'
57 },{
58 url : GeoTemCoLoader.urlPrefix + 'lib/jquery/purl.min.js'
59 },{
60 url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery.remember.js'
61 },{
62 url : GeoTemCoLoader.urlPrefix + 'lib/jquery/jquery-deparam.min.js'
63 },],GeoTemCoLoader.loadFlot);
64 }
65 else {
66 GeoTemCoLoader.loadFlot();
67 }
68 },
69
70 loadFlot : function() {
71 if (typeof $.plot == 'undefined') {
72 (new DynaJsLoader()).loadScripts([{
73 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.js'
74 },{
75 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.resize.js'
76 },{
77 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.pie.js'
78 },{
79 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.selection.js'
80 },{
81 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.time.js'
82 },{
83 url : GeoTemCoLoader.urlPrefix + 'lib/flot/jquery.flot.tooltip.js'
84 }],GeoTemCoLoader.loadMomentJS);
85 }
86 else {
87 GeoTemCoLoader.loadMomentJS();
88 }
89 },
90
91 loadMomentJS : function() {
92 if (typeof moment == 'undefined') {
93 (new DynaJsLoader()).loadScripts([{
94 url : GeoTemCoLoader.urlPrefix + 'lib/momentjs/moment.js'
95 }],GeoTemCoLoader.loadJSZip);
96 }
97 else {
98 GeoTemCoLoader.loadJSZip();
99 }
100 },
101
102 loadJSZip : function() {
103 if (typeof JSZip == 'undefined') {
104 var jsZipFiles = [{
105 url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip.js'
106 }, {
107 url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-deflate.js',
108 }, {
109 url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-inflate.js'
110 }, {
111 url : GeoTemCoLoader.urlPrefix + 'lib/jszip/jszip-load.js',
112 }];
113
114 (new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loaduCSV);
115 }
116 else {
117 GeoTemCoLoader.loaduCSV();
118 }
119 },
120
121 loaduCSV : function() {
122 if (typeof CSV == 'undefined') {
123 var jsZipFiles = [{
124 url : GeoTemCoLoader.urlPrefix + 'lib/ucsv/ucsv-1.1.0-min.js',
125 }];
126
127 (new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loadJqueryUI);
128 }
129 else {
130 GeoTemCoLoader.loadJqueryUI();
131 }
132 },
133
134 loadJqueryUI : function() {
135 if (typeof jQuery.ui == 'undefined') {
136 var jsZipFiles = [{
137 url : GeoTemCoLoader.urlPrefix + 'lib/jquery-ui/jquery-ui-1.10.3.custom.js'
138 }];
139
140 $('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', GeoTemCoLoader.urlPrefix + 'lib/jquery-ui/jquery-ui-1.10.3.custom.css') );
141
142 (new DynaJsLoader()).loadScripts(jsZipFiles, GeoTemCoLoader.loadTimeplot);
143 }
144 else {
145 GeoTemCoLoader.loadTimeplot();
146 }
147 },
148
149 loadTimeplot : function() {
150 var jsFiles = [{
151 url : GeoTemCoLoader.urlPrefix + 'lib/SimileRemnants.js'
152 }];
153
154 (new DynaJsLoader()).loadScripts(jsFiles, GeoTemCoLoader.loadScripts);
155 },
156
157 loadScripts : function() {
158
159 SimileAjax.includeCssFile(document, GeoTemCoLoader.urlPrefix + 'css/style.css');
160 SimileAjax.includeCssFile(document, GeoTemCoLoader.urlPrefix + 'lib/openlayers/theme/default/style.css');
161
162 (new DynaJsLoader()).loadScripts([{
163 url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/range.js'
164 }]);
165 (new DynaJsLoader()).loadScripts([{
166 url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/slider.js'
167 }]);
168 (new DynaJsLoader()).loadScripts([{
169 url : GeoTemCoLoader.urlPrefix + 'lib/slider/js/timer.js'
170 }]);
171 // SIMILE was removed (see above in "loadTimeplot")
172 /*
173 (new DynaJsLoader()).loadScripts([{
174 url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'SimileTimeplotModify.js'
175 }]);
176 */
177 (new DynaJsLoader()).loadScripts([{
178 url : GeoTemCoLoader.urlPrefix + 'lib/' + 'openlayers/' + 'OpenLayers.js'
179 }]);
180
181 var geoTemCoFiles = [{
182 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Tooltips.js'
183 }, {
184 url : GeoTemCoLoader.urlPrefix + 'js/' + 'GeoTemConfig.js',
185 test : "GeoTemConfig.loadKml"
186 }, {
187 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapControl.js',
188 }, {
189 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'CircleObject.js',
190 }, {
191 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'FilterBar.js',
192 }, {
193 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Selection.js',
194 }, {
195 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'PlacenameTags.js',
196 }, {
197 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapConfig.js',
198 }, {
199 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapGui.js',
200 }, {
201 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapWidget.js',
202 }, {
203 url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeConfig.js',
204 }, {
205 url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeGui.js',
206 }, {
207 url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeWidget.js',
208 }, {
209 url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableConfig.js',
210 }, {
211 url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableGui.js',
212 }, {
213 url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'TableWidget.js',
214 }, {
215 url : GeoTemCoLoader.urlPrefix + 'js/Table/' + 'Table.js',
216 }, {
217 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'DataObject.js',
218 }, {
219 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Dataset.js',
220 }, {
221 url : GeoTemCoLoader.urlPrefix + 'js/Time/' + 'TimeDataSource.js',
222 }, {
223 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'Binning.js',
224 }, {
225 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapDataSource.js',
226 }, {
227 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'Clustering.js',
228 }, {
229 url : GeoTemCoLoader.urlPrefix + 'js/Util/' + 'Dropdown.js',
230 }, {
231 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapZoomSlider.js',
232 }, {
233 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'MapPopup.js',
234 }, {
235 url : GeoTemCoLoader.urlPrefix + 'js/Map/' + 'PlacenamePopup.js',
236 }, {
237 url : GeoTemCoLoader.urlPrefix + 'js/Util/Publisher.js',
238 }, {
239 url : GeoTemCoLoader.urlPrefix + 'js/Util/WidgetWrapper.js',
240 }, {
241 url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderConfig.js',
242 }, {
243 url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderGui.js',
244 }, {
245 url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'DataloaderWidget.js',
246 }, {
247 url : GeoTemCoLoader.urlPrefix + 'js/Dataloader/' + 'Dataloader.js',
248 }, {
249 url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderConfig.js',
250 }, {
251 url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderGui.js',
252 }, {
253 url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'OverlayloaderWidget.js',
254 }, {
255 url : GeoTemCoLoader.urlPrefix + 'js/Overlayloader/' + 'Overlayloader.js',
256 }, {
257 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartConfig.js',
258 }, {
259 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartGui.js',
260 }, {
261 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartWidget.js',
262 }, {
263 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChart.js',
264 }, {
265 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartCategoryChooser.js',
266 }, {
267 url : GeoTemCoLoader.urlPrefix + 'js/PieChart/' + 'PieChartHashFunctions.js',
268 }, {
269 url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableConfig.js',
270 }, {
271 url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableGui.js',
272 }, {
273 url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'PlacetableWidget.js',
274 }, {
275 url : GeoTemCoLoader.urlPrefix + 'js/Placetable/' + 'Placetable.js',
276 }, {
277 url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlayConfig.js',
278 }, {
279 url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlayWidget.js',
280 }, {
281 url : GeoTemCoLoader.urlPrefix + 'js/LineOverlay/' + 'LineOverlay.js',
282 }, {
283 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineConfig.js',
284 }, {
285 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineGui.js',
286 }, {
287 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineWidget.js',
288 }, {
289 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineDensity.js',
290 }, {
291 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangeSlider.js',
292 }, {
293 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangePiechart.js',
294 }, {
295 url : GeoTemCoLoader.urlPrefix + 'js/FuzzyTimeline/' + 'FuzzyTimelineRangeBars.js',
296 }, {
297 url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingConfig.js',
298 }, {
299 url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingGui.js',
300 }, {
301 url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'StorytellingWidget.js',
302 }, {
303 url : GeoTemCoLoader.urlPrefix + 'js/Storytelling/' + 'Storytelling.js',
304 }];
305 (new DynaJsLoader()).loadScripts(geoTemCoFiles, GeoTemCoLoader.initGeoTemCo);
306
307 },
308
309 initGeoTemCo : function() {
310
311 GeoTemConfig.configure(GeoTemCoLoader.urlPrefix);
312 Publisher.Publish('GeoTemCoReady', '', null);
313
314 //TODO: find more appropriate position for this
315 $(window).resize(function() {
316 Publisher.Publish("resizeWidget");
317 });
318 }
319 }
320
321 GeoTemCoLoader.load();