mirror of
https://github.com/cds-astro/aladin-lite.git
synced 2026-01-07 02:24:59 -08:00
Compare commits
1 Commits
fix-choose
...
fix-select
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1bdbf49438 |
@@ -11,7 +11,7 @@
|
||||
let aladin;
|
||||
A.init.then(() => {
|
||||
// Start up Aladin Lite
|
||||
aladin = A.aladin('#aladin-lite-div', {target: 'M 1', fov: 0.2, showContextMenu: true, fullScreen: true});
|
||||
aladin = A.aladin('#aladin-lite-div', {survey: "CDS/P/DSS2/color", target: 'M 1', fov: 0.2, showContextMenu: true, fullScreen: true});
|
||||
var overlay = A.graphicOverlay({color: '#ee2345', lineWidth: 3, lineDash: [2, 2]});
|
||||
aladin.addOverlay(overlay);
|
||||
overlay.addFootprints([
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<script type="module">
|
||||
import A from '../src/js/A.js';
|
||||
A.init.then(() => {
|
||||
let aladin = A.aladin('#aladin-lite-div', {fov: 30, target: "280 +0", projection: "AIT", showShareControl:true, showSettingsControl: true, showContextMenu:true});
|
||||
let aladin = A.aladin('#aladin-lite-div', {fov: 30, survey: "CDS/P/DSS2/color", target: "280 +0", projection: "AIT", showShareControl:true, showSettingsControl: true, showContextMenu:true});
|
||||
|
||||
aladin.setOverlayImageLayer(A.image(
|
||||
"https://www.virtualastronomy.org/images/sig05-013.jpg",
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
showCooGrid: true,
|
||||
fullScreen: true,
|
||||
samp: true,
|
||||
realFullscreen: true,
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -426,8 +426,6 @@ export let Aladin = (function () {
|
||||
// Merge what is already in the cache for that HiPS with new properties
|
||||
// coming from the MOCServer
|
||||
this.hipsFavorites.push(hipsObj);
|
||||
// Favorites are also directly pushed to the cache
|
||||
this.hipsCache.append(hipsObj.id, hipsObj)
|
||||
}
|
||||
|
||||
this._setupUI(options);
|
||||
@@ -447,7 +445,11 @@ export let Aladin = (function () {
|
||||
});
|
||||
} else if (options.survey === HiPS.DEFAULT_SURVEY_ID) {
|
||||
// DSS is cached inside HiPS class, no need to provide any further information
|
||||
this.setBaseImageLayer(HiPS.DEFAULT_SURVEY_ID);
|
||||
const survey = this.createImageSurvey(
|
||||
HiPS.DEFAULT_SURVEY_ID
|
||||
);
|
||||
|
||||
this.setBaseImageLayer(survey);
|
||||
} else {
|
||||
this.setBaseImageLayer(options.survey);
|
||||
}
|
||||
@@ -483,24 +485,22 @@ export let Aladin = (function () {
|
||||
// maximize control
|
||||
if (options.showFullscreenControl) {
|
||||
// react to fullscreenchange event to restore initial width/height (if user pressed ESC to go back from full screen)
|
||||
// This event is only triggered with realFullscreen on
|
||||
Utils.on(
|
||||
document,
|
||||
"fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",
|
||||
() => {
|
||||
function (e) {
|
||||
var fullscreenElt =
|
||||
document.fullscreenElement ||
|
||||
document.webkitFullscreenElement ||
|
||||
document.mozFullScreenElement ||
|
||||
document.msFullscreenElement;
|
||||
if (fullscreenElt === null || fullscreenElt === undefined) {
|
||||
// fix: Only toggle off the screen once because in case of closing the real fullscreen from the ui button, this could be called 2 times
|
||||
// * one toggleFullscreen from the button itself
|
||||
// * one toggleFullscreen from the fullscreenchange event
|
||||
// => resulting in closing and opening the fullscreen again.
|
||||
if (self.isInFullscreen) {
|
||||
self.toggleFullscreen(options.realFullscreen);
|
||||
}
|
||||
self.toggleFullscreen(options.realFullscreen);
|
||||
|
||||
var fullScreenToggledFn =
|
||||
self.callbacksByEventName["fullScreenToggled"];
|
||||
typeof fullScreenToggledFn === "function" &&
|
||||
fullScreenToggledFn(self.isInFullscreen);
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -716,6 +716,7 @@ export let Aladin = (function () {
|
||||
Aladin.prototype.toggleFullscreen = function (realFullscreen) {
|
||||
let self = this;
|
||||
|
||||
realFullscreen = Boolean(realFullscreen);
|
||||
self.isInFullscreen = !self.isInFullscreen;
|
||||
|
||||
ContextMenu.hideAll();
|
||||
@@ -726,7 +727,13 @@ export let Aladin = (function () {
|
||||
ui.toggle();
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
if (this.aladinDiv.classList.contains("aladin-fullscreen")) {
|
||||
this.aladinDiv.classList.remove("aladin-fullscreen");
|
||||
} else {
|
||||
this.aladinDiv.classList.add("aladin-fullscreen");
|
||||
}
|
||||
|
||||
if (realFullscreen) {
|
||||
// go to "real" full screen mode
|
||||
if (self.isInFullscreen) {
|
||||
@@ -757,8 +764,6 @@ export let Aladin = (function () {
|
||||
}
|
||||
}
|
||||
|
||||
this.aladinDiv.classList.toggle("aladin-fullscreen");
|
||||
|
||||
// Delay the fixLayoutDimensions layout for firefox
|
||||
/*setTimeout(function () {
|
||||
self.view.fixLayoutDimensions();
|
||||
@@ -1564,8 +1569,10 @@ export let Aladin = (function () {
|
||||
let hipsOptions = { id, name, maxOrder, url, cooFrame, ...options };
|
||||
let hips = new HiPS(id, url || id, hipsOptions)
|
||||
|
||||
// A HiPS can be refered by its unique ID thus we add it to the cache (cf excample/al-cfht.html that refers to HiPS object just by their unique ID)
|
||||
if (this instanceof Aladin) {
|
||||
// This allows to retrieve the survey's options when it will be
|
||||
// added later to the view.
|
||||
if (this instanceof Aladin && !this.hipsCache.contains(hips.id)) {
|
||||
// Add it to the cache as soon as possible if we have a reference to the aladin object
|
||||
this.hipsCache.append(hips.id, hipsOptions)
|
||||
}
|
||||
|
||||
@@ -1922,14 +1929,12 @@ export let Aladin = (function () {
|
||||
let imageLayer;
|
||||
|
||||
let hipsCache = this.hipsCache;
|
||||
|
||||
// 1. User gives an ID
|
||||
if (typeof urlOrHiPSOrFITS === "string") {
|
||||
const idOrUrl = urlOrHiPSOrFITS;
|
||||
// many cases here
|
||||
// 1/ It has been already added to the cache
|
||||
let cachedOptions = hipsCache.get(idOrUrl)
|
||||
|
||||
if (cachedOptions) {
|
||||
imageLayer = A.HiPS(idOrUrl, cachedOptions);
|
||||
} else {
|
||||
@@ -1949,7 +1954,7 @@ export let Aladin = (function () {
|
||||
if (!cachedLayerOptions) {
|
||||
hipsCache.append(imageLayer.id, imageLayer.options)
|
||||
} else {
|
||||
// Set the options from what is in the cache
|
||||
// set the options from what is in the cache
|
||||
imageLayer.setOptions(cachedLayerOptions);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -630,7 +630,7 @@ export let View = (function () {
|
||||
var footprintClickedFunction = view.aladin.callbacksByEventName['footprintClicked'];
|
||||
|
||||
let objsByCats = {};
|
||||
let shapes = [];
|
||||
let footprints = [];
|
||||
for (let o of objs) {
|
||||
// classify the different objects by catalog
|
||||
let cat = o.getCatalog && o.getCatalog();
|
||||
@@ -648,20 +648,19 @@ export let View = (function () {
|
||||
if (typeof footprintClickedFunction === 'function') {
|
||||
footprintClickedFunction(o, xy);
|
||||
}
|
||||
}
|
||||
|
||||
// If this shape has a catalog then it will be selected from its source
|
||||
// so we will not add it
|
||||
if (!cat) {
|
||||
shapes.push(o);
|
||||
// If this footprint has a catalog then it will be selected from its source
|
||||
// so we will not add it
|
||||
if (!cat) {
|
||||
footprints.push(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Rewrite objs
|
||||
objs = Array.from(Object.values(objsByCats));
|
||||
// Add the external shapes (i.e. which are not associated with catalog sources e.g. those from GraphicOverlay)
|
||||
if (shapes.length > 0) {
|
||||
objs.push(shapes)
|
||||
// Add the external footprints (i.e. which are not associated with catalog sources e.g. those from GraphicOverlay)
|
||||
if (footprints.length > 0) {
|
||||
objs.push(footprints)
|
||||
}
|
||||
view.selectObjects(objs);
|
||||
|
||||
@@ -1263,7 +1262,7 @@ export let View = (function () {
|
||||
switch (e.keyCode) {
|
||||
// escape
|
||||
case 27:
|
||||
// Called when realfullscreen is false. Escaping from real fullscreen does not seem to trigger the keydown event
|
||||
// if there is a selection occuring
|
||||
if (view.aladin.isInFullscreen) {
|
||||
view.aladin.toggleFullscreen(view.aladin.options.realFullscreen);
|
||||
}
|
||||
|
||||
@@ -528,7 +528,15 @@ export class OverlayStackBox extends Box {
|
||||
position: self.position,
|
||||
});*/
|
||||
self.aladin.addNewImageLayer(
|
||||
'P/DSS2/color'
|
||||
A.imageHiPS('P/DSS2/color', {
|
||||
errorCallback: (e) => {
|
||||
aladin.addStatusBarMessage({
|
||||
duration: 2000,
|
||||
type: 'info',
|
||||
message: 'DSS2 colored HiPS could not plot',
|
||||
})
|
||||
}
|
||||
})
|
||||
);
|
||||
},
|
||||
},
|
||||
@@ -932,7 +940,6 @@ export class OverlayStackBox extends Box {
|
||||
options.push(value)
|
||||
}
|
||||
|
||||
|
||||
let HiPSSelector = Input.select({
|
||||
value,
|
||||
options,
|
||||
|
||||
@@ -57,8 +57,8 @@ export class FullScreenActionButton extends ActionButton {
|
||||
if (aladin.statusBar) {
|
||||
aladin.statusBar.removeMessage('tooltip')
|
||||
}
|
||||
|
||||
aladin.toggleFullscreen(aladin.options.realFullscreen);
|
||||
|
||||
aladin.toggleFullscreen(aladin.options.realFullscreen);
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user