X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.geo%2Fsrc%2Forg%2Fargeo%2Fapp%2Fgeo%2Fux%2FOpenLayersMapPart.java;h=8fad7e26b8ee50a2adc22330a6e6a61aa5e24d01;hb=8a490e540ac623b3545b1bd3da65ecbf2e4b6436;hp=829b343a38bccd88dffe60f99899e9e22263e4dd;hpb=d76ddbc151846278fabe03f5e5dcbbca94704ba5;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java b/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java index 829b343..8fad7e2 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java @@ -1,7 +1,10 @@ package org.argeo.app.geo.ux; +import org.argeo.app.ol.AbstractOlObject; +import org.argeo.app.ol.Layer; import org.argeo.app.ol.OlMap; -import org.argeo.app.ux.js.AbstractJsObject; +import org.argeo.app.ol.TileLayer; +import org.argeo.app.ol.VectorLayer; import org.argeo.app.ux.js.JsClient; public class OpenLayersMapPart extends AbstractGeoJsObject { @@ -16,4 +19,24 @@ public class OpenLayersMapPart extends AbstractGeoJsObject { public OlMap getMap() { return new OlMap(getJsClient(), getReference() + ".getMap()"); } + + public void setSld(String xml) { + executeMethod(getMethodName(), JsClient.escapeQuotes(xml)); + } + + public void applyStyle(String layerName, String styledLayerName) { + executeMethod(getMethodName(), layerName, styledLayerName); + } + + public Layer getLayer(String name) { + // TODO deal with not found + String reference = "getLayerByName('" + name + "')"; + if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(VectorLayer.class))) { + return new VectorLayer(getJsClient(), reference); + } else if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(TileLayer.class))) { + return new TileLayer(getJsClient(), reference); + } else { + return new Layer(getJsClient(), reference); + } + } }