From e61891da4387f9129ec89a6ba392600dd98fa3dc Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sun, 29 Nov 2020 20:23:12 +0100 Subject: [PATCH] added device table --- pom.xml | 2 +- resources/css/style.css | 7 +++++++ .../translations/Application.de.translation | 9 +++++++++ .../java/de/srsoftware/web4rail/Device.java | 2 ++ .../java/de/srsoftware/web4rail/Plan.java | 19 +++++++++++++++++++ .../web4rail/moving/Locomotive.java | 5 +++++ .../de/srsoftware/web4rail/tiles/Relay.java | 4 ++++ .../de/srsoftware/web4rail/tiles/Turnout.java | 4 ++++ 8 files changed, 51 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a3bcd53..b4506e1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.1.8 + 1.1.9 Web4Rail jar Java Model Railway Control diff --git a/resources/css/style.css b/resources/css/style.css index 7af28c8..a00c6ee 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -288,6 +288,7 @@ fieldset.notes textarea{ min-width: 100%; } +table.turnouts, table.brake-times{ border-collapse: collapse; } @@ -302,4 +303,10 @@ table.brake-times tr > *{ table.brake-times th{ border-width: 0 1px 1px; +} + +.turnouts .group > *{ + border-color: black; + border-style: solid; + border-width: 1px 0 0; } \ No newline at end of file diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index c433ee6..9a7c85e 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -14,6 +14,7 @@ add new car : neuen Waggon anlegen add new locomotive : neue Lok anlegen add new train : neuen Zug anlegen Add tile : Kachel hinzufügen +Address : Adresse Address\: : Adresse: Analyze : analysieren Apply : Übernehmen @@ -70,6 +71,7 @@ Drop : Verwerfen Dropped destination of {}. : Ziel von {} verworfen. 1) Duration between 5 {} steps during brake process. : 1) Zeit zwischen 5 {}-Schritten beim Bremsvorgang. EAST : Osten +Editable properties : veränderliche Eigenschaften editable train properties : veränderliche Zug-Eigenschaften Emergency : Notfall Faster (10 {}) : 10 {} schneller @@ -94,6 +96,7 @@ Length : Länge length\: : Länge: length\: {} : Länge: {} Length unit : Längeneinheit +Locked by {} : Durch {} besetzt Locomotive manager : Lok-Verwaltung Locomotives\: : Lokomotiven: Manage cars : Waggons verwalten @@ -129,6 +132,7 @@ PushPullTrain : Wendezug Push-pull train : Wendezug quit autopilot : Autopilot beenden {} reached it`s destination! : {} ist am Ziel angekommen! +Relay/Turnout : Relais/Weiche Report Issue : Problem melden RIGHT : rechts Right port\: : Port für rechts @@ -198,6 +202,11 @@ TriggerContact : Kontakt auslösen Turn : Richtung wechseln Turn allowed : Wenden erlaubt {} turned. : {} gewendet. +Turnout : Weiche +TurnoutLE : WeicheLE +TurnoutLW : WeicheLW +TurnoutRE : WeicheRE +TurnoutRW : WeicheRW Turnouts : Weichen TurnTrain : Fahrtrichtung umkehren turn within train : innerhalb des Zugs drehen diff --git a/src/main/java/de/srsoftware/web4rail/Device.java b/src/main/java/de/srsoftware/web4rail/Device.java index 884d756..b2fdab5 100644 --- a/src/main/java/de/srsoftware/web4rail/Device.java +++ b/src/main/java/de/srsoftware/web4rail/Device.java @@ -4,4 +4,6 @@ public interface Device { public static final String ADDRESS = "address"; public static final String PORT = "port"; public static final String PROTOCOL = "proto"; + + public int address(); } diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index d22c9a2..7c9bc02 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -9,6 +9,7 @@ import java.lang.reflect.InvocationTargetException; import java.nio.file.Files; import java.security.InvalidParameterException; import java.util.Collection; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -35,6 +36,7 @@ import de.srsoftware.web4rail.tags.Div; import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Label; +import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.BlockH; import de.srsoftware.web4rail.tiles.BlockV; @@ -601,6 +603,8 @@ public class Plan extends BaseClass{ } Window win = new Window("plan-properties", t("Properties")); + + new Tag("h4").content(t("Editable properties")).addTo(win); Form form = new Form("plan-properties-form"); new Input(REALM,REALM_PLAN).hideIn(form); new Input(ACTION,ACTION_UPDATE).hideIn(form); @@ -608,6 +612,21 @@ public class Plan extends BaseClass{ new Input(SPEED_UNIT, speedUnit).addTo(new Label(t("Speed unit")+":"+NBSP)).addTo(form); new Button(t("Save"), form).addTo(form); form.addTo(win); + + new Tag("h4").content(t("turnout properties")).addTo(win); + Table table = new Table(); + table.addHead(t("Address"),t("Relay/Turnout")); + tiles.values() + .stream() + .filter(tile -> tile instanceof Device ) + .map(tile -> (Device) tile) + .sorted(Comparator.comparing(Device::address)) + .forEach(turnout -> { + table.addRow(turnout.address(),turnout); + if (turnout.address() % 4 == 1) table.children().lastElement().clazz("group"); + }); + table.clazz("turnouts").addTo(win); + return win; } diff --git a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java index 060d05e..db08849 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java @@ -76,6 +76,11 @@ public class Locomotive extends Car implements Constants,Device{ return t("Unknown action: {}",params.get(ACTION)); } + @Override + public int address() { + return address; + } + public static Tag cockpit(Object locoOrTrain) { int id = 0; int speed = 0; diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Relay.java b/src/main/java/de/srsoftware/web4rail/tiles/Relay.java index 7892c46..c3d7230 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Relay.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Relay.java @@ -44,6 +44,10 @@ public class Relay extends Tile implements Device{ private static final String LABEL_B = "label_b"; private static final String NAME = "name"; + public int address() { + return address; + } + @Override public Object click() throws IOException { Object o = super.click(); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java index f17e490..d77e82a 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Turnout.java @@ -41,6 +41,10 @@ public abstract class Turnout extends Tile implements Device{ LEFT,STRAIGHT,RIGHT,UNDEF; } + public int address() { + return address; + } + @Override public Object click() throws IOException { LOG.debug(getClass().getSimpleName()+".click()");