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() {