added push-pull train condition

This commit is contained in:
Stephan Richter
2020-11-02 00:13:50 +01:00
parent 1749abace9
commit 416a9cd2df
5 changed files with 28 additions and 4 deletions

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId> <groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId> <artifactId>web4rail</artifactId>
<version>0.9.14</version> <version>0.9.15</version>
<name>Web4Rail</name> <name>Web4Rail</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>Java Model Railway Control</description> <description>Java Model Railway Control</description>

View File

@@ -13,6 +13,7 @@ Apply : Übernehmen
Cars\: : Waggons: Cars\: : Waggons:
ConditionalAction : bedingte Aktion ConditionalAction : bedingte Aktion
Conditions : Bedingungen Conditions : Bedingungen
Condition type\: : Bedingungs-Typ:
Control unit : Zentrale Control unit : Zentrale
Current location\: : Aktueller Ort: Current location\: : Aktueller Ort:
Actions and contacts : Aktionen und Kontakte Actions and contacts : Aktionen und Kontakte
@@ -46,6 +47,7 @@ PowerOff : Strom abschalten
Properties : Eigenschaften Properties : Eigenschaften
Properties of {} : Eigenschaften von {} Properties of {} : Eigenschaften von {}
Properties of {} @ ({},{}) : Eigenschaften von {} @ ({},{}) Properties of {} @ ({},{}) : Eigenschaften von {} @ ({},{})
PushPullTrain : Wendezug
Push-pull train : Wendezug Push-pull train : Wendezug
Reduce speed to {} km/h : Geschwindigkeit auf {} km/h reduzieren Reduce speed to {} km/h : Geschwindigkeit auf {} km/h reduzieren
Report Issue : Problem melden Report Issue : Problem melden
@@ -66,7 +68,9 @@ Toggle power : Stom an/ausschalten
Train\: : Zug: Train\: : Zug:
train does not have tag "{}" : Zug hat keine Markierung „{}“ train does not have tag "{}" : Zug hat keine Markierung „{}“
train has tag "{}" : Zug hat Markierung „{}“ train has tag "{}" : Zug hat Markierung „{}“
train is a push-pull train : Zug ist ein Wendezug
train is longer than {} : Zug ist länger als {} train is longer than {} : Zug ist länger als {}
train is not a push-pull train : Zug ist kein Wendezug
train is shorter than {} : Zug ist kürzer als {} train is shorter than {} : Zug ist kürzer als {}
Trains : Züge Trains : Züge
Trains\: : Züge: Trains\: : Züge:

View File

@@ -92,7 +92,11 @@ public abstract class Condition implements Constants {
} }
private static List<Class<? extends Condition>> list() { private static List<Class<? extends Condition>> list() {
return List.of(TrainHasTag.class,TrainSelect.class,TrainLength.class); return List.of(
PushPullTrain.class,
TrainHasTag.class,
TrainSelect.class,
TrainLength.class);
} }
public Tag propForm(HashMap<String, String> params) { public Tag propForm(HashMap<String, String> params) {
@@ -122,7 +126,7 @@ public abstract class Condition implements Constants {
} }
for (Entry<String, String> entry : names.entrySet()) select.addOption(entry.getValue(), entry.getKey()); for (Entry<String, String> entry : names.entrySet()) select.addOption(entry.getValue(), entry.getKey());
return select.addTo(new Label(t("Action type:")+NBSP)); return select.addTo(new Label(t("Condition type:")+NBSP));
} }
public static String t(String text, Object...fills) { public static String t(String text, Object...fills) {

View File

@@ -0,0 +1,16 @@
package de.srsoftware.web4rail.conditions;
import de.srsoftware.web4rail.actions.Action.Context;
public class PushPullTrain extends Condition {
@Override
public boolean fulfilledBy(Context context) {
return context.train.pushPull != inverted;
}
@Override
public String toString() {
return t(inverted ? "train is not a push-pull train":"train is a push-pull train") ;
}
}

View File

@@ -57,7 +57,7 @@ public class Train implements Comparable<Train>,Constants {
private Direction direction; private Direction direction;
private static final String PUSH_PULL = "pushPull"; private static final String PUSH_PULL = "pushPull";
private boolean pushPull = false; public boolean pushPull = false;
private static final String CARS = "cars"; private static final String CARS = "cars";
private Vector<Car> cars = new Vector<Car>(); private Vector<Car> cars = new Vector<Car>();