Browse Source

various minor improvements

lookup-tables
Stephan Richter 4 years ago
parent
commit
54961c1f14
  1. 2
      pom.xml
  2. 1
      resources/translations/Application.de.translation
  3. 10
      src/main/java/de/srsoftware/web4rail/Route.java
  4. 9
      src/main/java/de/srsoftware/web4rail/actions/DisableEnableBlock.java
  5. 9
      src/main/java/de/srsoftware/web4rail/actions/SetSignal.java
  6. 2
      src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
  7. 11
      src/main/java/de/srsoftware/web4rail/conditions/TrainWasInBlock.java
  8. 2
      src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
  9. 25
      src/main/java/de/srsoftware/web4rail/tiles/Block.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.3.44</version>
<version>1.3.45</version>
<name>Web4Rail</name>
<packaging>jar</packaging>
<description>Java Model Railway Control</description>

1
resources/translations/Application.de.translation

@ -114,6 +114,7 @@ DelayedAction : verzögerte Aktion @@ -114,6 +114,7 @@ DelayedAction : verzögerte Aktion
Delay must not be less than zero! : Verzögerung darf nicht kleiner als null sein!
delete : entfernen
delete route : Route löschen
depart : abfahren
Destination : Ziel
Destination\: {} from {} : Ziel: {} von {}
DetermineTrainInBlock : Zug im Block bestimmen

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

