From 9810b453cb5e285142ddd2cafbbc27b1d940c666 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Fri, 11 Dec 2020 01:53:18 +0100 Subject: [PATCH] more GUI improvements --- pom.xml | 2 +- resources/js/plan.js | 11 ++++++++++- .../de/srsoftware/web4rail/Constants.java | 1 + .../java/de/srsoftware/web4rail/Plan.java | 19 +++++++++++++++++-- .../java/de/srsoftware/web4rail/Route.java | 11 ++++++++++- .../web4rail/actions/SetTurnout.java | 3 ++- .../de/srsoftware/web4rail/tiles/Tile.java | 2 +- 7 files changed, 42 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 2c4a924..4ee5967 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.2.42 + 1.2.43 Web4Rail jar Java Model Railway Control diff --git a/resources/js/plan.js b/resources/js/plan.js index dc920ca..1b19c51 100644 --- a/resources/js/plan.js +++ b/resources/js/plan.js @@ -163,6 +163,10 @@ function request(data){ method : POST, data : data, success: function(resp){ + var win = $('.window'); + var scroll = win.scrollTop(); + var winId = win.attr('id'); + if (data.realm != 'car' && data.realm != 'loco') closeWindows(); if (resp.startsWith(' routes = BaseClass.listElements(Route.class); for (Route route : routes) { - table.addRow(route.link("span",route.name()),route.link("span", route.startBlock()),route.link("span", route.endBlock())); + table.addRow(route.link("span",route.name()),route.link("span", route.startBlock()),route.link("span", route.endBlock()),plan.button(t("simplyfy name"), Map.of(ACTION,ACTION_AUTO,ROUTE,route.id().toString()))); } table.clazz("turnouts").addTo(win); @@ -709,6 +711,19 @@ public class Plan extends BaseClass{ if (isSet(contact)) contact.activate(active); } + private Object simplyfyRouteName(HashMap params) { + String routeId = params.get(ROUTE); + if (isSet(routeId)) { + Route route = BaseClass.get(new Id(routeId)); + if (isSet(route)) route.simplyfyName(); + } + Id tileId = Id.from(params); + Tile tile = isSet(tileId)? BaseClass.get(tileId) : null; + if (isSet(tile)) return tile.properties(); + params.remove(ID); + return plan.properties(params); + } + /** * sends some data to the clients * @param data diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index 6c8fc17..68ebbb0 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -748,7 +748,11 @@ public class Route extends BaseClass { preForm.add(contactsAndActions()); formInputs.add(t("Name"),new Input(NAME, name())); - formInputs.add(t("State"),new Checkbox(DISABLED, t("disabled"), disabled)); + Checkbox checkbox = new Checkbox(DISABLED, t("disabled"), disabled); + if (disabled) checkbox.clazz("disabled"); + formInputs.add(t("State"),checkbox); + + postForm.add(basicProperties()); if (!turnouts.isEmpty()) postForm.add(turnouts()); @@ -848,6 +852,11 @@ public class Route extends BaseClass { return parts[0].trim()+"–"+parts[parts.length-1].trim(); } + public void simplyfyName() { + String[] parts = name().split("-"); + if (parts.length>1) name(parts[0]+" - "+parts[parts.length-1]); + } + public Route.State state(){ return state; } diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java b/src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java index eb2b4db..cd13f2d 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java +++ b/src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java @@ -24,8 +24,9 @@ public class SetTurnout extends Action { @Override public boolean fire(Context context) { - if (isNull(turnout)) return false; + if (isNull(turnout)) return false; if (!turnout.state(state).succeeded()) return false; + if (turnout.address() == 0) return true; try { Thread.sleep(1000); } catch (InterruptedException e) { diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java index 5de5f4d..327befa 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java @@ -45,7 +45,6 @@ public abstract class Tile extends BaseClass implements Comparable{ private static final String OCCUPIED = "occupied"; private static final String ONEW_WAY = "one_way"; private static final String POS = "pos"; - private static final String ROUTE = "route"; private static final String TYPE = "type"; private static final String X = "x"; private static final String Y = "y"; @@ -246,6 +245,7 @@ public abstract class Tile extends BaseClass implements Comparable{ for (Route route : routes) { Tag li = route.link("span", route.name()+(route.isDisabled()?" ["+t("disabled")+"]" : "")+NBSP).addTo(new Tag("li").clazz("link")); route.button(t("delete route"),Map.of(ACTION,ACTION_DROP)).addTo(li); + button(t("simplify name"), Map.of(ACTION,ACTION_AUTO,ROUTE,route.id().toString())).addTo(li); li.addTo(routeList); } routeList.addTo(fieldset);