Mercurial > hg > digilib-old
comparison client/digitallibrary/jquery/jquery.digilib.js @ 631:4f7b52b97738 jquery
more work on initialisation
author | robcast |
---|---|
date | Tue, 18 Jan 2011 15:04:44 +0100 |
parents | b426efcc8a8e |
children | 73357f3dec20 |
comparison
equal
deleted
inserted
replaced
629:b426efcc8a8e | 631:4f7b52b97738 |
---|---|
352 // add parm=val | 352 // add parm=val |
353 paramString += key + '=' + settings[key]; | 353 paramString += key + '=' + settings[key]; |
354 }; | 354 }; |
355 } | 355 } |
356 return paramString; | 356 return paramString; |
357 }; | 357 }; |
358 | 358 |
359 // processes some parameters into objects and stuff | |
360 var unpackParams = function (data) { | |
361 var settings = data.settings; | |
362 // read zoom area | |
363 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); | |
364 settings.zoomArea = zoomArea; | |
365 | |
366 // read marks | |
367 var marks = []; | |
368 if (query.indexOf(";") >= 0) { | |
369 var pa = query.split(";"); // old format with ";" | |
370 } else { | |
371 var pa = query.split(","); // new format | |
372 } | |
373 for (var i = 0; i < pa.length ; i++) { | |
374 var pos = pa[i].split("/"); | |
375 if (pos.length > 1) marks.push(geom.position(pos[0], pos[1])); | |
376 } | |
377 settings.marks = marks; | |
378 }; | |
379 | |
380 // put objects back into parameters | |
381 var packParams = function (data) { | |
382 var settings = data.settings; | |
383 if (settings.zoomArea) { | |
384 settings.wx = settings.zoomArea.x; | |
385 settings.wy = settings.zoomArea.y; | |
386 settings.ww = settings.zoomArea.width; | |
387 settings.wh = settings.zoomArea.height; | |
388 } | |
389 if (settings.marks) { | |
390 var ma = []; | |
391 for (var i = 0; i < settings.marks.length; i++) { | |
392 ma.push(cropFloat(settings.marks[i].x) + "/" + cropFloat(settings.marks[i].y)); | |
393 } | |
394 settings.mk = ma.join(","); | |
395 } | |
396 }; | |
397 | |
359 // returns URL and query string for Scaler | 398 // returns URL and query string for Scaler |
360 var getScalerString = function (settings) { | 399 var getScalerString = function (settings) { |
361 var keys = settings.scalerParamNames; | 400 var keys = settings.scalerParamNames; |
362 var queryString = getParamString(settings, keys); | 401 var queryString = getParamString(settings, keys); |
363 var url = settings.scalerBaseUrl + '?' + queryString; | 402 var url = settings.scalerBaseUrl + '?' + queryString; |
515 var $elem = data.target; | 554 var $elem = data.target; |
516 var $img = data.img; | 555 var $img = data.img; |
517 | 556 |
518 return function() { | 557 return function() { |
519 console.debug("img loaded! this=", this, " data=", data); | 558 console.debug("img loaded! this=", this, " data=", data); |
520 var area = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); | 559 var area = settings.zoomArea; |
521 settings.zoomArea = area; | |
522 // create Transform from current area and picsize | 560 // create Transform from current area and picsize |
523 var picpos = $img.offset(); | 561 var picpos = $img.offset(); |
524 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); | 562 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); |
525 var trafo = geom.transform(); | 563 var trafo = geom.transform(); |
526 // subtract area offset and size | 564 // subtract area offset and size |
535 //digilib.showBirdDiv(isBirdDivVisible); | 573 //digilib.showBirdDiv(isBirdDivVisible); |
536 //digilib.showArrows(); // show arrow overlays for zoom navigation | 574 //digilib.showArrows(); // show arrow overlays for zoom navigation |
537 | 575 |
538 }; | 576 }; |
539 }; | 577 }; |
578 | |
579 // auxiliary function to crop senseless precision | |
580 var cropFloat = function (x) { | |
581 return parseInt(10000 * x) / 10000; | |
582 }; | |
583 | |
540 // hook plugin into jquery | 584 // hook plugin into jquery |
541 $.fn.digilib = function(method) { | 585 $.fn.digilib = function(method) { |
542 if (methods[method]) { | 586 if (methods[method]) { |
543 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); | 587 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); |
544 } else if (typeof(method) === 'object' || !method) { | 588 } else if (typeof(method) === 'object' || !method) { |