@ -414,9 +414,13 @@ public class Route extends BaseClass { @@ -414,9 +414,13 @@ public class Route extends BaseClass {
add(trigger,new BrakeStart(this));
add(trigger,new PreserveRoute(this));
Contact secondContact = contacts.get(1);
trigger = secondContact.trigger();
for (Signal signal : signals) add(trigger,new SetSignal(this).set(signal).to(Signal.RED));
for (int i=1;i<contacts.size();i++) { // chose second contact, that is not a BlockContact
Contact secondContact = contacts.get(i);
if (secondContact instanceof BlockContact) continue;
trigger = secondContact.trigger();
for (Signal signal : signals) add(trigger,new SetSignal(this).set(signal).to(Signal.RED));
break;
}
}
if (!contacts.isEmpty()) add(contacts.lastElement().trigger(), new FinishRoute(this));
for (Entry<Turnout, Turnout.State> entry : turnouts.entrySet()) {

9
src/main/java/de/srsoftware/web4rail/actions/DisableEnableBlock.java

@ -2,6 +2,7 @@ package de.srsoftware.web4rail.actions; @@ -2,6 +2,7 @@ package de.srsoftware.web4rail.actions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
@ -12,6 +13,8 @@ import de.srsoftware.web4rail.tags.Fieldset; @@ -12,6 +13,8 @@ import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Shadow;
import de.srsoftware.web4rail.tiles.Tile;
public class DisableEnableBlock extends Action {
@ -65,7 +68,7 @@ public class DisableEnableBlock extends Action { @@ -65,7 +68,7 @@ public class DisableEnableBlock extends Action {
@Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Select block"),Block.selector(isSet(block) ? block : t("block from context"), null));
formInputs.add(t("Block")+": "+(isNull(block) ? t("block from context") : block),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,Block.class.getSimpleName())));
Tag radios = new Tag("p");
new Radio(STATE, "enable", t("enable"), !disable).addTo(radios);
new Radio(STATE, "disable", t("disable"), disable).addTo(radios);
@ -88,7 +91,9 @@ public class DisableEnableBlock extends Action { @@ -88,7 +91,9 @@ public class DisableEnableBlock extends Action {
protected Object update(HashMap<String, String> params) {
LOG.debug("update: {}",params);
Id blockId = Id.from(params,Block.class.getSimpleName());
if (isSet(blockId)) block = Block.get(blockId);
Tile tile = isSet(blockId) ? BaseClass.get(blockId) : null;
if (tile instanceof Shadow) tile = ((Shadow)tile).overlay();
if (tile instanceof Block) block = (Block) tile;
disable = !"enable".equals(params.get(STATE));
return properties();
}

9
src/main/java/de/srsoftware/web4rail/actions/SetSignal.java

@ -2,6 +2,7 @@ package de.srsoftware.web4rail.actions; @@ -2,6 +2,7 @@ package de.srsoftware.web4rail.actions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
@ -59,13 +60,7 @@ public class SetSignal extends Action { @@ -59,13 +60,7 @@ public class SetSignal extends Action {
@Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
Select select = new Select(SIGNAL);
for (Signal signal : BaseClass.listElements(Signal.class)) {
Tag option = select.addOption(signal.id(),signal.title());
if (signal == this.signal) option.attr("selected", "selected");
}
formInputs.add(t("Select signal"),select);
formInputs.add(t("Signal")+": "+(isNull(signal) ? t("unset") : signal),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,SIGNAL)));
Select state = new Select(Signal.STATE);
for (String st:Signal.knownStates) {
Tag option = state.addOption(st);

2
src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java

@ -53,7 +53,7 @@ public class TriggerContact extends Action { @@ -53,7 +53,7 @@ public class TriggerContact extends Action {
}
public String toString() {
return isSet(contact) ? t("Trigger {}",contact) : "["+t("click here to setup contact")+"]";
return isSet(contact) ? t("Trigger {}",contact) : "["+t("Click here to setup contact")+"]";
};
@Override

11
src/main/java/de/srsoftware/web4rail/conditions/TrainWasInBlock.java

@ -2,6 +2,7 @@ package de.srsoftware.web4rail.conditions; @@ -2,6 +2,7 @@ package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
@ -12,6 +13,8 @@ import de.srsoftware.web4rail.tags.Fieldset; @@ -12,6 +13,8 @@ import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Shadow;
import de.srsoftware.web4rail.tiles.Tile;
public class TrainWasInBlock extends Condition {
@ -46,7 +49,7 @@ public class TrainWasInBlock extends Condition { @@ -46,7 +49,7 @@ public class TrainWasInBlock extends Condition {
@Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Select block"), Block.selector(block, null));
formInputs.add(t("Block")+": "+(isNull(block) ? t("block from context") : block),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,BLOCK)));
formInputs.add(t("Seek in last"), new Input(COUNT, count).numeric().addTo(new Tag("span")).content(NBSP+t("blocks of train")));
return super.properties(preForm, formInputs, postForm);
}
@ -68,9 +71,9 @@ public class TrainWasInBlock extends Condition { @@ -68,9 +71,9 @@ public class TrainWasInBlock extends Condition {
protected Object update(HashMap<String, String> params) {
if (!params.containsKey(BLOCK)) return t("No block id passed to TrainWasInBlock.update()!");
Id bid = new Id(params.get(BLOCK));
Block block = Block.get(bid);
if (isNull(block)) return t("No block with id {} found!",bid);
this.block = block;
Tile tile = BaseClass.get(bid);
if (tile instanceof Shadow) tile = ((Shadow)tile).overlay();
if (tile instanceof Block) block = (Block) tile;
if (params.containsKey(COUNT)) count=Integer.parseInt(params.get(COUNT));
return super.update(params);
}

2
src/main/java/de/srsoftware/web4rail/moving/Locomotive.java

@ -155,7 +155,7 @@ public class Locomotive extends Car implements Constants,Device{ @@ -155,7 +155,7 @@ public class Locomotive extends Car implements Constants,Device{
if (isSet(currentBlock)) {
if (isNull(train.route())) {
params.put(ACTION, ACTION_START);
new Button(t("start"),params).addTo(direction);
new Button(t("depart"),params).addTo(direction);
}
if (train.usesAutopilot()) {
params.put(ACTION, ACTION_QUIT);

25
src/main/java/de/srsoftware/web4rail/tiles/Block.java

@ -2,7 +2,6 @@ package de.srsoftware.web4rail.tiles; @@ -2,7 +2,6 @@ package de.srsoftware.web4rail.tiles;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@ -11,6 +10,7 @@ import java.util.Map.Entry; @@ -11,6 +10,7 @@ import java.util.Map.Entry;
import java.util.Vector;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -26,7 +26,6 @@ import de.srsoftware.web4rail.tags.Checkbox; @@ -26,7 +26,6 @@ import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
/**
@ -289,9 +288,11 @@ public abstract class Block extends StretchableTile{ @@ -289,9 +288,11 @@ public abstract class Block extends StretchableTile{
});
}
if (json.has(CONTACT)) {
JSONObject jContact = json.getJSONObject(CONTACT);
JSONObject jContact = json.getJSONObject(CONTACT);
for (String key : jContact.keySet()) {
new BlockContact(this).load(jContact.getJSONObject(key));
try {
new BlockContact(this).load(jContact.getJSONObject(key));
} catch (JSONException e) {}
}
}
if (json.has(PARKED_TRAINS)) {
@ -364,22 +365,6 @@ public abstract class Block extends StretchableTile{ @@ -364,22 +365,6 @@ public abstract class Block extends StretchableTile{
internalContacts.remove(blockContact);
}
public static Select selector(Object preset,Collection<Block> exclude) {
Block preselected = preset instanceof Block ? (Block) preset : null;
String firstEntry = preset instanceof String ? (String) preset : t("unset");
if (isNull(exclude)) exclude = new Vector<Block>();
Select select = new Select(Block.class.getSimpleName());
new Tag("option").attr("value","0").content(firstEntry).addTo(select);
List<Block> blocks = BaseClass.listElements(Block.class);
Collections.sort(blocks, (b1,b2) -> b1.name.compareTo(b2.name));
for (Block block : blocks) {
if (exclude.contains(block)) continue;
Tag opt = select.addOption(block.id(), block);
if (block == preselected) opt.attr("selected", "selected");
}
return select;
}
public abstract List<Connector> startPoints();
@Override

Loading…
Cancel
Save