]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java
Add Debian packages dependencies
[gpl/argeo-suite.git] / org.argeo.app.geo / src / org / argeo / app / geo / ux / OpenLayersMapPart.java
1 package org.argeo.app.geo.ux;
2
3 import org.argeo.app.ol.AbstractOlObject;
4 import org.argeo.app.ol.Layer;
5 import org.argeo.app.ol.OlMap;
6 import org.argeo.app.ol.TileLayer;
7 import org.argeo.app.ol.VectorLayer;
8 import org.argeo.app.ux.js.JsClient;
9
10 /**
11 * A wrapper around an OpenLayers map, adding specific features, such as SLD
12 * styling.
13 */
14 public class OpenLayersMapPart extends AbstractGeoJsObject {
15 private final String mapPartName;
16
17 public OpenLayersMapPart(JsClient jsClient, String mapPartName) {
18 super(mapPartName);
19 this.mapPartName = mapPartName;
20 create(jsClient, mapPartName);
21 }
22
23 public OlMap getMap() {
24 return new OlMap(getJsClient(), getReference() + ".getMap()");
25 }
26
27 public void setSld(String xml) {
28 executeMethod(getMethodName(), JsClient.escapeQuotes(xml));
29 }
30
31 public void setCenter(Double lat, Double lon) {
32 executeMethod(getMethodName(), lat, lon);
33 }
34
35 public void applyStyle(String layerName, String styledLayerName) {
36 executeMethod(getMethodName(), layerName, styledLayerName);
37 }
38
39 public Layer getLayer(String name) {
40 // TODO deal with not found
41 String reference = getReference() + ".getLayerByName('" + name + "')";
42 if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(VectorLayer.class))) {
43 return new VectorLayer(getJsClient(), reference);
44 } else if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(TileLayer.class))) {
45 return new TileLayer(getJsClient(), reference);
46 } else {
47 return new Layer(getJsClient(), reference);
48 }
49 }
50
51 public String getMapPartName() {
52 return mapPartName;
53 }
54
55 }