Index: org/openstreetmap/gui/jmapviewer/OsmMercator.java
===================================================================
--- org/openstreetmap/gui/jmapviewer/OsmMercator.java	(revision 26686)
+++ org/openstreetmap/gui/jmapviewer/OsmMercator.java	(working copy)
@@ -18,7 +18,19 @@
     private static int TILE_SIZE = 256;
     public static final double MAX_LAT = 85.05112877980659;
     public static final double MIN_LAT = -85.05112877980659;
+    private static double EARTH_RADIUS_KM = 6371;
+    
+	private static double KMTOM=1000;
+	private static double MTOKM=1/1000;
 
+	public static double kmToMeters(double kmeters) {
+		return kmeters*KMTOM;
+	}
+	
+	public static double metersToKm(double meters) {
+		return meters*MTOKM;
+	}
+	
     public static double radius(int aZoomlevel) {
         return (TILE_SIZE * (1 << aZoomlevel)) / (2.0 * Math.PI);
     }
@@ -41,6 +53,50 @@
     public static int falseNorthing(int aZoomlevel) {
         return (-1 * getMaxPixels(aZoomlevel) / 2);
     }
+    
+    /**
+     * Transform pixelspace to coordinates and get the distance.
+     *
+     * @param x1 the first x coordinate
+     * @param y1 the first y coordinate
+     * @param x2 the second x coordinate
+     * @param y2 the second y coordinate
+     * 
+     * @param zoomLevel the zoom level
+     * @return the distance
+     * @author Jason Huntley
+     */
+    public static double getDistance(int x1, int y1, int x2, int y2, int zoomLevel) {
+    	double la1 = YToLat(y1, zoomLevel);
+    	double lo1 = XToLon(x1, zoomLevel);
+    	double la2 = YToLat(y2, zoomLevel);
+    	double lo2 = XToLon(x2, zoomLevel);
+    	
+    	return getDistance(la1, lo1, la2, lo2);
+    }
+    
+	/**
+	 * Gets the distance using Spherical law of cosines.
+	 *
+	 * @param la1 the Latitude in degrees
+	 * @param lo1 the Longitude in degrees
+	 * @param la2 the Latitude from 2nd coordinate in degrees
+	 * @param lo2 the Longitude from 2nd coordinate in degrees
+	 * @return the distance
+	 * @author Jason Huntley
+	 */
+	public static double getDistance(double la1, double lo1, double la2, double lo2) {
+	    double aStartLat = Math.toRadians(la1);
+	    double aStartLong = Math.toRadians(lo1);
+	    double aEndLat =Math.toRadians(la2);
+	    double aEndLong = Math.toRadians(lo2);
+
+	    double distance = Math.acos(Math.sin(aStartLat) * Math.sin(aEndLat)
+	        + Math.cos(aStartLat) * Math.cos(aEndLat)
+	        * Math.cos(aEndLong - aStartLong));
+
+	    return (EARTH_RADIUS_KM * distance);		
+	}
 
     /**
      * Transform longitude to pixelspace
Index: org/openstreetmap/gui/jmapviewer/JMapViewer.java
===================================================================
--- org/openstreetmap/gui/jmapviewer/JMapViewer.java	(revision 26686)
+++ org/openstreetmap/gui/jmapviewer/JMapViewer.java	(working copy)
@@ -25,7 +25,11 @@
 import javax.swing.JSlider;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
+import javax.swing.event.EventListenerList;
 
+import org.openstreetmap.gui.jmapviewer.events.JMVCommandEvent;
+import org.openstreetmap.gui.jmapviewer.events.JMVCommandEvent.COMMAND;
+import org.openstreetmap.gui.jmapviewer.interfaces.JMapViewerEventListener;
 import org.openstreetmap.gui.jmapviewer.interfaces.MapMarker;
 import org.openstreetmap.gui.jmapviewer.interfaces.MapPolygon;
 import org.openstreetmap.gui.jmapviewer.interfaces.MapRectangle;
@@ -36,12 +40,12 @@
 import org.openstreetmap.gui.jmapviewer.tilesources.OsmTileSource;
 
 /**
- * 
+ *
  * Provides a simple panel that displays pre-rendered map tiles loaded from the
  * OpenStreetMap project.
- * 
+ *
  * @author Jan Peter Stotz
- * 
+ *
  */
 public class JMapViewer extends JPanel implements TileLoaderListener {
 
@@ -117,8 +121,8 @@
         tileSource = new OsmTileSource.Mapnik();
         tileController = new TileController(tileSource, tileCache, this);
         mapMarkerList = new LinkedList<MapMarker>();
+         mapPolygonList = new LinkedList<MapPolygon>();
         mapRectangleList = new LinkedList<MapRectangle>();
-        mapPolygonList = new LinkedList<MapPolygon>();
         mapMarkersVisible = true;
         mapRectanglesVisible = true;
         mapPolygonsVisible = true;
@@ -187,7 +191,7 @@
     /**
      * Changes the map pane so that it is centered on the specified coordinate
      * at the given zoom level.
-     * 
+     *
      * @param lat
      *            latitude of the specified coordinate
      * @param lon
@@ -203,7 +207,7 @@
      * Changes the map pane so that the specified coordinate at the given zoom
      * level is displayed on the map at the screen coordinate
      * <code>mapPoint</code>.
-     * 
+     *
      * @param mapPoint
      *            point on the map denoted in pixels where the coordinate should
      *            be set
@@ -264,13 +268,13 @@
             nbElemToCheck += mapPolygonList.size();
         if (nbElemToCheck == 0)
             return;
-        
+
         int x_min = Integer.MAX_VALUE;
         int y_min = Integer.MAX_VALUE;
         int x_max = Integer.MIN_VALUE;
         int y_max = Integer.MIN_VALUE;
         int mapZoomMax = tileController.getTileSource().getMaxZoom();
-        
+
         if (markers) {
             for (MapMarker marker : mapMarkerList) {
                 int x = OsmMercator.LonToX(marker.getLon(), mapZoomMax);
@@ -290,7 +294,7 @@
                 y_min = Math.min(y_min, OsmMercator.LatToY(rectangle.getBottomRight().getLat(), mapZoomMax));
             }
         }
-        
+
         if (polygons) {
             for (MapPolygon polygon : mapPolygonList) {
                 for (Coordinate c : polygon.getPoints()) {
@@ -303,7 +307,7 @@
                 }
             }
         }
-        
+
         int height = Math.max(0, getHeight());
         int width = Math.max(0, getWidth());
         int newZoom = mapZoomMax;
@@ -321,7 +325,8 @@
         y /= z;
         setDisplayPosition(x, y, newZoom);
     }
-    
+
+
     /**
      * Sets the displayed map pane and zoom level so that all map markers are
      * visible.
@@ -337,7 +342,7 @@
     public void setDisplayToFitMapRectangles() {
         setDisplayToFitMapElements(false, true, false);
     }
-    
+
     /**
      * Sets the displayed map pane and zoom level so that all map polygons are
      * visible.
@@ -347,9 +352,23 @@
     }
 
     /**
+	 * @return the center
+	 */
+	public Point getCenter() {
+		return center;
+	}
+
+	/**
+	 * @param center the center to set
+	 */
+	public void setCenter(Point center) {
+		this.center = center;
+	}
+
+	/**
      * Calculates the latitude/longitude coordinate of the center of the
      * currently displayed map area.
-     * 
+     *
      * @return latitude / longitude
      */
     public Coordinate getPosition() {
@@ -361,7 +380,7 @@
     /**
      * Converts the relative pixel coordinate (regarding the top left corner of
      * the displayed map) into a latitude / longitude coordinate
-     * 
+     *
      * @param mapPoint
      *            relative pixel coordinate regarding the top left corner of the
      *            displayed map
@@ -374,7 +393,7 @@
     /**
      * Converts the relative pixel coordinate (regarding the top left corner of
      * the displayed map) into a latitude / longitude coordinate
-     * 
+     *
      * @param mapPointX
      * @param mapPointY
      * @return
@@ -389,7 +408,7 @@
 
     /**
      * Calculates the position on the map of a given coordinate
-     * 
+     *
      * @param lat
      * @param lon
      * @param checkOutside
@@ -410,7 +429,7 @@
 
     /**
      * Calculates the position on the map of a given coordinate
-     * 
+     *
      * @param lat
      * @param lon
      * @return point on the map or <code>null</code> if the point is not visible
@@ -421,7 +440,7 @@
 
     /**
      * Calculates the position on the map of a given coordinate
-     * 
+     *
      * @param coord
      * @return point on the map or <code>null</code> if the point is not visible
      */
@@ -434,7 +453,7 @@
 
     /**
      * Calculates the position on the map of a given coordinate
-     * 
+     *
      * @param coord
      * @return point on the map or <code>null</code> if the point is not visible
      *         and checkOutside set to <code>true</code>
@@ -446,7 +465,30 @@
             return null;
     }
 
-    @Override
+	/**
+	 * Gets the meter per pixel.
+	 *
+	 * @return the meter per pixel
+	 * @author Jason Huntley
+	 */
+	public double getMeterPerPixel() {
+		Point origin=new Point(5,5);
+		Point center=new Point(getWidth()/2, getHeight()/2);
+
+		double pDistance=center.distance(origin);
+
+		Coordinate originCoord=getPosition(origin);
+		Coordinate centerCoord=getPosition(center);
+
+		double kmDistance=OsmMercator.getDistance(originCoord.getLat(), originCoord.getLon(),
+				centerCoord.getLat(), centerCoord.getLon());
+
+		double mDistance=OsmMercator.kmToMeters(kmDistance);
+
+		return mDistance/pDistance;
+	}
+
+	@Override
     protected void paintComponent(Graphics g) {
         super.paintComponent(g);
 
@@ -542,6 +584,7 @@
                 paintMarker(g, marker);
             }
         }
+
         paintAttribution(g);
     }
 
