From a2cb3d813e5c8d6bd6184825ee685048fd9349b9 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Mon, 2 Nov 2020 14:11:56 +0100 Subject: [PATCH] GUI improvements --- pom.xml | 2 +- resources/css/style.css | 2 +- resources/translations/Application.de.translation | 15 +++++++++++++++ .../java/de/srsoftware/web4rail/moving/Train.java | 1 + .../java/de/srsoftware/web4rail/tiles/Block.java | 8 ++++---- .../web4rail/tiles/StretchableTile.java | 7 +++---- .../java/de/srsoftware/web4rail/tiles/Tile.java | 12 ++++-------- .../de/srsoftware/web4rail/tiles/Turnout.java | 11 ++++++++--- .../de/srsoftware/web4rail/tiles/TurnoutL.java | 4 ++-- .../de/srsoftware/web4rail/tiles/TurnoutR.java | 4 ++-- 10 files changed, 41 insertions(+), 25 deletions(-) diff --git a/pom.xml b/pom.xml index 6b55508..f9f41c8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 0.9.17 + 0.9.18 Web4Rail jar Java Model Railway Control diff --git a/resources/css/style.css b/resources/css/style.css index 10ba20f..aafef59 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -235,4 +235,4 @@ svg.disabled rect{ fill: #ddddef; stroke-width:5; stroke: red; -} \ No newline at end of file +} diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index 5fc973a..efea530 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -8,8 +8,11 @@ add car\: : Waggon hinzufügen: Add condition : Bedingung hinzufügen add locomotive\: : Lok hinzufügen: Add tile : Kachel hinzufügen +Address\: : Adresse: Analyze plan : Plan analysieren Apply : Übernehmen +Availability : Verfügbarkeit +Block properties : Block-Eigenschaften Cars\: : Waggons: ConditionalAction : bedingte Aktion Conditions : Bedingungen @@ -23,13 +26,18 @@ delete : entfernen delete route : Route löschen Destination\: {} from {} : Ziel: {} von {} disabled : deaktiviert +EAST : Osten editable train properties : veränderliche Zug-Eigenschaften Emergency : Notfall FinishRoute : Route abschließen FreeStartBlock : Start-Block freigeben +Hardware settings : Hardware-Einstellungen Help : Hilfe inverted : invertiert +learn : lernen LEFT : links +Left port\: : Port für links +Length : Länge length\: : Länge: length\: {} : Länge: {} Locomotives\: : Lokomotiven: @@ -39,7 +47,10 @@ Manage trains : Züge verwalten Maximum train length\: : maximale Zug-Länge Move tiles : Kacheln verschieben name\: : Name: +No : keine No free routes from {} : keine Route von {} frei +NORTH : Norden +One way\: : Richtung: Online Documentation : Online-Dokumentation other train properties : andere Zug-Eigenschaften Origin and destination : Start und Ziel @@ -54,6 +65,7 @@ Push-pull train : Wendezug Reduce speed to {} km/h : Geschwindigkeit auf {} km/h reduzieren Report Issue : Problem melden RIGHT : rechts +Right port\: : Port für rechts Routes using this tile\: : Fahrstraßen, die diesen Abschnitt verwenden: Route will only be available to trains fulfilling all conditions. : Route ist nur für Züge verfügbar, die alle Bedingungen erfüllen. save : speichern @@ -63,8 +75,10 @@ SetSignalsToStop : Signale auf Halt stellen SetSpeed : Geschwindigkeit ändern Setup actions : Aktivierungs-Aktionen Signals : Signale +SOUTH : Süden Started {} : {} gestartet StopAuto : Automatikmodus abschalten +Straight port\: : Port für gerade STRAIGHT : gerade Tags : Markierungen Toggle power : Stom an/ausschalten @@ -89,3 +103,4 @@ Was not able to assign {} to {}! : Konnte {} nicht an {} zuweisen! Was not able to lock {} : Konnte {} nicht reservieren Was not able to set all signals! : Konnte nicht alle Signale stellen! Was not able to set all turnouts! : Konnte nicht alle Weichen stellen! +WEST : Westen \ No newline at end of file diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java index d835a91..1559bab 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Train.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java @@ -493,6 +493,7 @@ public class Train implements Comparable,Constants { if (!route.lock()) return t("Was not able to lock {}",route); String error = null; + if (direction != route.startDirection) turn(); if (!route.setTurnouts()) error = t("Was not able to set all turnouts!"); route.fireSetupActions(context); if (error == null && !route.setSignals(null)) error = t("Was not able to set all signals!"); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Block.java b/src/main/java/de/srsoftware/web4rail/tiles/Block.java index 2836343..eaa8551 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Block.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Block.java @@ -61,8 +61,9 @@ public abstract class Block extends StretchableTile{ @Override public Tag propForm(String id) { Tag form = super.propForm(id); + new Tag("h4").content(t("Block properties")).addTo(form); - new Input(NAME, name).addTo(new Label(t("name:")+" ")).addTo(new Tag("p")).addTo(form); + new Input(NAME, name).addTo(new Label(t("name:")+NBSP)).addTo(new Tag("p")).addTo(form); new Checkbox(ALLOW_TURN,t("Turn allowed"),turnAllowed).addTo(new Tag("p")).addTo(form); @@ -114,8 +115,7 @@ public abstract class Block extends StretchableTile{ } @Override - public Tile update(HashMap params) throws IOException { - super.update(params); + public Tile update(HashMap params) throws IOException { if (params.containsKey(NAME)) name=params.get(NAME); if (params.containsKey(TRAIN)) { int trainId = Integer.parseInt(params.get(TRAIN)); @@ -127,6 +127,6 @@ public abstract class Block extends StretchableTile{ } } turnAllowed = params.containsKey(ALLOW_TURN) && params.get(ALLOW_TURN).equals("on"); - return this; + return super.update(params); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java b/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java index 68574b5..f3b003d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java @@ -36,8 +36,8 @@ public abstract class StretchableTile extends Tile { @Override public Tag propForm(String id) { Tag form = super.propForm(id); - - Tag label = new Tag("label").content(t("length:")); + new Tag("h4").content(t("Length")).addTo(form); + Tag label = new Tag("label").content(t("length:")+NBSP); new Tag("input").attr("type", "number").attr("name","length").attr("value", length).addTo(label); label.addTo(new Tag("p")).addTo(form); @@ -58,7 +58,6 @@ public abstract class StretchableTile extends Tile { @Override public Tile update(HashMap params) throws IOException { - super.update(params); for (Entry entry : params.entrySet()) { switch (entry.getKey()) { case LENGTH: @@ -66,6 +65,6 @@ public abstract class StretchableTile extends Tile { break; } } - return this; + return super.update(params); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java index dfe9438..41cda65 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java @@ -207,14 +207,10 @@ public abstract class Tile implements Constants{ Window window = new Window("tile-properties",t("Properties of {} @ ({},{})",title(),x,y)); String formId = "tile-properties-"+id(); Tag form = propForm(formId); - if (form!=null && form.children().size()>3) { - new Checkbox(DISABLED, t("disabled"), disabled).addTo(form); - - new Button(t("Apply"),"submitForm('"+formId+"')").addTo(form); - form.addTo(window); - } else { - window.content(t("This tile ({}) has no editable properties",getClass().getSimpleName())); - } + new Tag("h4").content(t("Availability")).addTo(form); + new Checkbox(DISABLED, t("disabled"), disabled).addTo(form); + new Button(t("Apply"),"submitForm('"+formId+"')").addTo(form); + form.addTo(window); if (route != null) { new Tag("p").content(t("Locked by {}",route)).addTo(window); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java index f9e41b1..fc7e979 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java @@ -56,6 +56,7 @@ public abstract class Turnout extends Tile implements Device{ } protected Reply init() { + if (address == 0) return new Reply(200,"OK"); if (!initialized) { Command command = new Command("INIT {} GA "+address+" "+proto()) { @@ -109,7 +110,7 @@ public abstract class Turnout extends Tile implements Device{ new Radio(PROTOCOL, proto.toString(), t(proto.toString()), proto == this.protocol).addTo(protocol); } protocol.addTo(fieldset).addTo(form); - new Input(ADDRESS, address).numeric().addTo(new Label(t("Address"))).addTo(fieldset); + new Input(ADDRESS, address).numeric().addTo(new Label(t("Address:")+NBSP)).addTo(fieldset); return form; } @@ -137,9 +138,13 @@ public abstract class Turnout extends Tile implements Device{ Reply reply = init(); if (reply != null && !reply.succeeded()) return reply; LOG.debug("Setting {} to {}",this,newState); + if (address == 0) { + state = newState; + plan.place(this); + return new Reply(200,"OK"); + } try { - String cmd = commandFor(newState); - return plan.queue(new Command(cmd) { + return plan.queue(new Command(commandFor(newState)) { @Override public void onSuccess() { diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java index 2a630f7..64f85e2 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java @@ -43,8 +43,8 @@ public class TurnoutL extends Turnout { break; } } - new Input(STRAIGHT, portA).numeric().addTo(new Label(t("Straight port"))).addTo(fieldset); - new Input(LEFT, portB).numeric().addTo(new Label(t("Left port"))).addTo(fieldset); + new Input(STRAIGHT, portA).numeric().addTo(new Label(t("Straight port:")+NBSP)).addTo(fieldset); + new Input(LEFT, portB).numeric().addTo(new Label(t("Left port:")+NBSP)).addTo(fieldset); return form; } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java index 6c46e90..79e4bdd 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java @@ -44,8 +44,8 @@ public class TurnoutR extends Turnout { break; } } - new Input(STRAIGHT, portA).numeric().addTo(new Label(t("Straight port"))).addTo(fieldset); - new Input(RIGHT, portB).numeric().addTo(new Label(t("Right port"))).addTo(fieldset); + new Input(STRAIGHT, portA).numeric().addTo(new Label(t("Straight port:")+NBSP)).addTo(fieldset); + new Input(RIGHT, portB).numeric().addTo(new Label(t("Right port:")+NBSP)).addTo(fieldset); return form; }