diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js index 2cbf32f4632fd6fd4f26b3c7b09b662b4823f43d..b6a8e6839d5359416cdaf9bc51a8e9c00c687f38 100644 --- a/frontend-js/src/main/js/map/AbstractCustomMap.js +++ b/frontend-js/src/main/js/map/AbstractCustomMap.js @@ -436,6 +436,12 @@ AbstractCustomMap.prototype.registerMapClickEvents = function () { }; +/** + * + * @param {Point} coordinates + * @param {AbstractCustomMap} map + * @returns {Promise} + */ function activateMolStarLink(coordinates, map) { return ServerConnector.getClosestElementsByCoordinates({ @@ -443,12 +449,12 @@ function activateMolStarLink(coordinates, map) { coordinates: coordinates, count: 1 }).then(function (identifiedElements) { - return map.getDistance({ + return map.getTopMap().getDistance({ modelId: map.getId(), coordinates: coordinates, element: identifiedElements[0] }).then(function (distance) { - if (distance == 0) return identifiedElements; + if (distance === 0) return identifiedElements; else return Promise.reject(new Error()); }) @@ -463,8 +469,8 @@ function activateMolStarLink(coordinates, map) { uniprotIds.push(ref.getResource()); } } - if (uniprotIds.length > 0) map.getContextMenu().getMolStar().activateInContextMenu(uniprotIds); - else map.getContextMenu().getMolStar().deactivateInContextMenu(); + if (uniprotIds.length > 0) map.getTopMap().getContextMenu().getMolStar().activateInContextMenu(uniprotIds); + else map.getTopMap().getContextMenu().getMolStar().deactivateInContextMenu(); }).catch(function () { return map.getTopMap().getContextMenu().getMolStar().deactivateInContextMenu(); }); diff --git a/frontend-js/src/main/js/map/structure/MolStar.js b/frontend-js/src/main/js/map/structure/MolStar.js index e94605f89c1d3790accedfe587b48a847986b019..37c6d9d0fd2299360b36e557a67f49bab1ac54a7 100644 --- a/frontend-js/src/main/js/map/structure/MolStar.js +++ b/frontend-js/src/main/js/map/structure/MolStar.js @@ -38,12 +38,11 @@ MolStar.prototype.activateInContextMenu = function (uniprotIds) { name: "Open MolStar", customMap: self._customMap }); - for (var i = 0; i < uniprotIds.length; i++) { - var uniprotId = uniprotIds[i]; + uniprotIds.forEach(function (uniprotId) { submenu.addOption(uniprotId, function () { self._activate(uniprotId); }, false); - } + }); menu.addOption(submenu); }; @@ -70,6 +69,15 @@ MolStar.prototype._activate = function (uniprotId) { var container = this.getContainerElement(); if (!container) return; + var maxZIndex = Math.max.apply(null, + $.map($('body *'), function (e) { + if ($(e).css('position') !== 'static') { + return parseInt($(e).css('z-index')) || 1; + } + })); + + $(container).css('z-index', maxZIndex + 1); + var molStarCloseButton = Functions.createElement({ type: "div", className: "minerva-molstar-close-button",