bugfixes, improved action framework, added actions
This commit is contained in:
@@ -5,17 +5,38 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.keawe.tools.translations.Translation;
|
||||
import de.srsoftware.web4rail.Application;
|
||||
import de.srsoftware.web4rail.Plan;
|
||||
import de.srsoftware.web4rail.Route;
|
||||
import de.srsoftware.web4rail.Window;
|
||||
import de.srsoftware.web4rail.moving.Train;
|
||||
import de.srsoftware.web4rail.tiles.Contact;
|
||||
|
||||
public abstract class Action {
|
||||
public static final Logger LOG = LoggerFactory.getLogger(Action.class);
|
||||
private static final String TYPE = "type";
|
||||
|
||||
public abstract void fire(Plan plan) throws IOException;
|
||||
|
||||
public static class Context {
|
||||
public Plan plan = null;
|
||||
public Contact contact = null;
|
||||
public Route route = null;
|
||||
public Train train = null;
|
||||
|
||||
public Context(Contact c) {
|
||||
contact = c;
|
||||
route = contact.route();
|
||||
if (route == null) return;
|
||||
train = route.train;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void fire(Context context) throws IOException;
|
||||
|
||||
public JSONObject json() {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put(TYPE, getClass().getSimpleName());
|
||||
|
||||
@@ -2,17 +2,14 @@ package de.srsoftware.web4rail.actions;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.srsoftware.web4rail.Route;
|
||||
|
||||
public class ActivateRoute extends RouteAction {
|
||||
|
||||
|
||||
public ActivateRoute(int routeId) {
|
||||
super(routeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Route route) throws IOException {
|
||||
route.activate();
|
||||
public void fire(Context context) throws IOException {
|
||||
context.route.activate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@ package de.srsoftware.web4rail.actions;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.srsoftware.web4rail.Route;
|
||||
|
||||
public class FinishRoute extends RouteAction {
|
||||
|
||||
public FinishRoute(int routeId) {
|
||||
@@ -11,7 +9,7 @@ public class FinishRoute extends RouteAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Route route) throws IOException {
|
||||
route.finish();
|
||||
public void fire(Context context) throws IOException {
|
||||
context.route.finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
package de.srsoftware.web4rail.actions;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import de.srsoftware.web4rail.Plan;
|
||||
import de.srsoftware.web4rail.Route;
|
||||
|
||||
public abstract class RouteAction extends Action {
|
||||
|
||||
static final String ROUTE = "route";
|
||||
@@ -22,11 +17,4 @@ public abstract class RouteAction extends Action {
|
||||
json.put(ROUTE, routeId);
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Plan plan) throws IOException {
|
||||
fire(plan.route(routeId));
|
||||
}
|
||||
|
||||
protected abstract void fire(Route route) throws IOException;
|
||||
}
|
||||
|
||||
@@ -2,18 +2,16 @@ package de.srsoftware.web4rail.actions;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.srsoftware.web4rail.Route;
|
||||
import de.srsoftware.web4rail.tiles.Signal;
|
||||
|
||||
public class SetSignalsToStop extends RouteAction {
|
||||
|
||||
|
||||
public SetSignalsToStop(int routeId) {
|
||||
super(routeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Route route) throws IOException {
|
||||
route.setSignals(Signal.STOP);
|
||||
public void fire(Context context) throws IOException {
|
||||
context.route.setSignals(Signal.STOP);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import de.srsoftware.tools.Tag;
|
||||
import de.srsoftware.web4rail.Constants;
|
||||
import de.srsoftware.web4rail.Route;
|
||||
import de.srsoftware.web4rail.Window;
|
||||
import de.srsoftware.web4rail.moving.Train;
|
||||
import de.srsoftware.web4rail.tags.Button;
|
||||
import de.srsoftware.web4rail.tags.Form;
|
||||
import de.srsoftware.web4rail.tags.Input;
|
||||
@@ -26,9 +25,8 @@ public class SpeedReduction extends RouteAction implements Constants{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Route route) {
|
||||
Train train = route.train;
|
||||
if (train != null && train.speed > maxSpeed) train.setSpeed(maxSpeed);
|
||||
public void fire(Context context) {
|
||||
if (context.train != null && context.train.speed > maxSpeed) context.train.setSpeed(maxSpeed);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package de.srsoftware.web4rail.actions;
|
||||
|
||||
import de.srsoftware.web4rail.Constants;
|
||||
import de.srsoftware.web4rail.Route;
|
||||
import de.srsoftware.web4rail.moving.Train;
|
||||
|
||||
public class TurnTrain extends RouteAction implements Constants{
|
||||
|
||||
@@ -11,8 +9,7 @@ public class TurnTrain extends RouteAction implements Constants{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fire(Route route) {
|
||||
Train train = route.train;
|
||||
if (train != null) train.turn();
|
||||
public void fire(Context context) {
|
||||
if (context.train != null) context.train.turn();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user