package usda.weru.gis.gui;

import com.vividsolutions.jts.geom.Coordinate;
import java.awt.Cursor;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

/**
 *
 * @author Joseph A. Levin <joelevin@weru.ksu.edu>
 */
public interface MapController {

    /**
     *
     * @return
     */
    public double getZoomFactor();

    /**
     *
     * @param zoom
     */
    public void setZoomFactor(double zoom);

    /**
     *
     * @return
     */
    public Coordinate getCenter();

    /**
     *
     * @param center
     */
    public void setCenter(Coordinate center);

    //some map actions
    /**
     *
     * @param adjustment
     */
    public void zoomIn(double adjustment);

    /**
     *
     * @param adjustment
     */
    public void zoomOut(double adjustment);

    /**
     *
     * @param x
     * @param y
     */
    public void pan(int x, int y);

    /**
     *
     * @param panning
     */
    public void setPanning(boolean panning);

    /**
     *
     * @return
     */
    public boolean isPanning();

    /**
     *
     * @param cursor
     */
    public void setCursor(Cursor cursor);

    /**
     *
     * @param l
     */
    public void addMouseListener(MouseListener l);

    /**
     *
     * @param l
     */
    public void addMouseMotionListener(MouseMotionListener l);
}
