diff --git a/pom.xml b/pom.xml index e7f1ee9..38b9f2c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.0.10 + 1.0.11 Web4Rail jar Java Model Railway Control diff --git a/resources/css/style.css b/resources/css/style.css index ea3c9d8..d98eb3a 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -87,7 +87,7 @@ svg .block{ } svg circle{ - fill: gray; + fill: #d3d7cf; } .menu{ @@ -223,7 +223,7 @@ svg.straight .right{ } .active circle{ - fill: #ffcc88; + fill: #f57900; } polygon.oneway{ diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index fe2bf11..55546b4 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -2,6 +2,7 @@ Actions : Aktionen Actions\: : Aktionen: Actions and contacts : Aktionen und Kontakte Action type\: : Aktions-Typ +Actions will only fire, if all conditions are fullfilled. : Aktionen werden nur ausgeführt, wenn alle Bedingungen erfüllt sind. ActivateRoute : Route aktivieren add : hinzufügen Added {} : {} hinzugefügt diff --git a/src/main/java/de/srsoftware/web4rail/actions/Action.java b/src/main/java/de/srsoftware/web4rail/actions/Action.java index 3879027..11965ca 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/Action.java +++ b/src/main/java/de/srsoftware/web4rail/actions/Action.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; @@ -107,7 +106,7 @@ public abstract class Action extends BaseClass { return this.toString().equals(other.toString()); } - public abstract boolean fire(Context context) throws IOException; + public abstract boolean fire(Context context); public static Action get(int actionId) { return actions.get(actionId); diff --git a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java index 0b2d57c..822b49d 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java +++ b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -145,16 +144,10 @@ public class ActionList extends Vector implements Constants{ public boolean fire(Context context) { if (!isEmpty()) LOG.debug(t("Firing {}"),this); - boolean success = true; for (Action action : this) { - try { - success &= action.fire(context); - } catch (IOException e) { - LOG.warn("Action did not fire properly: {}",action,e); - success = false; - } + if (!action.fire(context)) return false; } - return success; + return true; } public int id() { diff --git a/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java b/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java index 2bd4960..2c4c8dd 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java +++ b/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Vector; @@ -36,7 +35,7 @@ public class ConditionalAction extends Action { private StringBuffer conditions() { StringBuffer sb = new StringBuffer(); for (int i = 0; i0) sb.append(t(" or ")); + if (i>0) sb.append(t(" and ")); sb.append(conditions.get(i).toString()); } return sb; @@ -45,6 +44,7 @@ public class ConditionalAction extends Action { private Tag conditionForm(HashMap params) { Fieldset fieldset = new Fieldset(t("Conditions")); + new Tag("p").content(t("Actions will only fire, if all conditions are fullfilled.")).addTo(fieldset); if (!conditions.isEmpty()) { Tag list = new Tag("ul"); for (Condition condition : conditions) { @@ -68,11 +68,11 @@ public class ConditionalAction extends Action { } @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { for (Condition condition : conditions) { - if (condition.fulfilledBy(context)) return actions.fire(context); + if (!condition.fulfilledBy(context)) return true; } - return false; + return actions.fire(context); } @Override diff --git a/src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java b/src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java index f56017a..05ca38d 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java +++ b/src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import org.json.JSONObject; @@ -50,7 +49,7 @@ public class DelayedAction extends Action { } @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { new Thread() { public void run() { try { diff --git a/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java b/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java index 685eebd..c078e6a 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java +++ b/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import org.json.JSONObject; @@ -18,7 +17,7 @@ public class DetermineTrainInBlock extends Action { private Block block = null; @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { context.block = block; context.train = block.train(); return true; diff --git a/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java b/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java index 1ce2fd5..02302f2 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java +++ b/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java @@ -1,13 +1,11 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; - import de.srsoftware.web4rail.Route; public class FinishRoute extends Action { @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { Route route = context.route; if (isSet(route)) route.finish(); return true; diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java b/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java index 0b3cb5a..7010fb8 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java +++ b/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import org.json.JSONObject; @@ -21,12 +20,10 @@ public class SetRelay extends Action { private boolean state = false; @Override - public boolean fire(Context context) throws IOException { - if (relay != null) { - relay.state(state); - return true; - } - return false; + public boolean fire(Context context) { + if (isNull(relay)) return false; + relay.state(state); + return true; } @Override diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java b/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java index cd689ce..8b8be9c 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java +++ b/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import org.json.JSONObject; @@ -22,7 +21,7 @@ public class SetSignal extends Action { private String state = Signal.STOP; @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { if (isNull(signal)) return false; return signal.state(state); } diff --git a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java index b73d181..0ec94c4 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java +++ b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java @@ -1,13 +1,11 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; - import de.srsoftware.web4rail.moving.Train; public class StopAllTrains extends Action { @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { Train.list().forEach(train -> train.stopNow()); return true; } diff --git a/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java b/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java index b9eab04..a86e1a3 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java +++ b/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java @@ -1,16 +1,12 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; - public class StopAuto extends Action { @Override - public boolean fire(Context context) throws IOException { - if (context.train != null) { - context.train.quitAutopilot(); - return true; - } - return false; + public boolean fire(Context context) { + if (isNull(context.train)) return false; + context.train.quitAutopilot(); + return true; } } diff --git a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java index 2d9b650..ec2b0a2 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java +++ b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java @@ -1,6 +1,5 @@ package de.srsoftware.web4rail.actions; -import java.io.IOException; import java.util.HashMap; import org.json.JSONObject; @@ -18,7 +17,7 @@ public class TriggerContact extends Action { private Contact contact = null; @Override - public boolean fire(Context context) throws IOException { + public boolean fire(Context context) { if (isSet(contact)) return contact.trigger(200); return false; } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java index df67594..132de6e 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java @@ -204,7 +204,7 @@ public class Contact extends Tile{ return trigger; } - public boolean trigger(int duration) throws IOException { + public boolean trigger(int duration) { activate(true); new Thread() { public void run() { diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Relay.java b/src/main/java/de/srsoftware/web4rail/tiles/Relay.java index 0e121fc..7892c46 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Relay.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Relay.java @@ -171,7 +171,7 @@ public class Relay extends Tile implements Device{ return state; } - public Reply state(boolean newState) throws IOException { + public Reply state(boolean newState) { Reply reply = init(); if (reply != null && !reply.succeeded()) return reply; LOG.debug("Setting {} to {}",this,newState); @@ -196,9 +196,7 @@ public class Relay extends Tile implements Device{ } catch (TimeoutException e) { LOG.warn(e.getMessage()); } - return new Reply(417,t("Timeout while trying to switch {}.",this)); - - + return new Reply(417,t("Timeout while trying to switch {}.",this)); } public void success() {