diff --git a/pom.xml b/pom.xml
index d01b886..ded2f8a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 1.3.35
+ 1.3.36
Web4Rail
jar
Java Model Railway Control
diff --git a/resources/css/style.css b/resources/css/style.css
index 0c4cebe..62fc459 100644
--- a/resources/css/style.css
+++ b/resources/css/style.css
@@ -406,4 +406,20 @@ svg.Block text{
.plan-file{
color: green;
+}
+
+.Switch rect{
+ fill:none;
+}
+
+.Switch.off rect.enabled,
+.Switch.on rect.disabled{
+ display: none;
+}
+
+.Switch.off rect.disabled{
+ fill: red;
+}
+.Switch.on rect.enabled{
+ fill: forestgreen;
}
\ No newline at end of file
diff --git a/resources/svg/Switch.svg b/resources/svg/Switch.svg
new file mode 100644
index 0000000..f125e6c
--- /dev/null
+++ b/resources/svg/Switch.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation
index 5497ae2..a3ef8fd 100644
--- a/resources/translations/Application.de.translation
+++ b/resources/translations/Application.de.translation
@@ -1,6 +1,9 @@
abort : abbrechen
Accessory : Zubehör
+Action : Aktion
Actions : Aktionen
+Actions (On) : Aktionen (Ein)
+Actions (Off) : Aktionen (Aus)
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.
@@ -164,6 +167,8 @@ Falls aktiviert, wird die Strecke anhand von Zug- und Kachel-Länge hinter dem Z
internal contacts : interne Kontakte
inverted : invertiert
Inverts the direction {} is heading to. : Kehrt die Richtung, in welche {} fährt, um.
+{} is off : {} ist Aus
+{} is on : {} ist Ein
{} is oriented {} : {} ist {} gerichtet
known cars : bekannte Waggons
known locomotives : bekannte Lokomotiven
@@ -276,6 +281,7 @@ Select from plan : Auf Plan auswählen
Select object : Objekt auswählen
Select relay : Relais auswählen
Select state : Status auswählen
+Select switch : Schalter auswählen
Select train : Zug auswählen
Select turnout : Weiche wählen
SendCommand : Kommando senden
@@ -330,6 +336,7 @@ STRAIGHT : gerade
Swap order : Reihenfolge umkehren
Swap order of trains : Reihenfolge der Züge tauschen
SwitchFunction : Funktion schalten
+SwitchIsOn : Schalter is an
Switch power off : Strom ausschalten
Switch power on : Strom anschalten
SYSTEM : Betriebssystem
diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java
index c78363c..3b3f6f5 100644
--- a/src/main/java/de/srsoftware/web4rail/Plan.java
+++ b/src/main/java/de/srsoftware/web4rail/Plan.java
@@ -71,6 +71,7 @@ import de.srsoftware.web4rail.tiles.SignalS;
import de.srsoftware.web4rail.tiles.SignalW;
import de.srsoftware.web4rail.tiles.StraightH;
import de.srsoftware.web4rail.tiles.StraightV;
+import de.srsoftware.web4rail.tiles.Switch;
import de.srsoftware.web4rail.tiles.TextDisplay;
import de.srsoftware.web4rail.tiles.Tile;
import de.srsoftware.web4rail.tiles.TileWithShadow;
@@ -938,6 +939,7 @@ public class Plan extends BaseClass{
new DecouplerV().tag(null).addTo(tiles);
new Relay().setLabel(true,"RL").tag(null).addTo(tiles);
new Contact().tag(null).addTo(tiles);
+ new Switch().tag(null).addTo(tiles);
new TextDisplay().text("tx").tag(null).addTo(tiles);
new Eraser().tag(null).addTo(tiles);
return tiles.addTo(tileMenu);
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/Condition.java b/src/main/java/de/srsoftware/web4rail/conditions/Condition.java
index 56c303d..88e7e8b 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/Condition.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/Condition.java
@@ -123,6 +123,7 @@ public abstract class Condition extends BaseClass {
OrCondition.class,
PushPullTrain.class,
RouteEndBlock.class,
+ SwitchIsOn.class,
TrainHasTag.class,
TrainIsShunting.class,
TrainLength.class,
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/SwitchIsOn.java b/src/main/java/de/srsoftware/web4rail/conditions/SwitchIsOn.java
new file mode 100644
index 0000000..69c8253
--- /dev/null
+++ b/src/main/java/de/srsoftware/web4rail/conditions/SwitchIsOn.java
@@ -0,0 +1,58 @@
+package de.srsoftware.web4rail.conditions;
+
+import java.util.HashMap;
+import java.util.List;
+
+import org.json.JSONObject;
+
+import de.srsoftware.web4rail.BaseClass;
+import de.srsoftware.web4rail.tags.Fieldset;
+import de.srsoftware.web4rail.tags.Window;
+import de.srsoftware.web4rail.tiles.Switch;
+
+public class SwitchIsOn extends Condition {
+
+ private Switch swtch = null;
+ private static final String SWITCH = "switch";
+
+
+
+ @Override
+ public boolean fulfilledBy(Context context) {
+ if (isSet(swtch)) return swtch.isOn() != inverted;
+ return false;
+ }
+
+ @Override
+ public JSONObject json() {
+ JSONObject json = super.json();
+ if (isSet(swtch)) json.put(SWITCH, swtch.id().toString());
+ return json;
+ }
+
+ public Condition load(JSONObject json) {
+ super.load(json);
+ if (json.has(SWITCH)) swtch = BaseClass.get(new Id(json.getString(SWITCH)));
+ return this;
+ }
+
+ @Override
+ protected Window properties(List