diff --git a/pom.xml b/pom.xml index 6483874..7ea7045 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 0.11.6 + 0.11.7 Web4Rail jar Java Model Railway Control diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index 04bf690..2b699b9 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -36,6 +36,8 @@ Destination\: {} from {} : Ziel: {} von {} Direction : Richtung Direction\: heading {} : Richtung: nach {} disabled : deaktiviert +Drop : Verwerfen +Dropped destination of {}. : Ziel von {} verworfen. EAST : Osten editable train properties : veränderliche Zug-Eigenschaften Emergency : Notfall diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index 077391e..e516b4a 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -635,6 +635,11 @@ public class Route extends BaseClass{ } return true; } + + public String shortName() { + String[] parts = name().split("-"); + return parts[0].trim()+"–"+parts[parts.length-1].trim(); + } public Block startBlock() { return startBlock; @@ -688,9 +693,4 @@ public class Route extends BaseClass{ } return message; } - - public String shortName() { - String[] parts = name().split("-"); - return parts[0].trim()+"–"+parts[parts.length-1].trim(); - } } diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java index 3a8ba71..7c9af38 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Train.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java @@ -485,6 +485,7 @@ public class Train extends BaseClass implements Comparable { new Button(t("Select from plan"),"return selectDest("+id+");").addTo(dest); } else { link("span",Map.of(REALM,REALM_PLAN,ID,destination.id(),ACTION,ACTION_CLICK),destination.toString()).addTo(dest); + new Button(t("Drop"),Map.of(REALM,REALM_TRAIN,ID,id,ACTION,ACTION_MOVE,DESTINATION,"")).addTo(dest); } dest.addTo(propList); @@ -553,6 +554,10 @@ public class Train extends BaseClass implements Comparable { private String setDestination(HashMap params) { String dest = params.get(DESTINATION); if (isNull(dest)) return t("No destination supplied!"); + if (dest.isEmpty()) { + destination = null; + return t("Dropped destination of {}.",this); + } Tile tile = plan.get(dest, true); if (isNull(tile)) return t("Tile {} not known!",dest); if (tile instanceof Block) { diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java index ff07205..4c45704 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java @@ -216,10 +216,13 @@ public abstract class Tile extends BaseClass{ if (isSet(train)) { HashMap props = new HashMap(Map.of(REALM,REALM_TRAIN,ID,train.id)); - props.put(ACTION, ACTION_STOP); - window.children().insertElementAt(new Button(t("stop"),props), 1); - props.put(ACTION, ACTION_START); - window.children().insertElementAt(new Button(t("start"),props), 1); + if (isSet(train.route)) { + props.put(ACTION, ACTION_STOP); + window.children().insertElementAt(new Button(t("stop"),props), 1); + } else { + props.put(ACTION, ACTION_START); + window.children().insertElementAt(new Button(t("start"),props), 1); + } window.children().insertElementAt(train.link("span"), 1); window.children().insertElementAt(new Tag("h4").content(t("Train:")), 1); } @@ -240,7 +243,7 @@ public abstract class Tile extends BaseClass{ Tag routeList = new Tag("ol"); for (Route route : routes) { String json = new JSONObject(Map.of(REALM,ROUTE,ID,route.id(),ACTION,ACTION_PROPS,CONTEXT,REALM_PLAN+":"+id())).toString().replace("\"", "'"); - Tag li = new Tag("span").attr("onclick","return request("+json+");").content(route.shortName()+(route.isDisabled()?" ["+t("disabled")+"]" : "")+NBSP).addTo(new Tag("li").clazz("link")); + Tag li = new Tag("span").attr("onclick","return request("+json+");").content(route.name()+(route.isDisabled()?" ["+t("disabled")+"]" : "")+NBSP).addTo(new Tag("li").clazz("link")); Map params = Map.of(REALM,REALM_ROUTE,ID,route.id(),ACTION,ACTION_DROP,Tile.class.getSimpleName(),id()); new Button(t("delete route"),params).addTo(li); li.addTo(routeList);