// **********************************************************************
//
// <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/layer/editor/EditorLayerMouseMode.java,v $
// $RCSfile: EditorLayerMouseMode.java,v $
// $Revision: 1.6 $
// $Date: 2004/10/14 18:05:55 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.layer.editor;
import java.awt.event.MouseEvent;
import com.bbn.openmap.event.CoordMouseMode;
import com.bbn.openmap.event.SelectMouseMode;
/**
* The EditorLayerMouseMode is a mouse mode that is made active when
* the EditorTool needs events. It serves to ensure that the
* EditorLayer is the only layer receiving events from the MapBean
* when the EditorTool needs them, with the addition bonus of being
* invisible. The EditorTool should take care of indicating what it is
* doing with the MouseEvents, by creating certain OMGraphics,
* selecting certain types of objects, etc.
*/
public class EditorLayerMouseMode extends CoordMouseMode {
/**
* Mouse Mode identifier, which is "EditorLayer". This is returned
* on getID(). This mouse mode is invisible, so id doesn't have to
* be pretty for the GUI.
*/
public transient String modeID = null;
/**
* Construct a EditorLayerMouseMode. Default constructor. Sets the
* ID to the modeID, and the consume mode to true.
*
* @param idToUse a uniqueID to use just for a particular layer.
*/
public EditorLayerMouseMode(String idToUse) {
this(idToUse, true);
}
/**
* Construct a EditorLayerMouseMode. The constructor that lets you
* set the consume mode.
*
* @param idToUse a uniqueID to use just for a particular layer.
* @param consumeEvents the consume mode setting.
*/
public EditorLayerMouseMode(String idToUse, boolean consumeEvents) {
super(idToUse, consumeEvents);
modeID = idToUse;
setVisible(false);
}
SelectMouseMode gestures = null;
public void findAndInit(Object someObj) {
super.findAndInit(someObj);
if (someObj instanceof SelectMouseMode
&& ((SelectMouseMode) someObj).getID() == SelectMouseMode.modeID) {
gestures = (SelectMouseMode) someObj;
}
}
public void findAndUndo(Object someObj) {
super.findAndInit(someObj);
if (someObj == gestures) {
gestures = null;
}
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseClicked(MouseEvent e) {
mouseSupport.fireMapMouseClicked(e);
fireMouseLocation(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mousePressed(MouseEvent e) {
mouseSupport.fireMapMousePressed(e);
fireMouseLocation(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseReleased(MouseEvent e) {
mouseSupport.fireMapMouseReleased(e);
fireMouseLocation(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseEntered(MouseEvent e) {
mouseSupport.fireMapMouseEntered(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseExited(MouseEvent e) {
mouseSupport.fireMapMouseExited(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseDragged(MouseEvent e) {
if (gestures != null) {
gestures.mouseDragged(e);
}
mouseSupport.fireMapMouseDragged(e);
fireMouseLocation(e);
}
/**
* Fires the MapMouseSupport method.
*
* @param e mouse event.
*/
public void mouseMoved(MouseEvent e) {
if (gestures != null) {
gestures.mouseMoved(e);
}
mouseSupport.fireMapMouseMoved(e);
fireMouseLocation(e);
}
}