| /** |
| * Copyright (c) 2017 CEA. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * CEA - initial API and implementation and/or initial documentation |
| */ |
| package org.eclipse.sensinact.studio.webapp.outdoor.content; |
| |
| import org.eclipse.sensinact.studio.http.server.SensinactServerResource; |
| import org.restlet.resource.Get; |
| |
| /** |
| * @author Etienne Gandrille |
| */ |
| public class OutdoorInit extends SensinactServerResource { |
| |
| /** Location displayed when studio starts */ |
| private static final LOCATION DEFAULT_LOCATION = LOCATION.CEA_GRENOBLE; |
| |
| @Get |
| public String getValue(String params) { |
| return getDefaultLocation(); |
| } |
| |
| public static String getDefaultLocation() { |
| return DEFAULT_LOCATION.toJSON(); |
| } |
| |
| public enum LOCATION |
| { |
| SANTANDER("43.464304", "-3.810365", "13"), |
| CEA_GRENOBLE("45.19954840972916", "5.702977180480957", "15"), |
| MURCIA("37.98682789766166", "-1.1273860931396484", "13"), |
| PALERMO("38.16270754361624","13.309797048568726","13"); |
| |
| private final String lat; |
| private final String lng; |
| private final String zoom; |
| |
| private LOCATION(String lat, String lng, String zoom) { |
| this.lat = lat; |
| this.lng = lng; |
| this.zoom = zoom; |
| } |
| |
| public String toJSON() { |
| StringBuilder sb = new StringBuilder(); |
| sb.append("{"); |
| buildJSONAttribute(sb, "lat", lat); |
| sb.append(","); |
| buildJSONAttribute(sb, "lng", lng); |
| sb.append(","); |
| buildJSONAttribute(sb, "zoom", zoom); |
| sb.append("}"); |
| return sb.toString(); |
| } |
| |
| private void buildJSONAttribute(StringBuilder sb, String key, String val) { |
| sb.append("\"").append(key).append("\"").append(":").append("\"").append(val).append("\""); |
| } |
| } |
| } |