/* * 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.widget.layer.client.util; import org.geomajas.gwt.client.map.layer.Layer; import org.geomajas.gwt.client.map.layer.RasterLayer; import org.geomajas.gwt.client.map.layer.VectorLayer; import org.geomajas.layer.LayerType; import org.geomajas.widget.layer.configuration.client.ClientExtraLayerInfo; import com.smartgwt.client.widgets.Img; /** * Helper class for working with layerIcons. * * @author Kristof Heirwegh */ public final class LayerIconUtil { private LayerIconUtil() { // utility class, hide constructor } /** * Get small layer icon as image. * * @param layer * layer * @return image */ public static Img getSmallLayerIcon(Layer<?> layer) { String url = getSmallLayerIconUrl(layer); if (url != null) { return new Img(url); } else { return null; } } /** * Get small layer image URL. * * @param layer * layer * @return image URL */ public static String getSmallLayerIconUrl(Layer<?> layer) { ClientExtraLayerInfo eli = (ClientExtraLayerInfo) layer.getLayerInfo().getWidgetInfo( ClientExtraLayerInfo.IDENTIFIER); if (eli != null && eli.getSmallLayerIconUrl() != null && !"".equals(eli.getSmallLayerIconUrl())) { return eli.getSmallLayerIconUrl(); } else { return null; } } public static Img getLargeLayerIcon(Layer<?> layer) { ClientExtraLayerInfo eli = (ClientExtraLayerInfo) layer.getLayerInfo().getWidgetInfo( ClientExtraLayerInfo.IDENTIFIER); if (eli != null && eli.getLargeLayerIconUrl() != null && !"".equals(eli.getLargeLayerIconUrl())) { return new Img(eli.getLargeLayerIconUrl()); } else { if (layer instanceof RasterLayer) { return new Img(GltLayout.layerRasterIconLargeUrl); } else if (layer instanceof VectorLayer) { LayerType layerType = ((VectorLayer) layer).getLayerInfo().getLayerType(); switch (layerType) { case POINT: case MULTIPOINT: return new Img(GltLayout.layerVectorPointIconLargeUrl); case LINESTRING: case MULTILINESTRING: return new Img(GltLayout.layerVectorLineIconLargeUrl); case POLYGON: case MULTIPOLYGON: case GEOMETRY: return new Img(GltLayout.layerVectorPolygonIconLargeUrl); default: throw new IllegalStateException("Unknown vector layer type " + layerType); } } else { throw new IllegalStateException("Unknown layer type"); } } } public static Img getLegendImage(Layer<?> layer) { ClientExtraLayerInfo eli = (ClientExtraLayerInfo) layer.getLayerInfo().getWidgetInfo( ClientExtraLayerInfo.IDENTIFIER); if (eli != null && eli.getLegendImageUrl() != null && !"".equals(eli.getLegendImageUrl())) { return new Img(eli.getLegendImageUrl()); } else { return null; } } public static String getLegendUrl(Layer<?> layer) { ClientExtraLayerInfo eli = (ClientExtraLayerInfo) layer.getLayerInfo().getWidgetInfo( ClientExtraLayerInfo.IDENTIFIER); if (eli != null && eli.getLegendImageUrl() != null && !"".equals(eli.getLegendImageUrl())) { return "images/" + eli.getLegendImageUrl(); } else { return null; } } public static Img getLabelOverlayImg() { return new Img(GltLayout.layerLabelOverlayUrl); } public static Img getOpacityUnderlayImg() { return new Img(GltLayout.layerOpacityUnderlayUrl); } }