@@ -587,10 +630,10 @@
             polygon.paint(g, points);
         }
     }
-    
+
     /**
      * Moves the visible map pane.
-     * 
+     *
      * @param x
      *            horizontal movement in pixel.
      * @param y
@@ -645,6 +688,8 @@
         tileController.cancelOutstandingJobs(); // Clearing outstanding load
         // requests
         setDisplayPositionByLatLon(mapPoint, zoomPos.getLat(), zoomPos.getLon(), zoom);
+
+        this.fireJMVEvent(new JMVCommandEvent(COMMAND.ZOOM, this));
     }
 
     public void setZoom(int zoom) {
@@ -655,7 +700,7 @@
      * Every time the zoom level changes this method is called. Override it in
      * derived implementations for adapting zoom dependent values. The new zoom
      * level can be obtained via {@link #getZoom()}.
-     * 
+     *
      * @param oldZoom
      *            the previous zoom level
      */
@@ -682,7 +727,7 @@
 
     /**
      * Enables or disables painting of the {@link MapMarker}
-     * 
+     *
      * @param mapMarkersVisible
      * @see #addMapMarker(MapMarker)
      * @see #getMapMarkerList()
@@ -763,7 +808,7 @@
         mapPolygonList.clear();
         repaint();
     }
-    
+
     public void setZoomContolsVisible(boolean visible) {
         zoomSlider.setVisible(visible);
         zoomInButton.setVisible(visible);
@@ -808,7 +853,7 @@
 
     /**
      * Enables or disables painting of the {@link MapRectangle}
-     * 
+     *
      * @param mapRectanglesVisible
      * @see #addMapRectangle(MapRectangle)
      * @see #getMapRectangleList()
@@ -824,7 +869,7 @@
 
     /**
      * Enables or disables painting of the {@link MapPolygon}
-     * 
+     *
      * @param mapPolygonsVisible
      * @see #addMapPolygon(MapPolygon)
      * @see #getMapPolygonList()
@@ -836,7 +881,7 @@
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see
      * org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener#getTileCache
      * ()
@@ -898,4 +943,26 @@
 
         g.setFont(font);
     }
+
+    protected EventListenerList listenerList = new EventListenerList();
+
+	/**
+	 * @param listener to set
+	 */
+	public void addJMVListener(JMapViewerEventListener listener) {
+		listenerList.add(JMapViewerEventListener.class, listener);
+	}
+
+	public void removeJMVListener(JMapViewerEventListener listener) {
+		listenerList.remove(JMapViewerEventListener.class, listener);
+	}
+
+    void fireJMVEvent(JMVCommandEvent evt) {
+        Object[] listeners = listenerList.getListenerList();
+        for (int i=0; i<listeners.length; i+=2) {
+            if (listeners[i]==JMapViewerEventListener.class) {
+                ((JMapViewerEventListener)listeners[i+1]).processCommand(evt);
+            }
+        }
+    }
 }
