// **********************************************************************
//
// <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/ListStateMachine.java,v
// $
// $RCSfile: ListStateMachine.java,v $
// $Revision: 1.3 $
// $Date: 2004/10/14 18:06:16 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.omGraphics.editable;
import java.util.Iterator;
import com.bbn.openmap.omGraphics.EditableOMGraphic;
import com.bbn.openmap.omGraphics.EditableOMGraphicList;
import com.bbn.openmap.util.Debug;
import com.bbn.openmap.util.stateMachine.State;
public class ListStateMachine extends EOMGStateMachine {
public ListStateMachine(EditableOMGraphicList list) {
super(list);
}
protected State[] init() {
Debug.message("eomg", "ListStateMachine.init()");
State[] states = super.init();
states[GRAPHIC_SELECTED] = new ListSelectedState(graphic);
states[GRAPHIC_UNSELECTED] = new ListUnselectedState(graphic);
return states;
}
/**
* Check to see if the graphic offset point needs to be defined.
*/
public boolean isOffsetNeeded() {
return offsetNeeded;
}
public void setState(int state) {
super.setState(state);
if (Debug.debugging("eomg")) {
Debug.output("ListStateMachine.setState: Setting state to "
+ states.elementAt(state).getClass().getName());
}
for (Iterator it = ((EditableOMGraphicList) graphic).getEditables()
.iterator(); it.hasNext();) {
try {
EditableOMGraphic editable = (EditableOMGraphic) it.next();
editable.getStateMachine().setState(state);
if (Debug.debugging("eomg")) {
Debug.debugging(" on " + editable.getClass().getName());
}
} catch (NullPointerException npe) {
Debug.output("ListStateMachine: something's not right setting ListStateMachine.setState()");
}
}
}
}