diff --git a/pom.xml b/pom.xml
index 5850efc..6efc5d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 0.6.10
+ 0.6.11
Web4Rail
jar
Java Model Railway Control
diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation
index f9835f4..21f1d9b 100644
--- a/resources/translations/Application.de.translation
+++ b/resources/translations/Application.de.translation
@@ -2,13 +2,17 @@ Actions : Aktionen
Added {} : {} hinzugefügt
Add tile : Kachel hinzufügen
Analyze plan : Plan analysieren
-Contacts : Kontakte
+Contacts and actions : Kontakte und Aktionen
+Destination\: {} from {} : Ziel: {} von {}
length\: : Länge:
name\: : Name:
+Origin and destination : Start und Ziel
+Origin\: {} to {} : Start: {} nach {}
Plan saved as "{}". : Plan als „{}“ gespeichert.
Properties : Eigenschaften
Properties of {} : Eigenschaften von {}
Properties of {} @ ({},{}) : Eigenschaften von {} @ ({},{})
+Reduce speed to {} km/h : Geschwindigkeit auf {} km/h reduzieren
Routes using this tile\: : Fahrstraßen, die diesen Abschnitt verwenden:
save : speichern
Save plan : Plan speichern
diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java
index d313267..6a64ad9 100644
--- a/src/main/java/de/srsoftware/web4rail/Plan.java
+++ b/src/main/java/de/srsoftware/web4rail/Plan.java
@@ -105,10 +105,25 @@ public class Plan implements Constants{
new Heartbeat().start();
}
- public ControlUnit controlUnit() {
- return controlUnit;
+ public Object action(HashMap params) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
+ switch (params.get(ACTION)) {
+ case ACTION_ADD:
+ return addTile(params.get(TILE),params.get(X),params.get(Y),null);
+ case ACTION_ANALYZE:
+ return analyze();
+ case ACTION_CLICK:
+ return click(get(params.get(Tile.ID),true));
+ case ACTION_MOVE:
+ return moveTile(params.get(DIRECTION),params.get(Tile.ID));
+ case ACTION_SAVE:
+ return saveTo("default");
+ case ACTION_UPDATE:
+ update(get(params.get(Tile.ID),true),params);
+ return html();
+ }
+ return t("Unknown action: {}",params.get(ACTION));
}
-
+
private Tag actionMenu() throws IOException {
Tag actionMenu = new Tag("div").clazz("actions").content(t("Actions"));
Tag actions = new Tag("div").clazz("list").content("");
@@ -124,8 +139,10 @@ public class Plan implements Constants{
clients.put(client, 0);
}
- public static void addLink(Tile tile,String content,Tag list) {
- new Tag("li").clazz("link").attr("onclick", "return clickTile("+tile.x+","+tile.y+");").content(content).addTo(list);
+ public static Tag addLink(Tile tile,String content,Tag list) {
+ Tag li = new Tag("li");
+ new Tag("span").clazz("link").attr("onclick", "return clickTile("+tile.x+","+tile.y+");").content(content).addTo(li).addTo(list);
+ return li;
}
private String addTile(String clazz, String xs, String ys, String configJson) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, IOException {
@@ -167,6 +184,10 @@ public class Plan implements Constants{
if (tile == null) return null;
return tile.click();
}
+
+ public ControlUnit controlUnit() {
+ return controlUnit;
+ }
private Collection follow(Route route, Connector connector) {
Tile tile = get(Tile.id(connector.x,connector.y),false);
@@ -356,23 +377,8 @@ public class Plan implements Constants{
return tile;
}
- public Object action(HashMap params) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
- switch (params.get(ACTION)) {
- case ACTION_ADD:
- return addTile(params.get(TILE),params.get(X),params.get(Y),null);
- case ACTION_ANALYZE:
- return analyze();
- case ACTION_CLICK:
- return click(get(params.get(Tile.ID),true));
- case ACTION_MOVE:
- return moveTile(params.get(DIRECTION),params.get(Tile.ID));
- case ACTION_SAVE:
- return saveTo("default");
- case ACTION_UPDATE:
- update(get(params.get(Tile.ID),true),params);
- return html();
- }
- return t("Unknown action: {}",params.get(ACTION));
+ public Command queue(Command command) {
+ return controlUnit.queue(command);
}
public Route route(int routeId) {
@@ -518,8 +524,4 @@ public class Plan implements Constants{
public void warn(Contact contact) {
stream(t("Warning: {}",t("Ghost train @ {}",contact)));
}
-
- public Command queue(Command command) {
- return controlUnit.queue(command);
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java
index 0ac5b87..9b11af0 100644
--- a/src/main/java/de/srsoftware/web4rail/Route.java
+++ b/src/main/java/de/srsoftware/web4rail/Route.java
@@ -351,9 +351,17 @@ public class Route implements Constants{
}
if (!contacts.isEmpty()) {
- new Tag("h4").content(t("Contacts")).addTo(win);
+ new Tag("h4").content(t("Contacts and actions")).addTo(win);
list = new Tag("ul");
- for (Contact c : contacts) Plan.addLink(c,c.toString(),list);
+ for (Contact c : contacts) {
+ Tag link = Plan.addLink(c,c.toString(),list);
+ Vector actions = triggers.get(c.trigger());
+ if (actions != null && !actions.isEmpty()) {
+ Tag ul = new Tag("ul");
+ for (Action action : actions) new Tag("li").content(action.toString()).addTo(ul);
+ ul.addTo(link);
+ }
+ }
list.addTo(win);
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/Action.java b/src/main/java/de/srsoftware/web4rail/actions/Action.java
index 10f942d..ba26444 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/Action.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/Action.java
@@ -5,6 +5,8 @@ import java.lang.reflect.InvocationTargetException;
import org.json.JSONObject;
+import de.keawe.tools.translations.Translation;
+import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.Plan;
public abstract class Action {
@@ -37,4 +39,8 @@ public abstract class Action {
}
return null;
}
+
+ protected String t(String tex,Object...fills) {
+ return Translation.get(Application.class, tex, fills);
+ }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SpeedReduction.java b/src/main/java/de/srsoftware/web4rail/actions/SpeedReduction.java
index 5b9b2d9..d84316d 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SpeedReduction.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SpeedReduction.java
@@ -27,4 +27,9 @@ public class SpeedReduction extends RouteAction {
json.put(MAX_SPEED, maxSpeed);
return json;
}
+
+ @Override
+ public String toString() {
+ return t("Reduce speed to {} km/h",maxSpeed);
+ }
}