added TurnTrain action
This commit is contained in:
2
pom.xml
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.2</version>
|
<version>0.7.3</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>
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import de.srsoftware.web4rail.actions.ActivateRoute;
|
|||||||
import de.srsoftware.web4rail.actions.FinishRoute;
|
import de.srsoftware.web4rail.actions.FinishRoute;
|
||||||
import de.srsoftware.web4rail.actions.SetSignalsToStop;
|
import de.srsoftware.web4rail.actions.SetSignalsToStop;
|
||||||
import de.srsoftware.web4rail.actions.SpeedReduction;
|
import de.srsoftware.web4rail.actions.SpeedReduction;
|
||||||
|
import de.srsoftware.web4rail.actions.TurnTrain;
|
||||||
import de.srsoftware.web4rail.moving.Train;
|
import de.srsoftware.web4rail.moving.Train;
|
||||||
import de.srsoftware.web4rail.tags.Button;
|
import de.srsoftware.web4rail.tags.Button;
|
||||||
import de.srsoftware.web4rail.tags.Form;
|
import de.srsoftware.web4rail.tags.Form;
|
||||||
@@ -76,7 +77,11 @@ public class Route implements Constants{
|
|||||||
new Input(ACTION,ACTION_ADD_ACTION).hideIn(typeForm);
|
new Input(ACTION,ACTION_ADD_ACTION).hideIn(typeForm);
|
||||||
new Input(CONTACT,contact.id()).hideIn(typeForm);
|
new Input(CONTACT,contact.id()).hideIn(typeForm);
|
||||||
Select select = new Select(TYPE);
|
Select select = new Select(TYPE);
|
||||||
List<Class<? extends Action>> classes = List.of(SpeedReduction.class,SetSignalsToStop.class,FinishRoute.class);
|
List<Class<? extends Action>> classes = List.of(
|
||||||
|
SpeedReduction.class,
|
||||||
|
SetSignalsToStop.class,
|
||||||
|
FinishRoute.class,
|
||||||
|
TurnTrain.class);
|
||||||
for (Class<? extends Action> clazz : classes) select.addOption(clazz.getSimpleName());
|
for (Class<? extends Action> clazz : classes) select.addOption(clazz.getSimpleName());
|
||||||
select.addTo(new Label("Action type:")).addTo(typeForm);
|
select.addTo(new Label("Action type:")).addTo(typeForm);
|
||||||
return new Button(t("Create action"),"return submitForm('"+formId+"');").addTo(typeForm);
|
return new Button(t("Create action"),"return submitForm('"+formId+"');").addTo(typeForm);
|
||||||
@@ -130,19 +135,22 @@ public class Route implements Constants{
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case "FinishRoute":
|
case "FinishRoute":
|
||||||
addAction(contact.trigger(),new FinishRoute(id()));
|
addAction(contact.trigger(),new FinishRoute(id()));
|
||||||
plan.stream("Action added!");
|
break;
|
||||||
return properties();
|
|
||||||
case "SpeedReduction":
|
case "SpeedReduction":
|
||||||
return SpeedReduction.propForm(params,this,contact);
|
return SpeedReduction.propForm(params,this,contact);
|
||||||
case "SetSignalsToStop":
|
case "SetSignalsToStop":
|
||||||
addAction(contact.trigger(),new SetSignalsToStop(id()));
|
addAction(contact.trigger(),new SetSignalsToStop(id()));
|
||||||
|
break;
|
||||||
|
case "TurnTrain":
|
||||||
|
addAction(contact.trigger(),new TurnTrain(id()));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return win;
|
||||||
|
}
|
||||||
plan.stream("Action added!");
|
plan.stream("Action added!");
|
||||||
return properties();
|
return properties();
|
||||||
}
|
}
|
||||||
|
|
||||||
return win;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addBasicPropertiesTo(Window win) {
|
private void addBasicPropertiesTo(Window win) {
|
||||||
new Tag("h4").content(t("Origin and destination")).addTo(win);
|
new Tag("h4").content(t("Origin and destination")).addTo(win);
|
||||||
Tag list = new Tag("ul");
|
Tag list = new Tag("ul");
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ public abstract class Action {
|
|||||||
return new SetSignalsToStop(json.getInt(RouteAction.ROUTE));
|
return new SetSignalsToStop(json.getInt(RouteAction.ROUTE));
|
||||||
case "SpeedReduction":
|
case "SpeedReduction":
|
||||||
return new SpeedReduction(json.getInt(RouteAction.ROUTE), json.getInt(SpeedReduction.MAX_SPEED));
|
return new SpeedReduction(json.getInt(RouteAction.ROUTE), json.getInt(SpeedReduction.MAX_SPEED));
|
||||||
|
case "TurnTrain":
|
||||||
|
return new TurnTrain(json.getInt(RouteAction.ROUTE));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
18
src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java
Normal file
18
src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package de.srsoftware.web4rail.actions;
|
||||||
|
|
||||||
|
import de.srsoftware.web4rail.Constants;
|
||||||
|
import de.srsoftware.web4rail.Route;
|
||||||
|
import de.srsoftware.web4rail.moving.Train;
|
||||||
|
|
||||||
|
public class TurnTrain extends RouteAction implements Constants{
|
||||||
|
|
||||||
|
public TurnTrain(int routeId) {
|
||||||
|
super(routeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fire(Route route) {
|
||||||
|
Train train = route.train;
|
||||||
|
if (train != null) train.turn();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,7 +23,6 @@ import de.srsoftware.web4rail.Application;
|
|||||||
import de.srsoftware.web4rail.Constants;
|
import de.srsoftware.web4rail.Constants;
|
||||||
import de.srsoftware.web4rail.Plan;
|
import de.srsoftware.web4rail.Plan;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.actions.SetSignalsToStop;
|
|
||||||
import de.srsoftware.web4rail.Route;
|
import de.srsoftware.web4rail.Route;
|
||||||
import de.srsoftware.web4rail.Window;
|
import de.srsoftware.web4rail.Window;
|
||||||
import de.srsoftware.web4rail.tags.Button;
|
import de.srsoftware.web4rail.tags.Button;
|
||||||
@@ -430,13 +429,15 @@ public class Train implements Constants {
|
|||||||
return name != null ? name : locos.firstElement().name();
|
return name != null ? name : locos.firstElement().name();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object turn() throws IOException {
|
public Object turn() {
|
||||||
LOG.debug("train.turn()");
|
LOG.debug("train.turn()");
|
||||||
if (direction != null) {
|
if (direction != null) {
|
||||||
direction = direction.inverse();
|
direction = direction.inverse();
|
||||||
for (Locomotive loco : locos) loco.turn();
|
for (Locomotive loco : locos) loco.turn();
|
||||||
}
|
}
|
||||||
if (block != null) plan.place(block.train(this));
|
if (block != null) try {
|
||||||
|
plan.place(block.train(this));
|
||||||
|
} catch (IOException e) {}
|
||||||
return t("{} turned.",this);
|
return t("{} turned.",this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user