/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.plugin.runtimeconfig.gwt.example.client.action; import java.util.ArrayList; import java.util.List; import org.geomajas.configuration.Parameter; import org.geomajas.configuration.RasterLayerInfo; import org.geomajas.geometry.Bbox; import org.geomajas.gwt.client.action.ToolbarAction; import org.geomajas.gwt.client.command.AbstractCommandCallback; import org.geomajas.gwt.client.command.GwtCommand; import org.geomajas.gwt.client.command.GwtCommandDispatcher; import org.geomajas.gwt.client.widget.MapWidget; import org.geomajas.plugin.runtimeconfig.command.dto.SaveOrUpdateParameterBeanRequest; import org.geomajas.plugin.runtimeconfig.command.dto.SaveOrUpdateParameterBeanResponse; import org.geomajas.plugin.runtimeconfig.service.factory.ClientRasterLayerBeanFactory; import org.geomajas.plugin.runtimeconfig.service.factory.WmsLayerBeanFactory; import com.smartgwt.client.widgets.events.ClickEvent; /** * Adds a layer. * * @author Jan De Moerloose * */ public class AddLayerWmsAction extends ToolbarAction { public static final String TOOL = "AddLayerWms"; private MapWidget map; public AddLayerWmsAction(MapWidget map) { super("[ISOMORPHIC]/geomajas/osgeo/layer-wms-add.png", "Add WMS layer", "Add WMS layer"); this.map = map; } public void onClick(ClickEvent event) { SaveOrUpdateParameterBeanRequest request = new SaveOrUpdateParameterBeanRequest(); request.addStringParameter(WmsLayerBeanFactory.CLASS_NAME, "org.geomajas.layer.wms.WmsLayer"); RasterLayerInfo info = new RasterLayerInfo(); info.setDataSourceName("topp:states"); info.setMaxExtent(new Bbox(-20026376.393709917, -20026376.393709917, 40052752.787419834, 40052752.787419834)); info.setCrs("EPSG:900913"); info.setTileWidth(512); info.setTileHeight(512); request.addStringParameter(WmsLayerBeanFactory.BEAN_NAME, "wmsLayer"); List<Parameter> params = new ArrayList<Parameter>(); params.add(new Parameter("TRANSPARENT", "TRUE")); request.addListParameter(WmsLayerBeanFactory.PARAMETERS, params); request.addObjectParameter(WmsLayerBeanFactory.LAYER_INFO, info); GwtCommand command = new GwtCommand(SaveOrUpdateParameterBeanRequest.COMMAND); request.addStringParameter(WmsLayerBeanFactory.BASE_WMS_URL, "http://apps.geomajas.org/geoserver/wms"); command.setCommandRequest(request); GwtCommandDispatcher.getInstance().execute(command, new AbstractCommandCallback<SaveOrUpdateParameterBeanResponse>() { public void execute(SaveOrUpdateParameterBeanResponse response) { SaveOrUpdateParameterBeanRequest request = new SaveOrUpdateParameterBeanRequest(); request.addStringParameter(ClientRasterLayerBeanFactory.CLASS_NAME, "org.geomajas.configuration.client.ClientRasterLayerInfo"); request.addStringParameter(ClientRasterLayerBeanFactory.BEAN_NAME, "clientWmsLayer"); request.addStringParameter(ClientRasterLayerBeanFactory.LABEL, "WMS"); request.addStringParameter(ClientRasterLayerBeanFactory.SERVER_LAYER_ID, "wmsLayer"); request.addStringParameter(ClientRasterLayerBeanFactory.MAP_ID, "mapRuntimeConfig"); GwtCommand command = new GwtCommand(SaveOrUpdateParameterBeanRequest.COMMAND); command.setCommandRequest(request); GwtCommandDispatcher.getInstance().execute(command, new AbstractCommandCallback<SaveOrUpdateParameterBeanResponse>() { public void execute(SaveOrUpdateParameterBeanResponse response) { map.getMapModel().refresh(); } }); } }); } }