Index: org/openstreetmap/gui/jmapviewer/Demo.java
===================================================================
--- org/openstreetmap/gui/jmapviewer/Demo.java	(revision 26686)
+++ org/openstreetmap/gui/jmapviewer/Demo.java	(working copy)
@@ -16,6 +16,8 @@
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 
+import org.openstreetmap.gui.jmapviewer.events.JMVCommandEvent;
+import org.openstreetmap.gui.jmapviewer.interfaces.JMapViewerEventListener;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
 import org.openstreetmap.gui.jmapviewer.tilesources.BingAerialTileSource;
@@ -28,105 +30,147 @@
  * @author Jan Peter Stotz
  *
  */
-public class Demo extends JFrame {
+public class Demo extends JFrame implements JMapViewerEventListener  {
+
+	private static final long serialVersionUID = 1L;
+
+	private JMapViewer map = null;
+
+	private JLabel zoomLabel=null;
+	private JLabel zoomValue=null;
+
+	private JLabel mperpLabelName=null;
+	private JLabel mperpLabelValue = null;
+
+	public Demo() {
+		super("JMapViewer Demo");
+		setSize(400, 400);
+
+		map = new JMapViewer();
+
+		// Listen to the map viewer for user operations so components will
+		// recieve events and update
+		map.addJMVListener(this);
+
+		// final JMapViewer map = new JMapViewer(new MemoryTileCache(),4);
+		// map.setTileLoader(new OsmFileCacheTileLoader(map));
+		// new DefaultMapController(map);
+
+		setLayout(new BorderLayout());
+		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		setExtendedState(JFrame.MAXIMIZED_BOTH);
+		JPanel panel = new JPanel();
+		JPanel helpPanel = new JPanel();
+
+		mperpLabelName=new JLabel("Meters/Pixels: ");
+		mperpLabelValue=new JLabel(String.format("%s",map.getMeterPerPixel()));
 
-    private static final long serialVersionUID = 1L;
+		zoomLabel=new JLabel("Zoom: ");
+		zoomValue=new JLabel(String.format("%s", map.getZoom()));
 
-    public Demo() {
-        super("JMapViewer Demo");
-        setSize(400, 400);
-        final JMapViewer map = new JMapViewer();
-        // final JMapViewer map = new JMapViewer(new MemoryTileCache(),4);
-        // map.setTileLoader(new OsmFileCacheTileLoader(map));
-        // new DefaultMapController(map);
-        setLayout(new BorderLayout());
-        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        setExtendedState(JFrame.MAXIMIZED_BOTH);
-        JPanel panel = new JPanel();
-        JPanel helpPanel = new JPanel();
-        add(panel, BorderLayout.NORTH);
-        add(helpPanel, BorderLayout.SOUTH);
-        JLabel helpLabel = new JLabel("Use right mouse button to move,\n "
-                + "left double click or mouse wheel to zoom.");
-        helpPanel.add(helpLabel);
-        JButton button = new JButton("setDisplayToFitMapMarkers");
-        button.addActionListener(new ActionListener() {
+		add(panel, BorderLayout.NORTH);
+		add(helpPanel, BorderLayout.SOUTH);
+		JLabel helpLabel = new JLabel("Use right mouse button to move,\n "
+				+ "left double click or mouse wheel to zoom.");
+		helpPanel.add(helpLabel);
+		JButton button = new JButton("setDisplayToFitMapMarkers");
+		button.addActionListener(new ActionListener() {
 
-            public void actionPerformed(ActionEvent e) {
-                map.setDisplayToFitMapMarkers();
-            }
-        });
-        JComboBox tileSourceSelector = new JComboBox(new TileSource[] { new OsmTileSource.Mapnik(),
-                new OsmTileSource.TilesAtHome(), new OsmTileSource.CycleMap(), new BingAerialTileSource() });
-        tileSourceSelector.addItemListener(new ItemListener() {
-            public void itemStateChanged(ItemEvent e) {
-                map.setTileSource((TileSource) e.getItem());
-            }
-        });
-        JComboBox tileLoaderSelector;
-        try {
-            tileLoaderSelector = new JComboBox(new TileLoader[] { new OsmFileCacheTileLoader(map),
-                    new OsmTileLoader(map) });
-        } catch (IOException e) {
-            tileLoaderSelector = new JComboBox(new TileLoader[] { new OsmTileLoader(map) });
-        }
-        tileLoaderSelector.addItemListener(new ItemListener() {
-            public void itemStateChanged(ItemEvent e) {
-                map.setTileLoader((TileLoader) e.getItem());
-            }
-        });
-        map.setTileLoader((TileLoader) tileLoaderSelector.getSelectedItem());
-        panel.add(tileSourceSelector);
-        panel.add(tileLoaderSelector);
-        final JCheckBox showMapMarker = new JCheckBox("Map markers visible");
-        showMapMarker.setSelected(map.getMapMarkersVisible());
-        showMapMarker.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				map.setDisplayToFitMapMarkers();
+			}
+		});
+		JComboBox tileSourceSelector = new JComboBox(new TileSource[] { new OsmTileSource.Mapnik(),
+				new OsmTileSource.TilesAtHome(), new OsmTileSource.CycleMap(), new BingAerialTileSource() });
+		tileSourceSelector.addItemListener(new ItemListener() {
+			public void itemStateChanged(ItemEvent e) {
+				map.setTileSource((TileSource) e.getItem());
+			}
+		});
+		JComboBox tileLoaderSelector;
+		try {
+			tileLoaderSelector = new JComboBox(new TileLoader[] { new OsmFileCacheTileLoader(map),
+					new OsmTileLoader(map) });
+		} catch (IOException e) {
+			tileLoaderSelector = new JComboBox(new TileLoader[] { new OsmTileLoader(map) });
+		}
+		tileLoaderSelector.addItemListener(new ItemListener() {
+			public void itemStateChanged(ItemEvent e) {
+				map.setTileLoader((TileLoader) e.getItem());
+			}
+		});
+		map.setTileLoader((TileLoader) tileLoaderSelector.getSelectedItem());
+		panel.add(tileSourceSelector);
+		panel.add(tileLoaderSelector);
+		final JCheckBox showMapMarker = new JCheckBox("Map markers visible");
+		showMapMarker.setSelected(map.getMapMarkersVisible());
+		showMapMarker.addActionListener(new ActionListener() {
 
-            public void actionPerformed(ActionEvent e) {
-                map.setMapMarkerVisible(showMapMarker.isSelected());
-            }
-        });
-        panel.add(showMapMarker);
-        final JCheckBox showTileGrid = new JCheckBox("Tile grid visible");
-        showTileGrid.setSelected(map.isTileGridVisible());
-        showTileGrid.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				map.setMapMarkerVisible(showMapMarker.isSelected());
+			}
+		});
+		panel.add(showMapMarker);
+		final JCheckBox showTileGrid = new JCheckBox("Tile grid visible");
+		showTileGrid.setSelected(map.isTileGridVisible());
+		showTileGrid.addActionListener(new ActionListener() {
 
-            public void actionPerformed(ActionEvent e) {
-                map.setTileGridVisible(showTileGrid.isSelected());
-            }
-        });
-        panel.add(showTileGrid);
-        final JCheckBox showZoomControls = new JCheckBox("Show zoom controls");
-        showZoomControls.setSelected(map.getZoomContolsVisible());
-        showZoomControls.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				map.setTileGridVisible(showTileGrid.isSelected());
+			}
+		});
+		panel.add(showTileGrid);
+		final JCheckBox showZoomControls = new JCheckBox("Show zoom controls");
+		showZoomControls.setSelected(map.getZoomContolsVisible());
+		showZoomControls.addActionListener(new ActionListener() {
 
-            public void actionPerformed(ActionEvent e) {
-                map.setZoomContolsVisible(showZoomControls.isSelected());
-            }
-        });
-        panel.add(showZoomControls);
-        panel.add(button);
-        add(map, BorderLayout.CENTER);
+			public void actionPerformed(ActionEvent e) {
+				map.setZoomContolsVisible(showZoomControls.isSelected());
+			}
+		});
+		panel.add(showZoomControls);
+		panel.add(button);
 
