diff --git a/pom.xml b/pom.xml
index e7f6766..661da07 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0de.srsoftwareweb4rail
- 1.2.38
+ 1.2.39Web4RailjarJava Model Railway Control
diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation
index ddb0f36..9f7187a 100644
--- a/resources/translations/Application.de.translation
+++ b/resources/translations/Application.de.translation
@@ -27,6 +27,7 @@ autopilot active for train : Autopilot für Zug aktiviert
autopilot inactive for train : Autopilot nicht aktiv für Zug
Availability : Verfügbarkeit
Back : zurück
+backward : rückwärts
Basic properties : Grundlegende Eigenschaften
BlockFree : Blockbelegung
Block {} is free : Block {} ist frei
@@ -39,16 +40,18 @@ BrakeStop : Zug anhalten
Brake time¹, forward : Bremszeit¹, vorwärts
Brake time¹, reverse : Bremszeit¹, rückwärts
Brake time table : Bremszeit-Tabelle
+CarInTrain : Wagen im Zug
Car manager : Waggon-Verwaltung
+CarOrientation : Wagen-Laufrichtung
Cars\: : Waggons:
-Click here to select train! : HIer klicken, um Zug auszuwählen!
-[Click here to select block!] : [Hier klicken, um Block auszuwählen!]
-Click to setup tag : Hier klicken, um Markierung anzugeben
Click here to add conditions : Hier klicken, um Bedingungen hinzuzufügen
-[Click here to select display!] : [Hier klicken, um Anzeige auszuwählen!]
+Click here to select block! : Hier klicken, um Block auszuwählen!
+Click here to select car! : Hier klicken, um Fahrzeug auszuwählen!
+Click here to select display! : Hier klicken, um Anzeige auszuwählen!
Click here to select train! : Hier klicken, um Zug auszuwählen!
click here to setup contact : Hier klicken, um Kontakt auszuwählen
click here to setup relay : Hier klicken, um Relais einzurichten
+Click here to setup tag : Hier klicken, um Markierung anzugeben
click here to setup turnout : Hier klicken, um Weiche einzurichten
Click on a name to edit the entry. : Klicke auf einen Namen, um einen Eintrag zu bearbeiten.
Command to send : Kommando, welches gesendet werden soll
@@ -107,6 +110,7 @@ Help : Hilfe
(id\: {}, length\: {}) : (Id: {}, Länge: {})
if ({})\: : falls ({}):
inverted : invertiert
+{} is oriented {} : {} ist {} gerichtet
known cars : bekannte Waggons
known locomotives : bekannte Lokomotiven
known trains : bekannte Züge
@@ -172,6 +176,7 @@ Route will only be available, if all conditions are fulfilled. : Route ist nur v
Save : speichern
SavePlan : Plan speichern
Select block : Block auswählen
+Select car : Fahrzeug auswählen
Select contact\: : Kotakt auswählen:
Select display : Anzeige auswählen
Select from plan : Auf Plan auswählen
@@ -230,6 +235,8 @@ toggle {} : {} umschalten
Toggle power : Stom umschalten
Train : Zug
Train\: : Zug:
+train contains {} : {} ist im Zug
+train does not contain {} : {} ist nicht im Zug
train does not have tag "{}" : Zug hat keine Markierung „{}“
train has tag "{}" : Zug hat Markierung „{}“
TrainHasTag : Zug mit Tag
diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java
index daad6b1..486baa7 100644
--- a/src/main/java/de/srsoftware/web4rail/Route.java
+++ b/src/main/java/de/srsoftware/web4rail/Route.java
@@ -284,7 +284,7 @@ public class Route extends BaseClass {
Fieldset fieldset = new Fieldset(t("Brake time table"));
Table table = new Table();
table.addHead(t("Train"),t("Brake time¹, forward"),t("Brake time¹, reverse"));
- for (Train t : Train.list()) {
+ for (Train t : BaseClass.listElements(Train.class)) {
Integer fTime = brakeTimes.get(t.brakeId());
Integer rTime = brakeTimes.get(t.brakeId(true));
table.addRow(t,isSet(fTime)? fTime+NBSP+"ms" : "–",isSet(rTime)? fTime+NBSP+"ms" : "–");
diff --git a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
index 7855a05..333a16d 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
@@ -11,7 +11,7 @@ public class StopAllTrains extends Action {
@Override
public boolean fire(Context context) {
- Train.list().forEach(train -> train.stopNow());
+ BaseClass.listElements(Train.class).forEach(train -> train.stopNow());
return true;
}
}
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/CarInTrain.java b/src/main/java/de/srsoftware/web4rail/conditions/CarInTrain.java
new file mode 100644
index 0000000..c226c96
--- /dev/null
+++ b/src/main/java/de/srsoftware/web4rail/conditions/CarInTrain.java
@@ -0,0 +1,59 @@
+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.Window;
+import de.srsoftware.web4rail.moving.Car;
+import de.srsoftware.web4rail.moving.Train;
+import de.srsoftware.web4rail.tags.Fieldset;
+
+public class CarInTrain extends Condition {
+
+ private static final String CAR = "car";
+ private Car car;
+
+ @Override
+ public boolean fulfilledBy(Context context) {
+ Train train = context.train();
+ if (isNull(train) || isNull(car)) return false;
+ boolean contained = train.cars().contains(car);
+ return inverted ? !contained : contained;
+ }
+
+ @Override
+ public JSONObject json() {
+ JSONObject json = super.json();
+ if (isSet(car)) json.put(CAR, car.id().toString());
+ return json;
+ }
+
+ public Condition load(JSONObject json) {
+ super.load(json);
+ if (json.has(CAR)) car = BaseClass.get(new Id(json.getString(CAR)));
+ return this;
+ }
+
+ @Override
+ protected Window properties(List