Browse Source

implemented stop train

lookup-tables
Stephan Richter 5 years ago
parent
commit
38bb612d97
  1. 2
      pom.xml
  2. 4
      src/main/java/de/srsoftware/web4rail/Constants.java
  3. 10
      src/main/java/de/srsoftware/web4rail/Route.java
  4. 30
      src/main/java/de/srsoftware/web4rail/moving/Train.java
  5. 7
      src/main/java/de/srsoftware/web4rail/tiles/Block.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>0.7.4</version> <version>0.7.5</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>

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

@ -17,6 +17,7 @@ public interface Constants {
public static final String ACTION_MOVE = "move"; public static final String ACTION_MOVE = "move";
public static final String ACTION_POWER = "power"; public static final String ACTION_POWER = "power";
public static final String ACTION_PROPS = "props"; public static final String ACTION_PROPS = "props";
public static final String ACTION_QUIT = "quit";
public static final String ACTION_SAVE = "save"; public static final String ACTION_SAVE = "save";
public static final String ACTION_SLOWER10 = "slower10"; public static final String ACTION_SLOWER10 = "slower10";
public static final String ACTION_START = "start"; public static final String ACTION_START = "start";
@ -27,8 +28,6 @@ public interface Constants {
public static final String ACTION_TOGGLE_F4 = "f4"; public static final String ACTION_TOGGLE_F4 = "f4";
public static final String ACTION_TURN = "turn"; public static final String ACTION_TURN = "turn";
public static final String ACTION_UPDATE = "update"; public static final String ACTION_UPDATE = "update";
public static final String REALM = "realm"; public static final String REALM = "realm";
public static final String REALM_CAR = "car"; public static final String REALM_CAR = "car";
@ -43,5 +42,6 @@ public interface Constants {
public static final Charset UTF8 = StandardCharsets.UTF_8; public static final Charset UTF8 = StandardCharsets.UTF_8;
public static final String CONTACT = "contact"; public static final String CONTACT = "contact";
public static final String TYPE = "type"; public static final String TYPE = "type";
public static final String NBSP = "&nbsp;";
} }

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

@ -208,8 +208,8 @@ public class Route implements Constants{
new Input(REALM,REALM_ROUTE).hideIn(form); new Input(REALM,REALM_ROUTE).hideIn(form);
new Input(ID,id()).hideIn(form); new Input(ID,id()).hideIn(form);
Tag label = new Tag("label").content(t("name:")); Tag label = new Tag("label").content(t("name:")+NBSP);
new Tag("input").attr("type", "text").attr(NAME,"name").attr("value", name()).addTo(label); new Tag("input").attr("type", "text").attr(NAME,"name").attr("value", name()).style("width: 80%").addTo(label);
label.addTo(form); label.addTo(form);
new Tag("button").attr("type", "submit").content(t("save")).addTo(form); new Tag("button").attr("type", "submit").content(t("save")).addTo(form);
@ -305,6 +305,10 @@ public class Route implements Constants{
return properties(); return properties();
} }
public Block endBlock() {
return endBlock;
}
public void finish() throws IOException { public void finish() throws IOException {
startBlock.train(null); startBlock.train(null);
train.route = null; train.route = null;
@ -563,7 +567,7 @@ public class Route implements Constants{
} }
public Block startBlock() { public Block startBlock() {
return (Block) path.get(0); return startBlock;
} }
protected static String t(String txt, Object...fills) { protected static String t(String txt, Object...fills) {

30
src/main/java/de/srsoftware/web4rail/moving/Train.java

@ -135,10 +135,12 @@ public class Train implements Constants {
return train.automatic(); return train.automatic();
case ACTION_PROPS: case ACTION_PROPS:
return train.props(); return train.props();
case ACTION_QUIT:
return train.quitAutopilot();
case ACTION_START: case ACTION_START:
return train.start(); return train.start();
case ACTION_STOP: case ACTION_STOP:
return train.stop(); return train.stopNow();
case ACTION_TURN: case ACTION_TURN:
return train.turn(); return train.turn();
case ACTION_UPDATE: case ACTION_UPDATE:
@ -147,7 +149,6 @@ public class Train implements Constants {
return t("Unknown action: {}",params.get(ACTION)); return t("Unknown action: {}",params.get(ACTION));
} }
private Object addCar(HashMap<String, String> params) { private Object addCar(HashMap<String, String> params) {
LOG.debug("addCar({})",params); LOG.debug("addCar({})",params);
if (!params.containsKey(CAR_ID)) return t("No car id passed to Train.addCar!"); if (!params.containsKey(CAR_ID)) return t("No car id passed to Train.addCar!");
@ -346,7 +347,7 @@ public class Train implements Constants {
if (autopilot == null) { if (autopilot == null) {
new Button(t("auto"),"train("+id+",'"+ACTION_AUTO+"')").addTo(actions); new Button(t("auto"),"train("+id+",'"+ACTION_AUTO+"')").addTo(actions);
} else { } else {
new Button(t("stop"),"train("+id+",'"+ACTION_STOP+"')").addTo(actions); new Button(t("quit autopilot"),"train("+id+",'"+ACTION_QUIT+"')").addTo(actions);
} }
actions.addTo(propList); actions.addTo(propList);
@ -361,6 +362,14 @@ public class Train implements Constants {
return window; return window;
} }
private Object quitAutopilot() {
if (autopilot != null) {
autopilot.stop = true;
autopilot = null;
return t("{} stopping at next block.",this);
} else return t("autopilot not active.");
}
public static void saveAll(String filename) throws IOException { public static void saveAll(String filename) throws IOException {
BufferedWriter file = new BufferedWriter(new FileWriter(filename)); BufferedWriter file = new BufferedWriter(new FileWriter(filename));
for (Entry<Long, Train> entry:trains.entrySet()) { for (Entry<Long, Train> entry:trains.entrySet()) {
@ -414,10 +423,17 @@ public class Train implements Constants {
return error; return error;
} }
private Object stop() { private Object stopNow() {
autopilot.stop = true; setSpeed(0);
autopilot = null; if (route != null) try {
return t("{} stopping at next block.",this); route.unlock();
route.endBlock().train(null);
route.startBlock().train(this);
} catch (IOException e) {
e.printStackTrace();
}
route = null;
return t("Stopped {}.",this);
} }
private static String t(String message, Object...fills) { private static String t(String message, Object...fills) {

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

@ -82,9 +82,10 @@ public abstract class Block extends StretchableTile{
Tag window = super.propMenu(); Tag window = super.propMenu();
if (train != null) { if (train != null) {
new Tag("h4").content(t("Train:")).addTo(window); window.children().insertElementAt(new Button(t("stop"),"train("+train.id+",'"+ACTION_STOP+"')"), 1);
train.link("span").addTo(window); window.children().insertElementAt(new Button(t("start"),"train("+train.id+",'"+ACTION_START+"')"), 1);
new Button(t("start"),"train("+train.id+",'"+ACTION_START+"')").addTo(window); window.children().insertElementAt(train.link("span"), 1);
window.children().insertElementAt(new Tag("h4").content(t("Train:")), 1);
} }
return window; return window;
} }

Loading…
Cancel
Save