Browse Source

more GUI improvements

lookup-tables
Stephan Richter 5 years ago
parent
commit
9810b453cb
  1. 2
      pom.xml
  2. 11
      resources/js/plan.js
  3. 1
      src/main/java/de/srsoftware/web4rail/Constants.java
  4. 19
      src/main/java/de/srsoftware/web4rail/Plan.java
  5. 11
      src/main/java/de/srsoftware/web4rail/Route.java
  6. 1
      src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java
  7. 2
      src/main/java/de/srsoftware/web4rail/tiles/Tile.java

2
pom.xml

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

11
resources/js/plan.js

@ -163,6 +163,10 @@ function request(data){ @@ -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('<html')) return;
if (resp.startsWith('<svg')){
@ -171,10 +175,15 @@ function request(data){ @@ -171,10 +175,15 @@ function request(data){
var isWindow = $(resp).attr('class') == 'window';
if (isWindow) $('.window').remove();
$(BODY).append($(resp));
if (isWindow) tileWindow();
if (isWindow) {
tileWindow();
var win = $('.window');
if (win.attr('id')==winId) win.scrollTop(scroll);
}
} else {
addMessage(resp);
}
$("html").scrollTop(scroll);
}
});
return false;

1
src/main/java/de/srsoftware/web4rail/Constants.java

@ -61,6 +61,7 @@ public interface Constants { @@ -61,6 +61,7 @@ public interface Constants {
public static final String PARENT = "parent";
public static final String PORT = "port";
public static final String RELAY = "relay";
public static final String ROUTE = "route";
public static final String TURNOUT = "turnout";
public static final String TYPE = "type";
public static final Charset UTF8 = StandardCharsets.UTF_8;

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

@ -165,6 +165,8 @@ public class Plan extends BaseClass{ @@ -165,6 +165,8 @@ public class Plan extends BaseClass{
return addTile(params.get(TILE),params.get(X),params.get(Y),null);
case ACTION_ANALYZE:
return analyze();
case ACTION_AUTO:
return simplyfyRouteName(params);
case ACTION_CLICK:
return click(get(Id.from(params),true));
case ACTION_CONNECT:
@ -615,10 +617,10 @@ public class Plan extends BaseClass{ @@ -615,10 +617,10 @@ public class Plan extends BaseClass{
new Tag("h4").content(t("Routes")).addTo(win);
table = new Table();
table.addHead(t("Name"),t("Start"),t("End"));
table.addHead(t("Name"),t("Start"),t("End"),t("Actions"));
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.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{ @@ -709,6 +711,19 @@ public class Plan extends BaseClass{
if (isSet(contact)) contact.activate(active);
}
private Object simplyfyRouteName(HashMap<String, String> 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

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

@ -748,7 +748,11 @@ public class Route extends BaseClass { @@ -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 { @@ -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;
}

1
src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java

@ -26,6 +26,7 @@ public class SetTurnout extends Action { @@ -26,6 +26,7 @@ public class SetTurnout extends Action {
public boolean fire(Context context) {
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) {

2
src/main/java/de/srsoftware/web4rail/tiles/Tile.java

@ -45,7 +45,6 @@ public abstract class Tile extends BaseClass implements Comparable<Tile>{ @@ -45,7 +45,6 @@ public abstract class Tile extends BaseClass implements Comparable<Tile>{
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<Tile>{ @@ -246,6 +245,7 @@ public abstract class Tile extends BaseClass implements Comparable<Tile>{
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);

Loading…
Cancel
Save