diff --git a/pom.xml b/pom.xml
index 7ac17a5..bd872bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 1.5.36
+ 1.5.37
Web4Rail
jar
Java Model Railway Control
diff --git a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
index bdf72ca..a9d9041 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
@@ -104,6 +104,13 @@ public class ActionList extends Action implements Iterable{
}
return speed;
}
+
+ private static void highlight(Window win, Action action) {
+ BaseClass scrollTarget = action.parent();
+ if (isNull(scrollTarget)) scrollTarget = action;
+
+ win.children().add(new Tag("script").content("document.getElementById('"+scrollTarget.id()+"').scrollIntoView({ behavior: \"smooth\" }); document.getElementById('"+action.id()+"').classList.add('highlight');"));
+ }
@Override
public Iterator iterator() {
@@ -130,7 +137,7 @@ public class ActionList extends Action implements Iterable{
if (!isEmpty()) {
Tag list = new Tag("ol");
for (Action action : actions) {
- Tag item = action.link("span",action, action.highlightId()).addTo(new Tag("li")).content(NBSP);
+ Tag item = action.link("span",action, action.highlightId()).id(action.id().toString()).addTo(new Tag("li")).content(NBSP);
action.button("↑", Map.of(ACTION,ACTION_MOVE)).title(t("move up")).addTo(item);
action.button("-", Map.of(ACTION,ACTION_DROP)).title(t("delete")).addTo(item);
if (action instanceof ActionList) ((ActionList) action).listAt(item);
@@ -245,7 +252,12 @@ public class ActionList extends Action implements Iterable{
case ACTION_START:
return start(action);
case ACTION_UPDATE:
- return action.update(params);
+ Object res = action.update(params);
+ if (res instanceof Window) {
+ Window win = (Window) res;
+ highlight(win,action);
+ }
+ return res;
}
return t("Unknown action: {}",command);
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetPower.java b/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
index e9a79e0..084b4ad 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
@@ -85,6 +85,6 @@ public class SetPower extends Action{
LOG.debug("update: {}",params);
String newState = params.getString(STATE);
if (isSet(newState)) pc = POWERCHANGE.valueOf(newState);
- return parent().properties();
+ return context().properties();
}
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
index 10fc043..fc819d2 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
@@ -91,7 +91,7 @@ public class TriggerContact extends Action {
contactOrSwitch = tile;
} else error = t("{} is neither a contact nor a switch!",tile);
}
- return properties(error);
+ return context().properties(error);
}
}