// **********************************************************************
//
// <copyright>
//
// BBN Technologies
// 10 Moulton Street
// Cambridge, MA 02138
// (617) 873-8000
//
// Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/omGraphics/event/MapMouseInterpreter.java,v $
// $RCSfile: MapMouseInterpreter.java,v $
// $Revision: 1.5 $
// $Date: 2004/10/14 18:06:17 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.omGraphics.event;
import java.awt.event.MouseEvent;
import com.bbn.openmap.event.MapMouseListener;
import com.bbn.openmap.omGraphics.OMGraphic;
/**
* A MapMouseInterpreter is an extension of the MapMouseListener that
* has some understanding how MouseEvents on a Map relate to an
* OMGraphicList, and what kind of actions should be taken on the
* OMGraphics on a list. This interface describes specific actions
* being taken on OMGraphics over a map, and the implementing class
* can then take this information to make more abstract calls on its
* GestureResponsePolicy.
*/
public interface MapMouseInterpreter extends MapMouseListener {
/**
* A method for the GestureResponsePolicy to find out what the
* last MouseEvent was, in case it needs it to react to the GRP
* notifications.
*/
public MouseEvent getCurrentMouseEvent();
/**
* Notification that the background was left-clicked upon.
*/
public boolean leftClick(MouseEvent me);
/**
* Notification that a particular OMGraphic was left-clicked upon.
*/
public boolean leftClick(OMGraphic omg, MouseEvent me);
/**
* Notification that a particular OMGraphic, previously
* left-clicked upon, has been un-clicked. Most likely due to the
* user clicking on another OMGraphic, using a different mouse
* button to click on this same OMGraphic, or when the background
* map was clicked upon.
*/
public boolean leftClickOff(OMGraphic omg, MouseEvent me);
/**
* Notification that the background was right-clicked upon.
*/
public boolean rightClick(MouseEvent me);
/**
* Notification that a particular OMGraphic was right-clicked
* upon.
*/
public boolean rightClick(OMGraphic omg, MouseEvent me);
/**
* Notification that a particular OMGraphic, previously
* right-clicked upon, has been un-clicked. Most likely due to the
* user clicking on another OMGraphic, using a different mouse
* button to click on this same OMGraphic, or when the background
* map was clicked upon.
*/
public boolean rightClickOff(OMGraphic omg, MouseEvent me);
/**
* Notification that the mouse is being moved over the map at a
* certain location, and is not over any OMGraphics.
*/
public boolean mouseOver(MouseEvent me);
/**
* Notification that the mouse is over a particluar OMGraphic.
*/
public boolean mouseOver(OMGraphic omg, MouseEvent me);
/**
* Notification that the mouse has moved off of an OMGraphic it
* was previously over.
*/
public boolean mouseNotOver(OMGraphic omg);
/**
* Set the GestureResponsePolicy to notify when MouseEvents have
* been interpreted.
*/
public void setGRP(GestureResponsePolicy urp);
/**
* Get the GestureResponsePolicy to notify when MouseEvents have
* been interpreted.
*/
public GestureResponsePolicy getGRP();
/**
* Check whether the MapMouseInterpreter is responding to events.
* @return true if willing to respond to MouseEvents.
*/
public boolean isActive();
/**
* Set whether the MapMouseInterpreter responds to mouse events.
* @param active true if it should respond to mouse events.
*/
public void setActive(boolean active);
}