Mercurial > hg > digilib-old
comparison client/digitallibrary/jquery/jquery.digilib.js @ 633:73357f3dec20 jquery
rendering marks works now
| author | robcast |
|---|---|
| date | Tue, 18 Jan 2011 16:06:22 +0100 |
| parents | 4f7b52b97738 |
| children | 34ee220a664b |
comparison
equal
deleted
inserted
replaced
| 631:4f7b52b97738 | 633:73357f3dec20 |
|---|---|
| 211 settings : elemSettings | 211 settings : elemSettings |
| 212 }; | 212 }; |
| 213 // store in data element | 213 // store in data element |
| 214 $elem.data('digilib', data); | 214 $elem.data('digilib', data); |
| 215 } | 215 } |
| 216 unpackParams(data); | |
| 216 // create HTML structure | 217 // create HTML structure |
| 217 setupScalerDiv(data); | 218 setupScalerDiv(data); |
| 218 setupButtons(data, 'actionsStandard'); | 219 setupButtons(data, 'actionsStandard'); |
| 219 // bird's eye view creation - TODO: could be deferred? | 220 // bird's eye view creation - TODO: could be deferred? |
| 220 setupBirdviewDiv(data); | 221 setupBirdviewDiv(data); |
| 363 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); | 364 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); |
| 364 settings.zoomArea = zoomArea; | 365 settings.zoomArea = zoomArea; |
| 365 | 366 |
| 366 // read marks | 367 // read marks |
| 367 var marks = []; | 368 var marks = []; |
| 368 if (query.indexOf(";") >= 0) { | 369 var mk = settings.mk || ''; |
| 369 var pa = query.split(";"); // old format with ";" | 370 if (mk.indexOf(";") >= 0) { |
| 371 var pa = mk.split(";"); // old format with ";" | |
| 370 } else { | 372 } else { |
| 371 var pa = query.split(","); // new format | 373 var pa = mk.split(","); // new format |
| 372 } | 374 } |
| 373 for (var i = 0; i < pa.length ; i++) { | 375 for (var i = 0; i < pa.length ; i++) { |
| 374 var pos = pa[i].split("/"); | 376 var pos = pa[i].split("/"); |
| 375 if (pos.length > 1) marks.push(geom.position(pos[0], pos[1])); | 377 if (pos.length > 1) { |
| 378 marks.push(geom.position(pos[0], pos[1])); | |
| 379 } | |
| 376 } | 380 } |
| 377 settings.marks = marks; | 381 settings.marks = marks; |
| 378 }; | 382 }; |
| 379 | 383 |
| 380 // put objects back into parameters | 384 // put objects back into parameters |
| 547 $(this).digilib('toggleAboutDiv'); | 551 $(this).digilib('toggleAboutDiv'); |
| 548 }); | 552 }); |
| 549 }; | 553 }; |
| 550 | 554 |
| 551 // returns function for load event of scaler img | 555 // returns function for load event of scaler img |
| 552 var scalerImgLoadedFn = function(data) { | 556 var scalerImgLoadedFn = function (data) { |
| 553 var settings = data.settings; | 557 var settings = data.settings; |
| 554 var $elem = data.target; | 558 var $elem = data.target; |
| 555 var $img = data.img; | 559 var $img = data.img; |
| 556 | 560 |
| 557 return function() { | 561 return function () { |
| 558 console.debug("img loaded! this=", this, " data=", data); | 562 console.debug("img loaded! this=", this, " data=", data); |
| 559 var area = settings.zoomArea; | 563 var area = settings.zoomArea; |
| 560 // create Transform from current area and picsize | 564 // create Transform from current area and picsize |
| 561 var picpos = $img.offset(); | 565 var picpos = $img.offset(); |
| 562 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); | 566 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); |
| 567 // scale to screen size | 571 // scale to screen size |
| 568 trafo.concat(trafo.getScale(picrect)); | 572 trafo.concat(trafo.getScale(picrect)); |
| 569 trafo.concat(trafo.getTranslation(picrect)); | 573 trafo.concat(trafo.getTranslation(picrect)); |
| 570 data.imgTrafo = trafo; | 574 data.imgTrafo = trafo; |
| 571 // display marks | 575 // display marks |
| 572 //digilib.renderMarks(); | 576 renderMarks(data); |
| 573 //digilib.showBirdDiv(isBirdDivVisible); | 577 //digilib.showBirdDiv(isBirdDivVisible); |
| 574 //digilib.showArrows(); // show arrow overlays for zoom navigation | 578 //digilib.showArrows(); // show arrow overlays for zoom navigation |
| 575 | 579 |
| 576 }; | 580 }; |
| 581 }; | |
| 582 | |
| 583 // place marks on the image | |
| 584 var renderMarks = function (data) { | |
| 585 var $elem = data.target; | |
| 586 var marks = data.settings.marks; | |
| 587 for (var i = 0; i < marks.length; i++) { | |
| 588 var mark = marks[i]; | |
| 589 if (data.settings.zoomArea.containsPosition(mark)) { | |
| 590 var mpos = data.imgTrafo.transform(mark); | |
| 591 // create mark | |
| 592 var html = '<div class="mark">'+(i+1)+'</div>'; | |
| 593 var $mark = $(html); | |
| 594 $elem.append($mark); | |
| 595 $mark.offset({ left : mpos.x, top : mpos.y}); | |
| 596 } | |
| 597 } | |
| 577 }; | 598 }; |
| 578 | 599 |
| 579 // auxiliary function to crop senseless precision | 600 // auxiliary function to crop senseless precision |
| 580 var cropFloat = function (x) { | 601 var cropFloat = function (x) { |
| 581 return parseInt(10000 * x) / 10000; | 602 return parseInt(10000 * x) / 10000; |
