Browse Source

various GUI improvements

lookup-tables
Stephan Richter 4 years ago
parent
commit
e80d5fe79f
  1. 2
      pom.xml
  2. 11
      resources/css/style.css
  3. 1
      resources/js/plan.js
  4. 2
      resources/svg/BlockH.svg
  5. 2
      resources/svg/BlockV.svg
  6. 1
      resources/translations/Application.de.translation
  7. 25
      src/main/java/de/srsoftware/web4rail/Plan.java
  8. 13
      src/main/java/de/srsoftware/web4rail/Route.java
  9. 3
      src/main/java/de/srsoftware/web4rail/tags/Button.java

2
pom.xml

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId> <groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId> <artifactId>web4rail</artifactId>
<version>1.2.41</version> <version>1.2.42</version>
<name>Web4Rail</name> <name>Web4Rail</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>Java Model Railway Control</description> <description>Java Model Railway Control</description>

11
resources/css/style.css

@ -330,4 +330,15 @@ textarea.json {
width: 90%; width: 90%;
height: 33%; height: 33%;
margin-left: 5%; margin-left: 5%;
}
svg.preview circle,
svg.preview line,
svg.preview polygon,
svg.preview rect{
fill:peru;
}
svg.Block text{
fill: black;
} }

1
resources/js/plan.js

@ -57,6 +57,7 @@ function closeMenu(ev){
function closeWindows(){ function closeWindows(){
$('.window').remove(); $('.window').remove();
$('.preview').removeClass('preview');
$('#plan').css('height','').css('width',''); $('#plan').css('height','').css('width','');
} }

2
resources/svg/BlockH.svg

@ -1,5 +1,5 @@
<svg width="100" height="100" viewbox="0 0 100 100"> <svg width="100" height="100" viewbox="0 0 100 100">
<rect x="0" y="35" width="%width%" height="30" /> <rect x="0" y="35" width="%width%" height="30" />
<rect class="block" x="20" y="10" width="%width%-40" height="80" /> <rect class="block" x="20" y="10" width="%width%-40" height="80" />
<text x="25" y="65" fill="red">%text%</text> <text x="25" y="65">%text%</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 225 B

After

Width:  |  Height:  |  Size: 214 B

2
resources/svg/BlockV.svg

@ -1,5 +1,5 @@
<svg width="100" height="100" viewbox="0 0 100 100"> <svg width="100" height="100" viewbox="0 0 100 100">
<rect x="35" y="0" width="30" height="%height%" /> <rect x="35" y="0" width="30" height="%height%" />
<rect class="block" x="10" y="20" width="80" height="%height%-40" /> <rect class="block" x="10" y="20" width="80" height="%height%-40" />
<text x="25" y="65" fill="red" transform="translate(100, 0) rotate(90)">%text%</text> <text x="25" y="65" transform="translate(100, 0) rotate(90)">%text%</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 257 B

1
resources/translations/Application.de.translation

@ -165,6 +165,7 @@ PushPullTrain : Wendezug
Push-pull train : Wendezug Push-pull train : Wendezug
quit autopilot : Autopilot beenden quit autopilot : Autopilot beenden
{} reached it`s destination! : {} ist am Ziel angekommen! {} reached it`s destination! : {} ist am Ziel angekommen!
Relays and Turnouts : Relais und Weichen
Relay/Turnout : Relais/Weiche Relay/Turnout : Relais/Weiche
Report Issue : Problem melden Report Issue : Problem melden
reverse : rückwärts reverse : rückwärts

25
src/main/java/de/srsoftware/web4rail/Plan.java

@ -16,6 +16,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Vector; import java.util.Vector;
import java.util.stream.Collectors;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
@ -595,18 +596,30 @@ public class Plan extends BaseClass{
new Button(t("Save"), form).addTo(form); new Button(t("Save"), form).addTo(form);
form.addTo(win); form.addTo(win);
new Tag("h4").content(t("turnout properties")).addTo(win); new Tag("h4").content(t("Relays and Turnouts")).addTo(win);
Table table = new Table(); Table table = new Table();
table.addHead(t("Address"),t("Relay/Turnout")); table.addHead(t("Address"),t("Relay/Turnout"));
BaseClass.listElements(Tile.class) List<Device> devices = BaseClass.listElements(Tile.class)
.stream() .stream()
.filter(tile -> tile instanceof Device ) .filter(tile -> tile instanceof Device )
.map(tile -> (Device) tile) .map(tile -> (Device) tile)
.sorted(Comparator.comparing(Device::address)) .sorted(Comparator.comparing(Device::address))
.forEach(turnout -> { .collect(Collectors.toList());
table.addRow(turnout.address(),turnout); for (Device device : devices) {
if (turnout.address() % 4 == 1) table.children().lastElement().clazz("group"); Tile tile = (Tile) device;
}); table.addRow(device.address(),tile.link(tile.toString()));
if (device.address() % 4 == 1) table.children().lastElement().clazz("group");
}
table.clazz("turnouts").addTo(win);
new Tag("h4").content(t("Routes")).addTo(win);
table = new Table();
table.addHead(t("Name"),t("Start"),t("End"));
List<Route> 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.clazz("turnouts").addTo(win); table.clazz("turnouts").addTo(win);
return win; return win;

13
src/main/java/de/srsoftware/web4rail/Route.java

@ -733,6 +733,14 @@ public class Route extends BaseClass {
return result; return result;
} }
private Tag previewScript() {
Tag script = new Tag("script").attr("type", "text/javascript");
for (Tile tile : path) {
script.content("$('#"+tile.id()+"').addClass('preview');\n");
}
return script;
}
@Override @Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) { protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
@ -745,7 +753,10 @@ public class Route extends BaseClass {
postForm.add(basicProperties()); postForm.add(basicProperties());
if (!turnouts.isEmpty()) postForm.add(turnouts()); if (!turnouts.isEmpty()) postForm.add(turnouts());
postForm.add(brakeTimes()); postForm.add(brakeTimes());
return super.properties(preForm, formInputs, postForm); Window win = super.properties(preForm, formInputs, postForm);
previewScript().addTo(win);
return win;
} }
@Override @Override

3
src/main/java/de/srsoftware/web4rail/tags/Button.java

@ -23,8 +23,9 @@ public class Button extends Tag {
attr("onclick",action).content(text); attr("onclick",action).content(text);
} }
public Button(String text,Form form) { public Button(String text,Form form) {
this(text,"return submitForm('"+form.get("id")+"');"); this(text,"return submitForm('"+form.get("id")+"');");
form.attr("onsubmit", "return submitForm('"+form.get("id")+"');");
} }
public Button(String text, Map<String, ? extends Object> props) { public Button(String text, Map<String, ? extends Object> props) {

Loading…
Cancel
Save