X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=gis%2Fplugins%2Forg.argeo.gis.ui.rap.openlayers%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fgis%2Fui%2Frap%2Fopenlayers%2FOpenLayersMapControlCreator.java;fp=gis%2Fplugins%2Forg.argeo.gis.ui.rap.openlayers%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fgis%2Fui%2Frap%2Fopenlayers%2FOpenLayersMapControlCreator.java;h=f3972a9f938ddd9d61ba857233e9bd1d59597692;hb=77eaf70d8b929dab68211d6a01f68eeb71a1dceb;hp=0000000000000000000000000000000000000000;hpb=ab41c59dc92ba8bbc4b64f8f619ac30bfe4c4630;p=lgpl%2Fargeo-commons.git 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 index 000000000..f3972a9f9 --- /dev/null +++ b/gis/plugins/org.argeo.gis.ui.rap.openlayers/src/main/java/org/argeo/gis/ui/rap/openlayers/OpenLayersMapControlCreator.java @@ -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; + } + +}