diff --git a/pom.xml b/pom.xml index 2d7fea7..623c9f4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 0.11.28 + 0.11.29 Web4Rail jar Java Model Railway Control diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index 976db2a..d1fb21a 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -9,6 +9,7 @@ add action : Aktion hinzufügen add car\: : Waggon hinzufügen: Add condition : Bedingung hinzufügen add locomotive\: : Lok hinzufügen: +add new car : neuen Waggon anlegen add new locomotive : neue Lok anlegen add new train : neuen Zug anlegen Add tile : Kachel hinzufügen @@ -55,9 +56,11 @@ FreeStartBlock : Start-Block freigeben Hardware settings : Hardware-Einstellungen Height : Höhe Help : Hilfe -(id: {}, length: {}) : (Id: {}, Länge: {}) +(id\: {}, length\: {}) : (Id: {}, Länge: {}) if ({})\: : falls ({}): inverted : invertiert +known cars : bekannte Waggons +known locomotives : bekannte Lokomotiven learn : lernen LEFT : links Left port\: : Port für links @@ -72,6 +75,7 @@ Maximum train length\: : maximale Zug-Länge Minimum and maximum times (in Miliseconds) trains with the respective tag have to wait in this block. : Minamle und maximale Block-Haltezeit (in Millisekunden) für Züge mit der entsprchender Markierung. Move tiles : Kacheln verschieben name\: : Name: +new car : neuer Waggon new locomotive : neue Lok new tag : neue Markierung new train : neuer Zug diff --git a/src/main/java/de/srsoftware/web4rail/moving/Car.java b/src/main/java/de/srsoftware/web4rail/moving/Car.java index 4d836f2..684ea2f 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Car.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Car.java @@ -28,7 +28,7 @@ import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Label; -public class Car extends BaseClass { +public class Car extends BaseClass implements Comparable{ protected static final Logger LOG = LoggerFactory.getLogger(Car.class); static HashMap cars = new HashMap(); @@ -77,29 +77,6 @@ public class Car extends BaseClass { if (car instanceof Locomotive) return Locomotive.action(params,plan); return t("Unknown action: {}",params.get(ACTION)); } - - public static Object manager() { - Window win = new Window("car-manager", t("Car manager")); - new Tag("h4").content(t("known cars")).addTo(win); - Tag list = new Tag("ul"); - for (Car car : cars.values()) { - if (!(car instanceof Locomotive)) { - Tag tag = car.link("li"); - if (isSet(car.stockId) && !car.stockId.isEmpty()) tag.content(NBSP+t("(id: {}, length: {})",car.stockId,car.length)); - tag.addTo(list); - } - } - list.addTo(win); - - Form form = new Form(); - new Input(ACTION, ACTION_ADD).hideIn(form); - new Input(REALM,REALM_CAR).hideIn(form); - Fieldset fieldset = new Fieldset(t("add new car")); - new Input(Locomotive.NAME, t("new car")).addTo(new Label(t("Name:")+NBSP)).addTo(fieldset); - new Button(t("Apply")).addTo(fieldset); - fieldset.addTo(form).addTo(win); - return win; - } protected Tag cockpit() { return null; @@ -160,6 +137,29 @@ public class Car extends BaseClass { return this; } + public static Object manager() { + Window win = new Window("car-manager", t("Car manager")); + new Tag("h4").content(t("known cars")).addTo(win); + Tag list = new Tag("ul"); + for (Car car : new TreeSet(cars.values())) { + if (!(car instanceof Locomotive)) { + Tag tag = car.link("li"); + if (isSet(car.stockId) && !car.stockId.isEmpty()) tag.content(NBSP+t("(id: {}, length: {})",car.stockId,car.length)); + tag.addTo(list); + } + } + list.addTo(win); + + Form form = new Form(); + new Input(ACTION, ACTION_ADD).hideIn(form); + new Input(REALM,REALM_CAR).hideIn(form); + Fieldset fieldset = new Fieldset(t("add new car")); + new Input(Locomotive.NAME, t("new car")).addTo(new Label(t("Name:")+NBSP)).addTo(fieldset); + new Button(t("Apply")).addTo(fieldset); + fieldset.addTo(form).addTo(win); + return win; + } + String name(){ return name; } @@ -246,4 +246,9 @@ public class Car extends BaseClass { } return this; } + + @Override + public int compareTo(Car o) { + return (stockId+":"+name).compareTo(o.stockId+":"+o.name); + } } diff --git a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java index 2365b76..930edd1 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java @@ -2,6 +2,7 @@ package de.srsoftware.web4rail.moving; import java.io.IOException; import java.util.HashMap; +import java.util.TreeSet; import java.util.Vector; import org.json.JSONObject; @@ -201,7 +202,7 @@ public class Locomotive extends Car implements Constants,Device{ Window win = new Window("loco-manager", t("Locomotive manager")); new Tag("h4").content(t("known locomotives")).addTo(win); Tag list = new Tag("ul"); - for (Car car : cars.values()) { + for (Car car : new TreeSet(cars.values())) { if (car instanceof Locomotive) { Locomotive loco = (Locomotive) car; Tag tag = loco.link("li");