-        //
-        map.addMapMarker(new MapMarkerDot(49.814284999, 8.642065999));
-        map.addMapMarker(new MapMarkerDot(49.91, 8.24));
-        map.addMapMarker(new MapMarkerDot(49.71, 8.64));
-        map.addMapMarker(new MapMarkerDot(48.71, -1));
-        map.addMapMarker(new MapMarkerDot(49.8588, 8.643));
+		panel.add(zoomLabel);
+		panel.add(zoomValue);
+		panel.add(mperpLabelName);
+		panel.add(mperpLabelValue);
 
-        // map.setDisplayPositionByLatLon(49.807, 8.6, 11);
-        // map.setTileGridVisible(true);
-    }
+		add(map, BorderLayout.CENTER);
 
-    /**
-     * @param args
-     */
-    public static void main(String[] args) {
-        // java.util.Properties systemProperties = System.getProperties();
-        // systemProperties.setProperty("http.proxyHost", "localhost");
-        // systemProperties.setProperty("http.proxyPort", "8008");
-        new Demo().setVisible(true);
-    }
+		//
+		map.addMapMarker(new MapMarkerDot(49.814284999, 8.642065999));
+		map.addMapMarker(new MapMarkerDot(49.91, 8.24));
+		map.addMapMarker(new MapMarkerDot(49.71, 8.64));
+		map.addMapMarker(new MapMarkerDot(48.71, -1));
+		map.addMapMarker(new MapMarkerDot(49.8588, 8.643));
+
+		// map.setDisplayPositionByLatLon(49.807, 8.6, 11);
+		// map.setTileGridVisible(true);
+	}
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		// java.util.Properties systemProperties = System.getProperties();
+		// systemProperties.setProperty("http.proxyHost", "localhost");
+		// systemProperties.setProperty("http.proxyPort", "8008");
+		new Demo().setVisible(true);
+	}
+
+	private void updateZoomParameters() {
+		if (mperpLabelValue!=null)
+			mperpLabelValue.setText(String.format("%s",map.getMeterPerPixel()));
+		if (zoomValue!=null)
+			zoomValue.setText(String.format("%s", map.getZoom()));
+	}
+
+	@Override
+	public void processCommand(JMVCommandEvent command) {
+		if (command.getCommand().equals(JMVCommandEvent.COMMAND.ZOOM)) {
+			updateZoomParameters();
+		}
+	}
 
 }
