]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - gis/plugins/org.argeo.gis.ui.rap.openlayers/src/main/java/org/argeo/gis/ui/rap/openlayers/OpenLayersMapControlCreator.java
First working GIS
[lgpl/argeo-commons.git] / gis / plugins / org.argeo.gis.ui.rap.openlayers / src / main / java / org / argeo / gis / ui / rap / openlayers / OpenLayersMapControlCreator.java
diff --git a/gis/plugins/org.argeo.gis.ui.rap.openlayers/src/main/java/org/argeo/gis/ui/rap/openlayers/OpenLayersMapControlCreator.java b/gis/plugins/org.argeo.gis.ui.rap.openlayers/src/main/java/org/argeo/gis/ui/rap/openlayers/OpenLayersMapControlCreator.java
new file mode 100644 (file)
index 0000000..f3972a9
--- /dev/null
@@ -0,0 +1,51 @@
+package org.argeo.gis.ui.rap.openlayers;
+
+import org.argeo.gis.ui.MapContextProvider;
+import org.argeo.gis.ui.MapControlCreator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.polymap.openlayers.rap.widget.OpenLayersWidget;
+import org.polymap.openlayers.rap.widget.base_types.OpenLayersMap;
+import org.polymap.openlayers.rap.widget.controls.KeyboardDefaultsControl;
+import org.polymap.openlayers.rap.widget.controls.LayerSwitcherControl;
+import org.polymap.openlayers.rap.widget.controls.MouseDefaultsControl;
+import org.polymap.openlayers.rap.widget.controls.PanZoomBarControl;
+import org.polymap.openlayers.rap.widget.controls.ScaleControl;
+import org.polymap.openlayers.rap.widget.layers.OSMLayer;
+import org.polymap.openlayers.rap.widget.layers.WMSLayer;
+
+public class OpenLayersMapControlCreator implements MapControlCreator {
+       public Composite createMapControl(Composite parent,
+                       MapContextProvider mapContextProvider) {
+
+               // OpenLayersWidget openLayersWidget = new OpenLayersWidget(parent,
+               // SWT.MULTI | SWT.WRAP, "/js_lib/OpenLayers/OpenLayers.js");
+               OpenLayersWidget openLayersWidget = new OpenLayersWidget(parent,
+                               SWT.MULTI | SWT.WRAP);
+               openLayersWidget.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+               OpenLayersMap map = openLayersWidget.getMap();
+
+               map.addControl(new LayerSwitcherControl());
+               map.addControl(new MouseDefaultsControl());
+               map.addControl(new KeyboardDefaultsControl());
+               map.addControl(new PanZoomBarControl());
+               map.addControl(new ScaleControl());
+
+//             WMSLayer baseLayer = new WMSLayer("argeo_dev",
+//                             "https://dev.argeo.org/geoserver/wms?",
+//                             "naturalearth:10m_admin_0_countries");
+
+               OSMLayer baseLayer = new OSMLayer("OSM",
+                               "http://tile.openstreetmap.org/${z}/${x}/${y}.png", 19);
+               map.addLayer(baseLayer);
+
+               MapContextAdapter mapContextAdapter = new MapContextAdapter(
+                               mapContextProvider.getMapContext(), map);
+               // FIXME: find a better way to register it
+               openLayersWidget.setData(mapContextAdapter);
+               return openLayersWidget;
+       }
+
+}