The state is intended to be a abstract juncture in a pattern of events. The idea is that for a given state, an event will call a unique response. This class lets you define this juncture, and can be used as a Java adapter to define only the listener responses you care about. The state, as defined in your implementation, can reset the StateMachine to it's new state after it responds to an event.
Since this state machine can be used in OpenMap, the Mouse/MouseMotion Listeners are MapMouseListeners. This is to let OpenMap know not to send the result on to other layers that like to hear about events. This State class has a setting on how you want the unused MapMouseListener functions to respond to events. The default is false, and this means that other layers will have a chance to respond to events. If you want other layer's event reception to pause a little, set the mapMouseListenerResponse to true.