// ********************************************************************** // // <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/editable/PolyAddPointState.java,v // $ // $RCSfile: PolyAddPointState.java,v $ // $Revision: 1.4 $ // $Date: 2004/10/14 18:06:16 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.omGraphics.editable; import java.awt.event.MouseEvent; import com.bbn.openmap.omGraphics.EditableOMGraphic; import com.bbn.openmap.omGraphics.EditableOMPoly; import com.bbn.openmap.omGraphics.event.EOMGEvent; import com.bbn.openmap.util.Debug; import com.bbn.openmap.util.stateMachine.State; public class PolyAddPointState extends State { protected EditableOMGraphic graphic; public PolyAddPointState(EditableOMPoly eomg) { graphic = eomg; } /** */ public boolean mouseReleased(MouseEvent e) { Debug.message("eomg", "PointStateMachine|add point state|mouseReleased"); if (e.getClickCount() > 1) { ((EditableOMPoly) graphic).evaluateEnclosed(); if ((graphic.getStateMachine()).isOffsetNeeded() == true) { graphic.getStateMachine().setOffset(); graphic.getStateMachine().setOffsetNeeded(false); } else { graphic.getStateMachine().setSelected(); } // Save state graphic.fireEvent(EOMGCursors.DEFAULT, "", e, EOMGEvent.EOMG_UNDO); graphic.redraw(e, true); return false; } // If we are in this state, the moving point should be set to // the new point, which actually hasn't been placed yet. So, // we need to check the click count. If it is 1, then we need // to set the point, and create a new one and stay in this // state. If it is more than 1, we need to set the point, // then change state to the selected state because we are done // drawing the poly. ((EditableOMPoly) graphic).addMovingPoint(e.getX(), e.getY()); graphic.fireEvent(EOMGEvent.EOMG_SELECTED); return false; } public boolean mouseMoved(MouseEvent e) { Debug.message("eomgdetail", "PolyStateMachine|add point state|mouseMoved"); graphic.redraw(e); return false; } public boolean mouseDragged(MouseEvent e) { Debug.message("eomgdetail", "PolyStateMachine|add point state|mouseDragged"); graphic.redraw(e); return false; } }