mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-01-19 17:21:50 +03:00
Navigator now updates when items are moved
This commit is contained in:
parent
c0163f7d6b
commit
f1610425bc
@ -245,14 +245,10 @@ $.Navigator = function( options ){
|
|||||||
});
|
});
|
||||||
|
|
||||||
viewer.world.addHandler("remove-item", function(event) {
|
viewer.world.addHandler("remove-item", function(event) {
|
||||||
var count = _this.world.getItemCount();
|
var theirItem = event.item;
|
||||||
var item;
|
var myItem = _this._getMatchingItem(theirItem);
|
||||||
for (var i = 0; i < count; i++) {
|
if (myItem) {
|
||||||
item = _this.world.getItemAt(i);
|
_this.world.removeItem(myItem);
|
||||||
if (item._originalForNavigator === event.item) {
|
|
||||||
_this.world.removeItem(item);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -343,16 +339,45 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
|
|||||||
|
|
||||||
// overrides Viewer.addTiledImage
|
// overrides Viewer.addTiledImage
|
||||||
addTiledImage: function(options) {
|
addTiledImage: function(options) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
var original = options.originalTiledImage;
|
var original = options.originalTiledImage;
|
||||||
delete options.original;
|
delete options.original;
|
||||||
|
|
||||||
var optionsClone = $.extend({}, options, {
|
var optionsClone = $.extend({}, options, {
|
||||||
success: function(event) {
|
success: function(event) {
|
||||||
event.item._originalForNavigator = original;
|
var myItem = event.item;
|
||||||
|
myItem._originalForNavigator = original;
|
||||||
|
_this._matchBounds(myItem, original, true);
|
||||||
|
|
||||||
|
original.addHandler('bounds-change', function() {
|
||||||
|
_this._matchBounds(myItem, original);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return $.Viewer.prototype.addTiledImage.apply(this, [optionsClone]);
|
return $.Viewer.prototype.addTiledImage.apply(this, [optionsClone]);
|
||||||
|
},
|
||||||
|
|
||||||
|
// private
|
||||||
|
_getMatchingItem: function(theirItem) {
|
||||||
|
var count = this.world.getItemCount();
|
||||||
|
var item;
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
item = this.world.getItemAt(i);
|
||||||
|
if (item._originalForNavigator === theirItem) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
|
||||||
|
// private
|
||||||
|
_matchBounds: function(myItem, theirItem, immediately) {
|
||||||
|
var bounds = theirItem.getBounds();
|
||||||
|
myItem.setPosition(bounds.getTopLeft(), immediately);
|
||||||
|
myItem.setWidth(bounds.width, immediately);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
var testInitialOpen = true;
|
var testInitialOpen = true;
|
||||||
var testOverlays = false;
|
var testOverlays = false;
|
||||||
var testMargins = false;
|
var testMargins = false;
|
||||||
var testNavigator = false;
|
var testNavigator = true;
|
||||||
var margins;
|
var margins;
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user