diff --git a/pom.xml b/pom.xml
index 119495a..89706d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 1.2.18
+ 1.2.19
Web4Rail
jar
Java Model Railway Control
diff --git a/src/main/java/de/srsoftware/web4rail/Application.java b/src/main/java/de/srsoftware/web4rail/Application.java
index fd27b13..5d5f2ad 100644
--- a/src/main/java/de/srsoftware/web4rail/Application.java
+++ b/src/main/java/de/srsoftware/web4rail/Application.java
@@ -164,11 +164,6 @@ public class Application extends BaseClass{
return Files.probeContentType(file.toPath());
}
- @Override
- protected void removeChild(BaseClass child) {
- throw new RuntimeException(this.getClass().getSimpleName()+".removeChild should never be called!");
- }
-
/**
* sends a response generated from the application to a given client
* @param client
diff --git a/src/main/java/de/srsoftware/web4rail/BaseClass.java b/src/main/java/de/srsoftware/web4rail/BaseClass.java
index 60a2618..c2e0c08 100644
--- a/src/main/java/de/srsoftware/web4rail/BaseClass.java
+++ b/src/main/java/de/srsoftware/web4rail/BaseClass.java
@@ -387,12 +387,12 @@ public abstract class BaseClass implements Constants{
}
public BaseClass remove() {
- LOG.debug("Called remove on {} ({})",id(),this);
+ LOG.debug("BaseClass.Remove {} ({})",id(),this);
if (isSet(parent)) parent.removeChild(this);
return registry.remove(id());
}
- protected abstract void removeChild(BaseClass child);
+ protected void removeChild(BaseClass child) {}
protected static String t(String txt, Object...fills) {
return Translation.get(Application.class, txt, fills);
diff --git a/src/main/java/de/srsoftware/web4rail/PathFinder.java b/src/main/java/de/srsoftware/web4rail/PathFinder.java
index 00bb2c7..cdffd96 100644
--- a/src/main/java/de/srsoftware/web4rail/PathFinder.java
+++ b/src/main/java/de/srsoftware/web4rail/PathFinder.java
@@ -109,9 +109,4 @@ public class PathFinder extends BaseClass{
return selectetRoute;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java
index a38f8ed..c4e4ab5 100644
--- a/src/main/java/de/srsoftware/web4rail/Plan.java
+++ b/src/main/java/de/srsoftware/web4rail/Plan.java
@@ -639,6 +639,7 @@ public class Plan extends BaseClass{
@Override
protected void removeChild(BaseClass child) {
if (child instanceof Tile) drop((Tile) child);
+ super.removeChild(child);
}
/**
diff --git a/src/main/java/de/srsoftware/web4rail/Range.java b/src/main/java/de/srsoftware/web4rail/Range.java
index bc1631c..2b37776 100644
--- a/src/main/java/de/srsoftware/web4rail/Range.java
+++ b/src/main/java/de/srsoftware/web4rail/Range.java
@@ -28,11 +28,6 @@ public class Range extends BaseClass{
if (max - min == 0) return max - min;
return min + random.nextInt(max - min);
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
@Override
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java
index e672a31..e78c8b5 100644
--- a/src/main/java/de/srsoftware/web4rail/Route.java
+++ b/src/main/java/de/srsoftware/web4rail/Route.java
@@ -753,15 +753,20 @@ public class Route extends BaseClass implements Comparable{
@Override
public BaseClass remove() {
- super.remove();
+ LOG.debug("Removing route ({}) {}",id(),this);
if (isSet(train)) train.removeChild(this);
- path.forEach(tile -> tile.removeChild(this));
+ for (Tile tile : path) {
+ if (tile.id().equals(Tile.id(4, 6))) {
+ System.err.println(tile);
+ }
+ tile.removeChild(this);
+ }
conditions.remove();
for (String key : new Vector(triggeredActions.keySet())){
ActionList actionList = triggeredActions.remove(key);
if (isSet(actionList)) actionList.remove();
};
- return this;
+ return super.remove();
}
@Override
@@ -772,10 +777,13 @@ public class Route extends BaseClass implements Comparable{
path.remove(child);
signals.remove(child);
if (child == train) train = null;
- for (ActionList list : triggeredActions.values()) list.removeChild(child);
+ for (ActionList list : triggeredActions.values()) {
+ list.removeChild(child);
+ }
turnouts.remove(child);
if (child == startBlock) startBlock = null;
triggeredContacts.remove(child);
+ super.removeChild(child);
}
public boolean reset() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
index 4eadea9..ea55a7d 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/ActionList.java
@@ -199,6 +199,7 @@ public class ActionList extends Action implements Iterable{
@Override
public BaseClass remove() {
+ LOG.debug("Removing Action List ({}) {}",id(),this);
super.remove();
while (!actions.isEmpty()) actions.lastElement().remove();
return this;
@@ -207,5 +208,6 @@ public class ActionList extends Action implements Iterable{
@Override
public void removeChild(BaseClass child) {
actions.remove(child);
+ super.removeChild(child);
}
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/BrakeCancel.java b/src/main/java/de/srsoftware/web4rail/actions/BrakeCancel.java
index 8cd8563..5e2bf8f 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/BrakeCancel.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/BrakeCancel.java
@@ -14,9 +14,4 @@ public class BrakeCancel extends Action {
context.route().brakeCancel();
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/BrakeStart.java b/src/main/java/de/srsoftware/web4rail/actions/BrakeStart.java
index a573bd2..ab974d0 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/BrakeStart.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/BrakeStart.java
@@ -15,9 +15,4 @@ public class BrakeStart extends Action {
LOG.debug("Started brake process...");
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/BrakeStop.java b/src/main/java/de/srsoftware/web4rail/actions/BrakeStop.java
index 1b2b517..ab38ac0 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/BrakeStop.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/BrakeStop.java
@@ -14,9 +14,4 @@ public class BrakeStop extends Action {
context.route().brakeStop();
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java b/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java
index 73c191e..e1abf72 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java
@@ -71,7 +71,7 @@ public class ConditionalAction extends ActionList {
@Override
public void removeChild(BaseClass child) {
conditions.remove(child);
- actions.remove(child);
+ super.removeChild(child);
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java b/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java
index 321a80f..7a16a76 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java
@@ -49,6 +49,7 @@ public class DetermineTrainInBlock extends Action {
@Override
protected void removeChild(BaseClass child) {
if (child == block) block = null;
+ super.removeChild(child);
}
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java b/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java
index 7aa9698..fda2739 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/FinishRoute.java
@@ -15,9 +15,4 @@ public class FinishRoute extends Action {
if (isSet(route)) route.finish();
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/PreserveRoute.java b/src/main/java/de/srsoftware/web4rail/actions/PreserveRoute.java
index ee84ca9..f9cd23c 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/PreserveRoute.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/PreserveRoute.java
@@ -29,9 +29,4 @@ public class PreserveRoute extends Action {
train.reserveNext();
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SendCommand.java b/src/main/java/de/srsoftware/web4rail/actions/SendCommand.java
index 8425d48..260b927 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SendCommand.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SendCommand.java
@@ -54,11 +54,6 @@ public class SendCommand extends Action{
return super.properties(preForm, formInputs, postForm);
}
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
-
@Override
public String toString() {
return t("Send command \"{}\" to control unit",command);
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java b/src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java
index ed40bd1..0e599f6 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java
@@ -57,7 +57,8 @@ public class SetContextTrain extends Action {
@Override
protected void removeChild(BaseClass child) {
- if (child == train) train = null;
+ if (child == train) train = null;
+ super.removeChild(child);
}
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java b/src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java
index 149db68..b28be0e 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java
@@ -54,6 +54,7 @@ public class SetDisplayText extends TextAction{
@Override
protected void removeChild(BaseClass child) {
if (child == display) display = null;
+ super.removeChild(child);
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetPower.java b/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
index 64014a9..c0443da 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetPower.java
@@ -68,11 +68,6 @@ public class SetPower extends Action{
return super.properties(preForm, formInputs, postForm);
}
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
-
@Override
public String toString() {
switch (pc) {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java b/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java
index 504d71a..070b0cf 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetRelay.java
@@ -64,6 +64,7 @@ public class SetRelay extends Action {
@Override
protected void removeChild(BaseClass child) {
if (child == relay) relay = null;
+ super.removeChild(child);
}
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java b/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java
index a04783c..cc05530 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetSignal.java
@@ -70,6 +70,7 @@ public class SetSignal extends Action {
@Override
protected void removeChild(BaseClass child) {
if (child == signal) signal = null;
+ super.removeChild(child);
}
public SetSignal set(Signal sig) {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java b/src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java
index beb99e1..35ab810 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java
@@ -45,11 +45,6 @@ public class SetSpeed extends Action{
formInputs.add(t("Set speed to"),new Input(MAX_SPEED, speed).numeric());
return super.properties(preForm, formInputs, postForm);
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
@Override
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/ShowText.java b/src/main/java/de/srsoftware/web4rail/actions/ShowText.java
index 7e01488..ff94ba1 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/ShowText.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/ShowText.java
@@ -21,11 +21,6 @@ public class ShowText extends TextAction{
return new Label(t("Text to display on clients:")+NBSP);
}
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
-
@Override
public String toString() {
return t("Display \"{}\" on clients.",text);
diff --git a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
index 6d2fac7..7855a05 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/StopAllTrains.java
@@ -14,9 +14,4 @@ public class StopAllTrains extends Action {
Train.list().forEach(train -> train.stopNow());
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java b/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java
index 1eb444f..43e869e 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/StopAuto.java
@@ -14,9 +14,4 @@ public class StopAuto extends Action {
context.train().quitAutopilot();
return true;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
index fdbd9af..a10c27c 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
@@ -48,6 +48,7 @@ public class TriggerContact extends Action {
@Override
protected void removeChild(BaseClass child) {
if (child == contact) contact = null;
+ super.removeChild(child);
}
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java b/src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java
index 9fad65c..338ca9d 100644
--- a/src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java
+++ b/src/main/java/de/srsoftware/web4rail/actions/TurnTrain.java
@@ -16,9 +16,4 @@ public class TurnTrain extends Action{
}
return false;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
}
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java b/src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java
index d9446ac..18de176 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java
@@ -45,6 +45,7 @@ public class BlockFree extends Condition {
@Override
protected void removeChild(BaseClass child) {
if (child == block) block = null;
+ super.removeChild(child);
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java b/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java
index 05513c3..234fb21 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java
@@ -122,6 +122,7 @@ public class ConditionList extends Condition implements Iterable{
@Override
public BaseClass remove() {
+ LOG.debug("Removing Condition List ({}) {}",id(),this);
super.remove();
while (!conditions.isEmpty()) conditions.lastElement().remove();
return this;
@@ -134,6 +135,7 @@ public class ConditionList extends Condition implements Iterable{
@Override
public void removeChild(BaseClass child) {
conditions.remove(child);
+ super.removeChild(child);
}
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/PushPullTrain.java b/src/main/java/de/srsoftware/web4rail/conditions/PushPullTrain.java
index 481b996..aa6acda 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/PushPullTrain.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/PushPullTrain.java
@@ -8,11 +8,6 @@ public class PushPullTrain extends Condition {
public boolean fulfilledBy(Context context) {
return context.train().pushPull != inverted;
}
-
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
@Override
public String toString() {
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java b/src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java
index 1c80280..991b7e0 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java
@@ -38,11 +38,6 @@ public class TrainHasTag extends Condition {
return super.properties(preForm, formInputs, postForm);
}
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
-
@Override
public String toString() {
if (tag == null) return "["+t("Click to setup tag")+"]";
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java b/src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java
index dc568a7..8194c06 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java
@@ -39,11 +39,6 @@ public class TrainLength extends Condition {
return super.properties(preForm, formInputs, postForm);
}
- @Override
- protected void removeChild(BaseClass child) {
- // this class has no child elements
- }
-
@Override
public String toString() {
return t(inverted ? "train is longer than {}" : "train is shorter than {}",maxLength) ;
diff --git a/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java b/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java
index 118577f..71fc485 100644
--- a/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java
+++ b/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java
@@ -40,6 +40,7 @@ public class TrainSelect extends Condition {
@Override
protected void removeChild(BaseClass child) {
if (child == train) train = null;
+ super.removeChild(child);
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Car.java b/src/main/java/de/srsoftware/web4rail/moving/Car.java
index 8a020a4..6b42ad3 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Car.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Car.java
@@ -208,6 +208,7 @@ public class Car extends BaseClass implements Comparable{
@Override
protected void removeChild(BaseClass child) {
if (child == train) train = null;
+ super.removeChild(child);
}
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java
index fa105bc..7cbf282 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Train.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java
@@ -570,6 +570,7 @@ public class Train extends BaseClass implements Comparable {
cars.remove(child);
locos.remove(child);
trace.remove(child);
+ super.removeChild(child);
}
public void reserveNext() {
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Bridge.java b/src/main/java/de/srsoftware/web4rail/tiles/Bridge.java
index 5a08bc0..0abc950 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/Bridge.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Bridge.java
@@ -104,7 +104,7 @@ public abstract class Bridge extends Tile {
@Override
public void removeChild(BaseClass child) {
if (child == counterpart) counterpart = null;
- plan.place(this);
+ super.removeChild(child);
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java
index 0674b95..12699a6 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java
@@ -190,6 +190,7 @@ public class Contact extends Tile{
@Override
public void removeChild(BaseClass child) {
if (child == actions) actions = null;
+ super.removeChild(child);
}
public static Select selector(Contact preselect) {
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java
index ba87bef..9f15da9 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java
@@ -33,10 +33,11 @@ public class Shadow extends Tile{
@Override
public void removeChild(BaseClass child) {
+ super.removeChild(child);
if (child == overlay) {
overlay = null;
remove();
- }
+ }
}
@Override
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java b/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java
index 78463d8..9a776b2 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java
@@ -77,9 +77,9 @@ public abstract class StretchableTile extends Tile {
@Override
public BaseClass remove() {
- super.remove();
+ LOG.debug("Removing stretchable Tile ({}) {}",id(),this);
removeShadows();
- return this;
+ return super.remove();
}
private void removeShadows() {
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java
index 85d8176..d585087 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java
@@ -376,16 +376,24 @@ public abstract class Tile extends BaseClass implements Comparable{
@Override
public BaseClass remove() {
- super.remove();
- while (!routes.isEmpty()) routes.first().remove();
- return this;
+ while (!routes.isEmpty()) {
+ routes.first().remove();
+ }
+ return super.remove();
}
@Override
public void removeChild(BaseClass child) {
- routes.remove(child);
+ String childAsString = child.toString();
+ if (childAsString.length()>20) childAsString = childAsString.substring(0, 20)+"…";
+ LOG.debug("Removing {} from {}",childAsString,this);
+ if (child instanceof Route) {
+ routes.remove(child);
+ }
+
if (child == train) train = null;
if (child == route) route = null;
+ super.removeChild(child);
plan.place(this);
}