de.fhg.igd.mapviewer.server.wms.WMSTileConfiguration.java Source code

Java tutorial

Introduction

Here is the source code for de.fhg.igd.mapviewer.server.wms.WMSTileConfiguration.java

Source

/*
 * Copyright (c) 2016 Fraunhofer IGD
 * 
 * All rights reserved. This program and the accompanying materials are made
 * available under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution. If not, see <http://www.gnu.org/licenses/>.
 * 
 * Contributors:
 *     Fraunhofer IGD <http://www.igd.fraunhofer.de/>
 */
package de.fhg.igd.mapviewer.server.wms;

import java.util.prefs.Preferences;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * WMS configuration including tiling options
 * 
 * @author Simon Templer
 */
public abstract class WMSTileConfiguration extends WMSConfiguration {

    private static final Log log = LogFactory.getLog(WMSTileConfiguration.class);

    /**
     * Default minimum map size
     */
    public static final int DEFAULT_MIN_MAP_SIZE = 512;

    /**
     * Default minimum tile size
     */
    public static final int DEFAULT_MIN_TILE_SIZE = 256;

    /**
     * Default zoom levels
     */
    public static final int DEFAULT_ZOOM_LEVELS = 16;

    // preference names
    private static final String MIN_MAP_SIZE = "minMapSize"; //$NON-NLS-1$
    private static final String ZOOM_LEVELS = "zoomLevels"; //$NON-NLS-1$
    private static final String MIN_TILE_SIZE = "minTileSize"; //$NON-NLS-1$

    private int zoomLevels = DEFAULT_ZOOM_LEVELS;
    private int minTileSize = DEFAULT_MIN_TILE_SIZE;
    private int minMapSize = DEFAULT_MIN_MAP_SIZE;

    /**
     * @see WMSConfiguration#validateSettings()
     */
    @Override
    public boolean validateSettings() {
        try {
            new WMSTileProvider(getBaseUrl(), getPreferredEpsg(), zoomLevels, minTileSize, minMapSize, null);
            return true;
        } catch (Exception e) {
            log.error("Error validating wms settings", e); //$NON-NLS-1$
            return false;
        }
    }

    /**
     * Get the number of zoom levels
     * 
     * @return the number of zoom levels
     */
    public int getZoomLevels() {
        return zoomLevels;
    }

    /**
     * Set the number of zoom levels
     * 
     * @param zoomLevels the number of zoom levels
     */
    public void setZoomLevels(int zoomLevels) {
        this.zoomLevels = zoomLevels;
    }

    /**
     * Get the minimum tile size
     * 
     * @return the minimum tile size
     */
    public int getMinTileSize() {
        return minTileSize;
    }

    /**
     * Set the minimum tile size
     * 
     * @param minTileSize the minimum tile size
     */
    public void setMinTileSize(int minTileSize) {
        this.minTileSize = minTileSize;
    }

    /**
     * Get the minimum map size
     * 
     * @return the minimum map size
     */
    public int getMinMapSize() {
        return minMapSize;
    }

    /**
     * Set the minimum map size
     * 
     * @param minMapSize the minimum map size
     */
    public void setMinMapSize(int minMapSize) {
        this.minMapSize = minMapSize;
    }

    /**
     * @see WMSConfiguration#saveProperties(Preferences)
     */
    @Override
    protected void saveProperties(Preferences node) {
        super.saveProperties(node);

        node.putInt(ZOOM_LEVELS, getZoomLevels());
        node.putInt(MIN_TILE_SIZE, getMinTileSize());
        node.putInt(MIN_MAP_SIZE, getMinMapSize());
    }

    /**
     * @see WMSConfiguration#loadProperties(Preferences)
     */
    @Override
    protected void loadProperties(Preferences node) {
        super.loadProperties(node);

        setZoomLevels(node.getInt(ZOOM_LEVELS, DEFAULT_ZOOM_LEVELS));
        setMinTileSize(node.getInt(MIN_TILE_SIZE, DEFAULT_MIN_TILE_SIZE));
        setMinMapSize(node.getInt(MIN_MAP_SIZE, DEFAULT_MIN_MAP_SIZE));
    }

}