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 {
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);
+ }
+ }
}