JavaScript classes working
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 30 Aug 2023 05:11:10 +0000 (07:11 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 30 Aug 2023 05:11:10 +0000 (07:11 +0200)
org.argeo.app.geo.js/src/org.argeo.app.geo.js/index.js
swt/org.argeo.app.geo.swt/src/org/argeo/app/geo/swt/openlayers/OLMap.java

index a665d9164c10df263ff721d0dd86ac34ab6d6e06..108c5da2fa4018eb5a40ffee8c82e854b003ee09 100644 (file)
@@ -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.');
index d045afd21d9aa3e6cd91ba2a359bfde54ac285e7..0b704e6ca47373e8c04da3bf373c051b21f59352 100644 (file)
@@ -19,7 +19,7 @@ public class OLMap extends Composite implements MapPart {
        // CompletableFuture<>();
        private CompletableFuture<Boolean> 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);
                        }