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");