diff --git a/pom.xml b/pom.xml
index 237caa1..e7f1ee9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 1.0.9
+ 1.0.10
Web4Rail
jar
Java Model Railway Control
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Car.java b/src/main/java/de/srsoftware/web4rail/moving/Car.java
index 9c4670a..6097ed0 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Car.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Car.java
@@ -80,8 +80,8 @@ public class Car extends BaseClass implements Comparable{
return t("Unknown action: {}",params.get(ACTION));
}
- public static Car get(Object id) {
- return cars.get(Integer.parseInt(""+id)); // try to get by id
+ public static Car get(Object id) {
+ return isNull(id) ? null : cars.get(Integer.parseInt(""+id)); // try to get by id
}
@@ -224,6 +224,10 @@ public class Car extends BaseClass implements Comparable{
public String toString() {
return name;
}
+
+ public Train train() {
+ return train;
+ }
public void train(Train train) {
this.train = train;
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
index 5f95a4d..6a47932 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
@@ -127,7 +127,8 @@ public class Locomotive extends Car implements Constants,Device{
public Object faster(int steps) {
- return setSpeed(speed + steps);
+ setSpeed(speed + steps);
+ return properties();
}
public static Locomotive get(Object id) {
@@ -286,7 +287,7 @@ public class Locomotive extends Car implements Constants,Device{
public Object stop() {
setSpeed(0);
- return t("Stopped {}",this);
+ return properties();
}
private Object toggleFunction(int f) {
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java
index 273d2fa..f5ac85a 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Train.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java
@@ -185,6 +185,7 @@ public class Train extends BaseClass implements Comparable {
if (car instanceof Locomotive) {
locos.add((Locomotive) car);
} else cars.add(car);
+ car.train(this);
return props();
}
@@ -223,7 +224,7 @@ public class Train extends BaseClass implements Comparable {
new Input(ID,id).hideIn(addCarForm);
Select select = new Select(CAR_ID);
for (Car car : Car.list()) {
- if (!this.cars.contains(car)) select.addOption(car.id(), car+(car.stockId.isEmpty()?"":" ("+car.stockId+")"));
+ if (isNull(car.train())) select.addOption(car.id(), car+(car.stockId.isEmpty()?"":" ("+car.stockId+")"));
}
if (!select.children().isEmpty()) {
select.addTo(addCarForm);
@@ -283,10 +284,16 @@ public class Train extends BaseClass implements Comparable {
}
private Object dropCar(HashMap params) {
- String carId = params.get(CAR_ID);
- if (isSet(carId)) cars.remove(Car.get(carId));
- String locoId = params.get(LOCO_ID);
- if (isSet(locoId)) locos.remove(Car.get(locoId));
+ Car car = Car.get(params.get(CAR_ID));
+ if (isSet(car)) {
+ cars.remove(car);
+ car.train(null);
+ }
+ Locomotive loco = Locomotive.get(params.get(LOCO_ID));
+ if (isSet(loco)) {
+ locos.remove(loco);
+ loco.train(null);
+ }
return props();
}
@@ -411,7 +418,7 @@ public class Train extends BaseClass implements Comparable {
new Input(ID,id).hideIn(addLocoForm);
Select select = new Select(CAR_ID);
for (Car loco : Locomotive.list()) {
- if (!this.locos.contains(loco)) select.addOption(loco.id(), loco);
+ if (isNull(loco.train())) select.addOption(loco.id(), loco);
}
if (!select.children().isEmpty()) {
select.addTo(addLocoForm);