package NET.worlds.scape; import NET.worlds.console.Window; import java.io.IOException; import java.util.Enumeration; public class SetZoomMode extends Action implements MomentumBehavior { private boolean zoomMode; private static Object classCookie = new Object(); public SetZoomMode(boolean on) { this.zoomMode = on; } public SetZoomMode() { } @Override public Persister trigger(Event e, Persister seqID) { SuperRoot owner = this.getOwner(); if (owner != null && owner instanceof Pilot && ((Pilot)owner).isActive()) { Window w = Window.getMainWindow(); if (w == null) { return null; } else { w.setDeltaMode(this.zoomMode); return null; } } else { return null; } } @Override public void saveState(Saver s) throws IOException { s.saveVersion(0, classCookie); super.saveState(s); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 0: super.restoreState(r); return; default: throw new TooNewException(); } } @Override public void transferFrom(Enumeration oldMBs) { while (oldMBs.hasMoreElements()) { SuperRoot sr = (SuperRoot)oldMBs.nextElement(); if (sr instanceof SetZoomMode) { this.zoomMode = ((SetZoomMode)sr).zoomMode; break; } } } }