package de.srsoftware.web4rail.actions; import java.util.HashMap; import java.util.List; import org.json.JSONObject; import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.Window; import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tiles.Turnout; import de.srsoftware.web4rail.tiles.Turnout.State; public class SetTurnout extends Action { public SetTurnout(BaseClass parent) { super(parent); } private Turnout turnout = null; private Turnout.State state = State.STRAIGHT; @Override public boolean fire(Context context) { if (isNull(turnout)) return false; if (!turnout.state(state).succeeded()) return false; try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } return true; } @Override public JSONObject json() { JSONObject json = super.json(); if (isSet(turnout)) { json.put(TURNOUT, turnout.id()); json.put(Turnout.STATE, state); } return json; } @Override public Action load(JSONObject json) { super.load(json); String turnoutId = json.getString(TURNOUT); if (isSet(turnoutId)) { turnout = BaseClass.get(new Id(turnoutId)); state = Turnout.State.valueOf(json.getString(Turnout.STATE)); } return this; } @Override protected Window properties(List