/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.gwc.web; import java.io.Serializable; import org.apache.wicket.request.resource.PackageResourceReference; import org.geoserver.catalog.LayerInfo; import org.geoserver.gwc.layer.GeoServerTileLayer; import org.geoserver.web.CatalogIconFactory; import org.geoserver.web.GeoServerBasePage; import org.geowebcache.layer.TileLayer; import org.geowebcache.layer.wms.WMSLayer; /** * Utility class used to lookup icons for various catalog objects */ @SuppressWarnings("serial") public class GWCIconFactory implements Serializable { public static final PackageResourceReference UNKNOWN_ICON = new PackageResourceReference( GeoServerBasePage.class, "img/icons/silk/error.png"); public static final PackageResourceReference DISABLED_ICON = new PackageResourceReference( GeoServerBasePage.class, "img/icons/silk/error.png"); public static final PackageResourceReference ENABLED_ICON = new PackageResourceReference( GeoServerBasePage.class, "img/icons/silk/tick.png"); public static final PackageResourceReference ADD_ICON = new PackageResourceReference(GeoServerBasePage.class, "img/icons/silk/add.png"); public static final PackageResourceReference DELETE_ICON = new PackageResourceReference( GeoServerBasePage.class, "img/icons/silk/delete.png"); public static final PackageResourceReference GRIDSET = new PackageResourceReference(GWCSettingsPage.class, "gridset.png"); public static final PackageResourceReference GWC = new PackageResourceReference(GWCSettingsPage.class, "geowebcache-16.png"); private GWCIconFactory() { // private constructor, this is a singleton } /** * Returns the appropriate icon for the specified layer type. * * @param info * */ public static PackageResourceReference getSpecificLayerIcon(final TileLayer layer) { if (layer instanceof GeoServerTileLayer) { GeoServerTileLayer gsTileLayer = (GeoServerTileLayer) layer; LayerInfo layerInfo = gsTileLayer.getLayerInfo(); if (layerInfo != null) { return CatalogIconFactory.get().getSpecificLayerIcon(layerInfo); } return CatalogIconFactory.GROUP_ICON; } if (layer instanceof WMSLayer) { return GWC; } return UNKNOWN_ICON; } /** * Returns a reference to a general purpose icon to indicate an enabled/properly configured * resource */ public static PackageResourceReference getEnabledIcon() { return ENABLED_ICON; } /** * Returns a reference to a general purpose icon to indicate a * disabled/misconfigured/unreachable resource */ public static PackageResourceReference getDisabledIcon() { return DISABLED_ICON; } public static PackageResourceReference getErrorIcon() { return UNKNOWN_ICON; } }