From 1bf9b9ce4e4c9cf6ff6970d31b411fca63644003 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 30 Aug 2023 07:11:10 +0200 Subject: [PATCH] JavaScript classes working --- .../src/org.argeo.app.geo.js/index.js | 72 +++++++++++++------ .../argeo/app/geo/swt/openlayers/OLMap.java | 6 +- 2 files changed, 54 insertions(+), 24 deletions(-) diff --git a/org.argeo.app.geo.js/src/org.argeo.app.geo.js/index.js b/org.argeo.app.geo.js/src/org.argeo.app.geo.js/index.js index a665d91..108c5da 100644 --- a/org.argeo.app.geo.js/src/org.argeo.app.geo.js/index.js +++ b/org.argeo.app.geo.js/src/org.argeo.app.geo.js/index.js @@ -24,34 +24,62 @@ import 'ol/ol.css'; //}); //map.getView().setZoom(4); -if (typeof window.argeo === 'undefined') - window.argeo = {}; -if (typeof window.argeo.app === 'undefined') - window.argeo.app = {}; -if (typeof window.argeo.app.geo === 'undefined') - window.argeo.app.geo = {}; +if (typeof globalThis.argeo === 'undefined') + globalThis.argeo = {}; +if (typeof globalThis.argeo.app === 'undefined') + globalThis.argeo.app = {}; +if (typeof globalThis.argeo.app.geo === 'undefined') + globalThis.argeo.app.geo = {}; -window.argeo.app.geo.ArgeoMap = { - map: new Map({ - layers: [ - new TileLayer({ - source: new OSM(), - }), - ], - target: 'map', - }), +//window.argeo.app.geo.ArgeoMap = { +// map: new Map({ +// layers: [ +// new TileLayer({ +// source: new OSM(), +// }), +// ], +// target: 'map', +// }), +// +// setZoom: function(zoom) { +// this.map.getView().setZoom(zoom); +// }, +// +// setCenter: function(lng, lat) { +// this.map.getView().setCenter(fromLonLat([lng, lat])); +// }, +// +//}; + +export class ArgeoMap { + #map; + // Constructor + constructor() { + this.#map = new Map({ + layers: [ + new TileLayer({ + source: new OSM(), + }), + ], + target: 'map', + }); + } + + setZoom(zoom) { + this.#map.getView().setZoom(zoom); + } + + setCenter(lng, lat) { + this.#map.getView().setCenter(fromLonLat([lng, lat])); + } +} - setZoom: function(zoom) { - this.map.getView().setZoom(zoom); - }, +globalThis.argeo.app.geo.ArgeoMap = ArgeoMap; - setCenter: function(lng, lat) { - this.map.getView().setCenter(fromLonLat([lng, lat])); - }, +//globalThis.argeoMap = new ArgeoMap(); -}; //window.argeoMap = Object.create(argeo.app.geo.ArgeoMap); //window.argeoMap.map.on('rendercomplete', e => { // console.log('Render completed.'); diff --git a/swt/org.argeo.app.geo.swt/src/org/argeo/app/geo/swt/openlayers/OLMap.java b/swt/org.argeo.app.geo.swt/src/org/argeo/app/geo/swt/openlayers/OLMap.java index d045afd..0b704e6 100644 --- a/swt/org.argeo.app.geo.swt/src/org/argeo/app/geo/swt/openlayers/OLMap.java +++ b/swt/org.argeo.app.geo.swt/src/org/argeo/app/geo/swt/openlayers/OLMap.java @@ -19,7 +19,7 @@ public class OLMap extends Composite implements MapPart { // CompletableFuture<>(); private CompletableFuture pageLoaded = new CompletableFuture<>(); - private String mapVar = "window.argeoMap"; + private String mapVar = "globalThis.argeoMap"; public OLMap(Composite parent, int style) { super(parent, style); @@ -38,7 +38,9 @@ public class OLMap extends Composite implements MapPart { public void completed(ProgressEvent event) { // create map - browser.execute(mapVar + " = Object.create(window.argeo.app.geo.ArgeoMap);"); + browser.execute(mapVar + " = new globalThis.argeo.app.geo.ArgeoMap();"); + + // browser.execute("console.log(myInstance.myField)"); pageLoaded.complete(true); } -- 2.30.2