mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-01-31 23:21:42 +03:00
addresses #54, dont use openDZI, use open. openDZI now calls open. all the details of tileHost were already handled in DZITileSource.configure. $.createFromDZI is fully deprecated and will throw an error.
This commit is contained in:
parent
eff17208e0
commit
266f33094c
@ -315,8 +315,9 @@ function configureFromObject( tileSource, configuration ){
|
||||
));
|
||||
}
|
||||
|
||||
delete configuration.Image;
|
||||
|
||||
return {
|
||||
return $.extend(true, {
|
||||
width: width, /* width *required */
|
||||
height: height, /* height *required */
|
||||
tileSize: tileSize, /* tileSize *required */
|
||||
@ -326,7 +327,7 @@ function configureFromObject( tileSource, configuration ){
|
||||
tilesUrl: tilesUrl, /* tilesUrl */
|
||||
fileFormat: fileFormat, /* fileFormat */
|
||||
displayRects: displayRects /* displayRects */
|
||||
};
|
||||
}, configuration );
|
||||
|
||||
}
|
||||
|
||||
|
@ -242,7 +242,7 @@ $.extend( $.Navigator.prototype, $.EventHandler.prototype, $.Viewer.prototype, {
|
||||
containerSize.y
|
||||
) / source.tileSize;
|
||||
} else {
|
||||
this.minPixelRatio = thie.viewer.minPixelRatio;
|
||||
this.minPixelRatio = this.viewer.minPixelRatio;
|
||||
}
|
||||
return $.Viewer.prototype.open.apply( this, [ source ] );
|
||||
}
|
||||
|
@ -1392,101 +1392,10 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){
|
||||
* @param {String} xmlUrl
|
||||
* @param {String} xmlString
|
||||
* @param {Function} callback
|
||||
* @deprecated
|
||||
* @deprecated - use Viewer.openTileSource
|
||||
*/
|
||||
createFromDZI: function( dzi, callback, tileHost ) {
|
||||
var async = typeof ( callback ) == "function",
|
||||
dziUrl = (
|
||||
dzi.substring(0,1) != '<' &&
|
||||
dzi.substring(0,1) != '{'
|
||||
) ? dzi : null,
|
||||
dziString = dziUrl ? null : dzi,
|
||||
error = null,
|
||||
urlParts,
|
||||
filename,
|
||||
lastDot,
|
||||
tilesUrl,
|
||||
callbackName;
|
||||
|
||||
|
||||
if( tileHost ){
|
||||
|
||||
tilesUrl = tileHost + "/_files/";
|
||||
|
||||
} else if( dziUrl ) {
|
||||
|
||||
urlParts = dziUrl.split( '/' );
|
||||
filename = urlParts[ urlParts.length - 1 ];
|
||||
if( filename.match(/_dzi\.js$/) ){
|
||||
//for jsonp dzi specification, the '_dzi' needs to be removed
|
||||
//from the filename to be consistent with the spec
|
||||
filename = filename.replace('_dzi.js', '.js');
|
||||
}
|
||||
|
||||
lastDot = filename.lastIndexOf( '.' );
|
||||
|
||||
if ( lastDot > -1 ) {
|
||||
urlParts[ urlParts.length - 1 ] = filename.slice( 0, lastDot );
|
||||
}
|
||||
|
||||
|
||||
tilesUrl = urlParts.join( '/' ) + "_files/";
|
||||
|
||||
}
|
||||
|
||||
function finish( func, obj ) {
|
||||
try {
|
||||
return func( obj, tilesUrl );
|
||||
} catch ( e ) {
|
||||
if ( async ) {
|
||||
return null;
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( async ) {
|
||||
if ( dziString ) {
|
||||
window.setTimeout( function() {
|
||||
var source = finish( processDZIXml, $.parseXml( xmlString ) );
|
||||
// call after finish sets error
|
||||
callback( source, error );
|
||||
}, 1);
|
||||
} else {
|
||||
if( dziUrl.match(/_dzi\.js$/) ){
|
||||
callbackName = dziUrl.split( '/' ).pop().replace('.js','');
|
||||
$.jsonp({
|
||||
url: dziUrl,
|
||||
callbackName: callbackName,
|
||||
callback: function( imageData ){
|
||||
var source = finish( processDZIJSON, imageData.Image );
|
||||
callback( source );
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$.makeAjaxRequest( dziUrl, function( xhr ) {
|
||||
var source = finish( processDZIResponse, xhr );
|
||||
// call after finish sets error
|
||||
callback( source, error );
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if ( dziString ) {
|
||||
return finish(
|
||||
processDZIXml,
|
||||
$.parseXml( dziString )
|
||||
);
|
||||
} else {
|
||||
return finish(
|
||||
processDZIResponse,
|
||||
$.makeAjaxRequest( dziUrl )
|
||||
);
|
||||
}
|
||||
throw "OpenSeadragon.createFromDZI is deprecated, use Viewer.openTileSource.";
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -281,9 +281,7 @@ $.TileSource.prototype = {
|
||||
callback: callback
|
||||
});
|
||||
} else {
|
||||
//TODO: struggling a little with TileSource rewrite to make info
|
||||
// requests work asyncronously. For now I'm opting to make
|
||||
// all xhr info request syncronous.
|
||||
// request info via xhr asyncronously.
|
||||
$.makeAjaxRequest( url, function( xhr ) {
|
||||
var data = processResponse( xhr );
|
||||
callback( data );
|
||||
|
414
src/viewer.js
414
src/viewer.js
@ -129,6 +129,7 @@ $.Viewer = function( options ) {
|
||||
// did we decide this viewer has a sequence of tile sources
|
||||
"sequenced": false,
|
||||
"sequence": 0,
|
||||
"fullPage": false,
|
||||
"onfullscreenchange": null
|
||||
};
|
||||
|
||||
@ -163,7 +164,7 @@ $.Viewer = function( options ) {
|
||||
initialTileSource = this.tileSources;
|
||||
}
|
||||
|
||||
this.openTileSource( initialTileSource );
|
||||
this.open( initialTileSource );
|
||||
}
|
||||
|
||||
this.element = this.element || document.getElementById( this.id );
|
||||
@ -254,29 +255,36 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
},
|
||||
|
||||
/**
|
||||
* If the string is xml is simply parsed and opened, otherwise the string
|
||||
* is treated as an URL and an xml document is requested via ajax, parsed
|
||||
* and then opened in the viewer.
|
||||
* A deprecated function, renamed to 'open' to match event name and
|
||||
* match current 'close' method.
|
||||
* @function
|
||||
* @name OpenSeadragon.Viewer.prototype.openDzi
|
||||
* @param {String} dzi and xml string or the url to a DZI xml document.
|
||||
* @param {String} dzi xml string or the url to a DZI xml document.
|
||||
* @return {OpenSeadragon.Viewer} Chainable.
|
||||
*
|
||||
* @deprecated - use 'open' instead.
|
||||
*/
|
||||
openDzi: function ( dzi ) {
|
||||
var _this = this;
|
||||
$.createFromDZI(
|
||||
dzi,
|
||||
function( source ){
|
||||
_this.open( source );
|
||||
},
|
||||
this.tileHost
|
||||
);
|
||||
return this;
|
||||
return this.open( dzi );
|
||||
},
|
||||
|
||||
/**
|
||||
* A deprecated function, renamed to 'open' to match event name and
|
||||
* match current 'close' method.
|
||||
* @function
|
||||
* @name OpenSeadragon.Viewer.prototype.openTileSource
|
||||
* @param {String|Object|Function} See OpenSeadragon.Viewer.prototype.open
|
||||
* @return {OpenSeadragon.Viewer} Chainable.
|
||||
*
|
||||
* @deprecated - use 'open' instead.
|
||||
*/
|
||||
openTileSource: function ( tileSource ) {
|
||||
return this.open( tileSource );
|
||||
},
|
||||
|
||||
/**
|
||||
* Open a TileSource object into the viewer.
|
||||
*
|
||||
* tileSources is a complex option...
|
||||
*
|
||||
* It can be a string, object, function, or an array of any of these:
|
||||
@ -291,9 +299,10 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
* named 'getTileUrl', it is treated as a custom TileSource.
|
||||
* @function
|
||||
* @name OpenSeadragon.Viewer.prototype.openTileSource
|
||||
* @param {String|Object|Function}
|
||||
* @return {OpenSeadragon.Viewer} Chainable.
|
||||
*/
|
||||
openTileSource: function ( tileSource ) {
|
||||
open: function ( tileSource ) {
|
||||
var _this = this,
|
||||
customTileSource,
|
||||
readySource,
|
||||
@ -308,7 +317,7 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
//if its better to use file extension or url pattern, or to
|
||||
//inspect the resulting info object.
|
||||
tileSource = new $.TileSource( tileSource, function( readySource ){
|
||||
_this.open( readySource );
|
||||
openTileSource( _this, readySource );
|
||||
});
|
||||
|
||||
} else if ( $.isPlainObject( tileSource ) ){
|
||||
@ -316,201 +325,23 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
//Custom tile source
|
||||
customTileSource = new $.TileSource(tileSource);
|
||||
customTileSource.getTileUrl = tileSource.getTileUrl;
|
||||
_this.open( customTileSource );
|
||||
openTileSource( _this, customTileSource );
|
||||
} else {
|
||||
//inline configuration
|
||||
$TileSource = $.TileSource.determineType( _this, tileSource );
|
||||
options = $TileSource.prototype.configure.apply( _this, [ tileSource ]);
|
||||
readySource = new $TileSource( options );
|
||||
_this.open( readySource );
|
||||
openTileSource( _this, readySource );
|
||||
}
|
||||
} else {
|
||||
//can assume it's already a tile source implementation
|
||||
_this.open( tileSource );
|
||||
openTileSource( _this, tileSource );
|
||||
}
|
||||
}, 1);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* @function
|
||||
* @name OpenSeadragon.Viewer.prototype.open
|
||||
* @return {OpenSeadragon.Viewer} Chainable.
|
||||
*/
|
||||
open: function( source ) {
|
||||
var _this = this,
|
||||
overlay,
|
||||
i;
|
||||
|
||||
if ( this.source ) {
|
||||
this.close( );
|
||||
}
|
||||
|
||||
// to ignore earlier opens
|
||||
THIS[ this.hash ].lastOpenStartTime = +new Date();
|
||||
|
||||
window.setTimeout( function () {
|
||||
if ( THIS[ _this.hash ].lastOpenStartTime > THIS[ _this.hash ].lastOpenEndTime ) {
|
||||
THIS[ _this.hash ].setMessage( $.getString( "Messages.Loading" ) );
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
THIS[ this.hash ].lastOpenEndTime = +new Date();
|
||||
this.canvas.innerHTML = "";
|
||||
THIS[ this.hash ].prevContainerSize = $.getElementSize( this.container );
|
||||
|
||||
|
||||
if( this.collectionMode ){
|
||||
this.source = new $.TileSourceCollection({
|
||||
rows: this.collectionRows,
|
||||
layout: this.collectionLayout,
|
||||
tileSize: this.collectionTileSize,
|
||||
tileSources: this.tileSources,
|
||||
tileMargin: this.collectionTileMargin
|
||||
});
|
||||
this.viewport = this.viewport ? this.viewport : new $.Viewport({
|
||||
collectionMode: true,
|
||||
collectionTileSource: this.source,
|
||||
containerSize: THIS[ this.hash ].prevContainerSize,
|
||||
contentSize: this.source.dimensions,
|
||||
springStiffness: this.springStiffness,
|
||||
animationTime: this.animationTime,
|
||||
showNavigator: false,
|
||||
minZoomImageRatio: 1,
|
||||
maxZoomPixelRatio: 1,
|
||||
viewer: this //,
|
||||
//TODO: figure out how to support these in a way that makes sense
|
||||
//minZoomLevel: this.minZoomLevel,
|
||||
//maxZoomLevel: this.maxZoomLevel
|
||||
});
|
||||
}else{
|
||||
if( source ){
|
||||
this.source = source;
|
||||
}
|
||||
this.viewport = this.viewport ? this.viewport : new $.Viewport({
|
||||
containerSize: THIS[ this.hash ].prevContainerSize,
|
||||
contentSize: this.source.dimensions,
|
||||
springStiffness: this.springStiffness,
|
||||
animationTime: this.animationTime,
|
||||
minZoomImageRatio: this.minZoomImageRatio,
|
||||
maxZoomPixelRatio: this.maxZoomPixelRatio,
|
||||
visibilityRatio: this.visibilityRatio,
|
||||
wrapHorizontal: this.wrapHorizontal,
|
||||
wrapVertical: this.wrapVertical,
|
||||
defaultZoomLevel: this.defaultZoomLevel,
|
||||
minZoomLevel: this.minZoomLevel,
|
||||
maxZoomLevel: this.maxZoomLevel,
|
||||
viewer: this
|
||||
});
|
||||
}
|
||||
|
||||
if( this.preserveVewport ){
|
||||
this.viewport.resetContentSize( this.source.dimensions );
|
||||
}
|
||||
|
||||
this.source.overlays = this.source.overlays || [];
|
||||
|
||||
this.drawer = new $.Drawer({
|
||||
source: this.source,
|
||||
viewport: this.viewport,
|
||||
element: this.canvas,
|
||||
overlays: [].concat( this.overlays ).concat( this.source.overlays ),
|
||||
maxImageCacheCount: this.maxImageCacheCount,
|
||||
imageLoaderLimit: this.imageLoaderLimit,
|
||||
minZoomImageRatio: this.minZoomImageRatio,
|
||||
wrapHorizontal: this.wrapHorizontal,
|
||||
wrapVertical: this.wrapVertical,
|
||||
immediateRender: this.immediateRender,
|
||||
blendTime: this.blendTime,
|
||||
alwaysBlend: this.alwaysBlend,
|
||||
minPixelRatio: this.collectionMode ? 0 : this.minPixelRatio,
|
||||
timeout: this.timeout,
|
||||
debugMode: this.debugMode,
|
||||
debugGridColor: this.debugGridColor
|
||||
});
|
||||
|
||||
//Instantiate a navigator if configured
|
||||
if ( this.showNavigator && ! this.navigator && !this.collectionMode ){
|
||||
this.navigator = new $.Navigator({
|
||||
id: this.navigatorElement,
|
||||
position: this.navigatorPosition,
|
||||
sizeRatio: this.navigatorSizeRatio,
|
||||
height: this.navigatorHeight,
|
||||
width: this.navigatorWidth,
|
||||
tileSources: this.tileSources,
|
||||
tileHost: this.tileHost,
|
||||
prefixUrl: this.prefixUrl,
|
||||
overlays: this.overlays,
|
||||
viewer: this
|
||||
});
|
||||
}
|
||||
|
||||
//Instantiate a referencestrip if configured
|
||||
if ( this.showReferenceStrip && ! this.referenceStrip ){
|
||||
this.referenceStrip = new $.ReferenceStrip({
|
||||
id: this.referenceStripElement,
|
||||
position: this.referenceStripPosition,
|
||||
sizeRatio: this.referenceStripSizeRatio,
|
||||
scroll: this.referenceStripScroll,
|
||||
height: this.referenceStripHeight,
|
||||
width: this.referenceStripWidth,
|
||||
tileSources: this.tileSources,
|
||||
tileHost: this.tileHost,
|
||||
prefixUrl: this.prefixUrl,
|
||||
overlays: this.overlays,
|
||||
viewer: this
|
||||
});
|
||||
}
|
||||
|
||||
//this.profiler = new $.Profiler();
|
||||
|
||||
THIS[ this.hash ].animating = false;
|
||||
THIS[ this.hash ].forceRedraw = true;
|
||||
scheduleUpdate( this, updateMulti );
|
||||
|
||||
//Assuming you had programatically created a bunch of overlays
|
||||
//and added them via configuration
|
||||
for ( i = 0; i < this.overlayControls.length; i++ ) {
|
||||
|
||||
overlay = this.overlayControls[ i ];
|
||||
|
||||
if ( overlay.point ) {
|
||||
|
||||
this.drawer.addOverlay(
|
||||
overlay.id,
|
||||
new $.Point(
|
||||
overlay.point.X,
|
||||
overlay.point.Y
|
||||
),
|
||||
$.OverlayPlacement.TOP_LEFT
|
||||
);
|
||||
|
||||
} else {
|
||||
|
||||
this.drawer.addOverlay(
|
||||
overlay.id,
|
||||
new $.Rect(
|
||||
overlay.rect.Point.X,
|
||||
overlay.rect.Point.Y,
|
||||
overlay.rect.Width,
|
||||
overlay.rect.Height
|
||||
),
|
||||
overlay.placement
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
VIEWERS[ this.hash ] = this;
|
||||
|
||||
if( this.navigator ){
|
||||
this.navigator.open( source );
|
||||
}
|
||||
|
||||
this.raiseEvent( 'open', { source: source, viewer: this } );
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* @function
|
||||
@ -597,7 +428,7 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
* @return {Boolean}
|
||||
*/
|
||||
isFullPage: function () {
|
||||
return this.element.parentNode == document.body;
|
||||
return THIS[ this.hash ].fullPage;
|
||||
},
|
||||
|
||||
|
||||
@ -654,7 +485,7 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
//the bodies elements and replace them when we leave full screen.
|
||||
this.previousBody = [];
|
||||
THIS[ this.hash ].prevElementParent = this.element.parentNode;
|
||||
THIS[ this.hash ].prevNextSibling = this.element.prevNextSibling;
|
||||
THIS[ this.hash ].prevNextSibling = this.element.nextSibling;
|
||||
THIS[ this.hash ].prevElementSize = $.getElementSize( this.element );
|
||||
nodes = body.childNodes.length;
|
||||
for ( i = 0; i < nodes; i ++ ){
|
||||
@ -715,6 +546,8 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
) + 'px';
|
||||
}
|
||||
|
||||
THIS[ this.hash ].fullPage = true;
|
||||
|
||||
// mouse will be inside container now
|
||||
$.delegate( this, onContainerEnter )();
|
||||
|
||||
@ -776,6 +609,8 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
this.element.style.height = THIS[ this.hash ].prevElementSize.y + 'px';
|
||||
this.element.style.width = THIS[ this.hash ].prevElementSize.x + 'px';
|
||||
|
||||
THIS[ this.hash ].fullPage = false;
|
||||
|
||||
// mouse will likely be outside now
|
||||
$.delegate( this, onContainerExit )();
|
||||
|
||||
@ -1085,7 +920,7 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
}
|
||||
}
|
||||
|
||||
this.openTileSource( this.tileSources[ page ] );
|
||||
this.open( this.tileSources[ page ] );
|
||||
}
|
||||
|
||||
if( $.isFunction( this.onPageChange ) ){
|
||||
@ -1102,6 +937,185 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* @function
|
||||
* @private
|
||||
*/
|
||||
function openTileSource( viewer, source ) {
|
||||
var _this = viewer,
|
||||
overlay,
|
||||
i;
|
||||
|
||||
if ( _this.source ) {
|
||||
_this.close( );
|
||||
}
|
||||
|
||||
// to ignore earlier opens
|
||||
THIS[ _this.hash ].lastOpenStartTime = +new Date();
|
||||
|
||||
window.setTimeout( function () {
|
||||
if ( THIS[ _this.hash ].lastOpenStartTime > THIS[ _this.hash ].lastOpenEndTime ) {
|
||||
THIS[ _this.hash ].setMessage( $.getString( "Messages.Loading" ) );
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
THIS[ _this.hash ].lastOpenEndTime = +new Date();
|
||||
_this.canvas.innerHTML = "";
|
||||
THIS[ _this.hash ].prevContainerSize = $.getElementSize( _this.container );
|
||||
|
||||
|
||||
if( _this.collectionMode ){
|
||||
_this.source = new $.TileSourceCollection({
|
||||
rows: _this.collectionRows,
|
||||
layout: _this.collectionLayout,
|
||||
tileSize: _this.collectionTileSize,
|
||||
tileSources: _this.tileSources,
|
||||
tileMargin: _this.collectionTileMargin
|
||||
});
|
||||
_this.viewport = _this.viewport ? _this.viewport : new $.Viewport({
|
||||
collectionMode: true,
|
||||
collectionTileSource: _this.source,
|
||||
containerSize: THIS[ _this.hash ].prevContainerSize,
|
||||
contentSize: _this.source.dimensions,
|
||||
springStiffness: _this.springStiffness,
|
||||
animationTime: _this.animationTime,
|
||||
showNavigator: false,
|
||||
minZoomImageRatio: 1,
|
||||
maxZoomPixelRatio: 1,
|
||||
viewer: _this //,
|
||||
//TODO: figure out how to support these in a way that makes sense
|
||||
//minZoomLevel: this.minZoomLevel,
|
||||
//maxZoomLevel: this.maxZoomLevel
|
||||
});
|
||||
}else{
|
||||
if( source ){
|
||||
_this.source = source;
|
||||
}
|
||||
_this.viewport = _this.viewport ? _this.viewport : new $.Viewport({
|
||||
containerSize: THIS[ _this.hash ].prevContainerSize,
|
||||
contentSize: _this.source.dimensions,
|
||||
springStiffness: _this.springStiffness,
|
||||
animationTime: _this.animationTime,
|
||||
minZoomImageRatio: _this.minZoomImageRatio,
|
||||
maxZoomPixelRatio: _this.maxZoomPixelRatio,
|
||||
visibilityRatio: _this.visibilityRatio,
|
||||
wrapHorizontal: _this.wrapHorizontal,
|
||||
wrapVertical: _this.wrapVertical,
|
||||
defaultZoomLevel: _this.defaultZoomLevel,
|
||||
minZoomLevel: _this.minZoomLevel,
|
||||
maxZoomLevel: _this.maxZoomLevel,
|
||||
viewer: _this
|
||||
});
|
||||
}
|
||||
|
||||
if( _this.preserveVewport ){
|
||||
_this.viewport.resetContentSize( _this.source.dimensions );
|
||||
}
|
||||
|
||||
_this.source.overlays = _this.source.overlays || [];
|
||||
|
||||
_this.drawer = new $.Drawer({
|
||||
source: _this.source,
|
||||
viewport: _this.viewport,
|
||||
element: _this.canvas,
|
||||
overlays: [].concat( _this.overlays ).concat( _this.source.overlays ),
|
||||
maxImageCacheCount: _this.maxImageCacheCount,
|
||||
imageLoaderLimit: _this.imageLoaderLimit,
|
||||
minZoomImageRatio: _this.minZoomImageRatio,
|
||||
wrapHorizontal: _this.wrapHorizontal,
|
||||
wrapVertical: _this.wrapVertical,
|
||||
immediateRender: _this.immediateRender,
|
||||
blendTime: _this.blendTime,
|
||||
alwaysBlend: _this.alwaysBlend,
|
||||
minPixelRatio: _this.collectionMode ? 0 : _this.minPixelRatio,
|
||||
timeout: _this.timeout,
|
||||
debugMode: _this.debugMode,
|
||||
debugGridColor: _this.debugGridColor
|
||||
});
|
||||
|
||||
//Instantiate a navigator if configured
|
||||
if ( _this.showNavigator && ! _this.navigator && !_this.collectionMode ){
|
||||
_this.navigator = new $.Navigator({
|
||||
id: _this.navigatorElement,
|
||||
position: _this.navigatorPosition,
|
||||
sizeRatio: _this.navigatorSizeRatio,
|
||||
height: _this.navigatorHeight,
|
||||
width: _this.navigatorWidth,
|
||||
tileSources: _this.tileSources,
|
||||
tileHost: _this.tileHost,
|
||||
prefixUrl: _this.prefixUrl,
|
||||
overlays: _this.overlays,
|
||||
viewer: _this
|
||||
});
|
||||
}
|
||||
|
||||
//Instantiate a referencestrip if configured
|
||||
if ( _this.showReferenceStrip && !_this.referenceStrip ){
|
||||
_this.referenceStrip = new $.ReferenceStrip({
|
||||
id: _this.referenceStripElement,
|
||||
position: _this.referenceStripPosition,
|
||||
sizeRatio: _this.referenceStripSizeRatio,
|
||||
scroll: _this.referenceStripScroll,
|
||||
height: _this.referenceStripHeight,
|
||||
width: _this.referenceStripWidth,
|
||||
tileSources: _this.tileSources,
|
||||
tileHost: _this.tileHost,
|
||||
prefixUrl: _this.prefixUrl,
|
||||
overlays: _this.overlays,
|
||||
viewer: _this
|
||||
});
|
||||
}
|
||||
|
||||
//this.profiler = new $.Profiler();
|
||||
|
||||
THIS[ _this.hash ].animating = false;
|
||||
THIS[ _this.hash ].forceRedraw = true;
|
||||
scheduleUpdate( _this, updateMulti );
|
||||
|
||||
//Assuming you had programatically created a bunch of overlays
|
||||
//and added them via configuration
|
||||
for ( i = 0; i < _this.overlayControls.length; i++ ) {
|
||||
|
||||
overlay = _this.overlayControls[ i ];
|
||||
|
||||
if ( overlay.point ) {
|
||||
|
||||
_this.drawer.addOverlay(
|
||||
overlay.id,
|
||||
new $.Point(
|
||||
overlay.point.X,
|
||||
overlay.point.Y
|
||||
),
|
||||
$.OverlayPlacement.TOP_LEFT
|
||||
);
|
||||
|
||||
} else {
|
||||
|
||||
_this.drawer.addOverlay(
|
||||
overlay.id,
|
||||
new $.Rect(
|
||||
overlay.rect.Point.X,
|
||||
overlay.rect.Point.Y,
|
||||
overlay.rect.Width,
|
||||
overlay.rect.Height
|
||||
),
|
||||
overlay.placement
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
VIEWERS[ _this.hash ] = _this;
|
||||
|
||||
if( _this.navigator ){
|
||||
_this.navigator.open( source );
|
||||
}
|
||||
|
||||
_this.raiseEvent( 'open', { source: source, viewer: _this } );
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user