diff --git a/pom.xml b/pom.xml index faf8af5..d6e8f0f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.3.29 + 1.3.30 Web4Rail jar Java Model Railway Control diff --git a/resources/css/style.css b/resources/css/style.css index a1444d6..0c4cebe 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -14,6 +14,11 @@ button{ margin: 2px; } +button.active{ + background: green; + color: white; +} + #plan{ position: absolute; height: 100%; diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index c244233..d48848b 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -107,6 +107,7 @@ decouple : Abkuppeln decoupler : decoupler Decoupler : Entkuppler DelayedAction : verzögerte Aktion +Delay must not be less than zero! : Verzögerung darf nicht kleiner als null sein! delete : entfernen delete route : Route löschen Destination : Ziel diff --git a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java index 1b8d6a1..3a9b70d 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java @@ -89,16 +89,25 @@ public class Locomotive extends Car implements Constants,Device{ String realm = null; Train train = null; Locomotive loco = null; + boolean fun1=false,fun2=false,fun3=false,fun4=false; if (locoOrTrain instanceof Locomotive) { loco = (Locomotive) locoOrTrain; realm = REALM_LOCO; id = loco.id(); speed = loco.speed; + fun1 = loco.f1; + fun2 = loco.f2; + fun3 = loco.f3; + fun4 = loco.f4; } else if (locoOrTrain instanceof Train) { train = (Train)locoOrTrain; realm = REALM_TRAIN; id = train.id(); speed = train.speed; + fun1 = train.getFunction(1); + fun2 = train.getFunction(2); + fun3 = train.getFunction(3); + fun4 = train.getFunction(4); } HashMap params = new HashMap(Map.of(REALM,realm,ID,id)); @@ -109,10 +118,13 @@ public class Locomotive extends Car implements Constants,Device{ new Tag("span").content(t("Current velocity: {} {}",speed,speedUnit)).addTo(fieldset); Tag par = new Tag("p"); - Map.of(t("Slower (10 {})",speedUnit),ACTION_SLOWER10,t("Faster (10 {})",speedUnit),ACTION_FASTER10).entrySet().forEach(e -> { - params.put(ACTION, e.getValue()); - new Button(t(e.getKey()),params).addTo(par); - }); + + params.put(ACTION, ACTION_FASTER10); + new Button(t("Faster (10 {})",speedUnit),params).addTo(par); + + params.put(ACTION, ACTION_SLOWER10); + new Button(t("Slower (10 {})",speedUnit),params).addTo(par); + par.addTo(fieldset); Tag direction = new Tag("p"); @@ -142,11 +154,27 @@ public class Locomotive extends Car implements Constants,Device{ } direction.addTo(fieldset); - Tag functions = new Tag("p"); - Map.of("F1",ACTION_TOGGLE_F1,"F2",ACTION_TOGGLE_F2,"F3",ACTION_TOGGLE_F3,"F4",ACTION_TOGGLE_F4).entrySet().stream().sorted((e1,e2)->(e1.getKey().compareTo(e2.getKey()))).forEach(e -> { - params.put(ACTION, e.getValue()); - new Button(t(e.getKey()),params).addTo(functions); - }); + Tag functions = new Tag("p"); + + params.put(ACTION, ACTION_TOGGLE_F1); + Button b1 = new Button(t("F1"),params); + if (fun1) b1.clazz("active"); + b1.addTo(functions); + + params.put(ACTION, ACTION_TOGGLE_F2); + Button b2 = new Button(t("F2"),params); + if (fun2) b2.clazz("active"); + b2.addTo(functions); + + params.put(ACTION, ACTION_TOGGLE_F3); + Button b3 = new Button(t("F3"),params); + if (fun3) b3.clazz("active"); + b3.addTo(functions); + + params.put(ACTION, ACTION_TOGGLE_F4); + Button b4 = new Button(t("F4"),params); + if (fun4) b4.clazz("active"); + b4.addTo(functions); functions.addTo(fieldset); return fieldset; diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java index e953280..444c382 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Train.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java @@ -465,6 +465,21 @@ public class Train extends BaseClass implements Comparable { return properties(); } + public boolean getFunction(int num) { + switch (num) { + case 1: + return f1; + case 2: + return f2; + case 3: + return f3; + case 4: + return f4; + default: + return false; + } + } + private boolean hasLoco() { for (Car c:cars) { if (c instanceof Locomotive) return true;