Index: org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java
===================================================================
--- org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java	(revision 0)
+++ org/openstreetmap/gui/jmapviewer/events/JMVCommandEvent.java	(revision 0)
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package org.openstreetmap.gui.jmapviewer.events;
+
+import java.util.EventObject;
+
+/**
+ * @author Jason Huntley
+ *
+ */
+public class JMVCommandEvent extends EventObject {
+	public static enum COMMAND {
+		ZOOM
+	}
+	
+	private COMMAND command;
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8701544867914969620L;
+	
+	public JMVCommandEvent(COMMAND cmd, Object source) {
+		super(source);
+		
+		setCommand(cmd);
+	}
+
+	public JMVCommandEvent(Object source) {
+		super(source);
+	}
+
+	/**
+	 * @return the command
+	 */
+	public COMMAND getCommand() {
+		return command;
+	}
+
+	/**
+	 * @param command the command to set
+	 */
+	public void setCommand(COMMAND command) {
+		this.command = command;
+	}
+}

Property changes on: org\openstreetmap\gui\jmapviewer\events\JMVCommandEvent.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: org/openstreetmap/gui/jmapviewer/interfaces/JMapViewerEventListener.java
===================================================================
--- org/openstreetmap/gui/jmapviewer/interfaces/JMapViewerEventListener.java	(revision 0)
+++ org/openstreetmap/gui/jmapviewer/interfaces/JMapViewerEventListener.java	(revision 0)
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package org.openstreetmap.gui.jmapviewer.interfaces;
+
+import java.util.EventListener;
+
+import org.openstreetmap.gui.jmapviewer.events.JMVCommandEvent;
+
+/**
+ * @author Jason Huntley
+ *
+ */
+public interface JMapViewerEventListener extends EventListener {
+	public void processCommand(JMVCommandEvent command);
+}

Property changes on: org\openstreetmap\gui\jmapviewer\interfaces\JMapViewerEventListener.java
___________________________________________________________________
Added: svn:eol-style
   + native

