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.Signal; import de.srsoftware.web4rail.tiles.Tile; public class SetSignal extends Action { public SetSignal(BaseClass parent) { super(parent); } private static final String SIGNAL = "signal"; private Signal signal = null; private String state = Signal.STOP; @Override public boolean fire(Context context) { if (isNull(signal)) return false; return signal.state(state); } @Override public JSONObject json() { JSONObject json = super.json(); if (isSet(signal)) { json.put(SIGNAL, signal.id()); json.put(Signal.STATE, state); } return json; } @Override public Action load(JSONObject json) { super.load(json); Tile tile = plan.get(new Id(json.getString(SIGNAL)), false); if (tile instanceof Signal) signal = (Signal) tile; state = json.getString(Signal.STATE); return this; } @Override protected Window properties(List