bugfixes after refactoring

This commit is contained in:
Stephan Richter
2020-12-01 20:59:56 +01:00
parent 72db5da58f
commit 2e5bcf592a
10 changed files with 145 additions and 55 deletions

View File

@@ -3,11 +3,16 @@ package de.srsoftware.web4rail.tiles;
import java.io.IOException;
import java.util.Map;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train;
public abstract class Bridge extends Tile {
private static final String COUNTERPART = "counterpart";
private static Bridge pendingConnection = null;
protected Bridge counterpart = null;
@@ -32,6 +37,44 @@ public abstract class Bridge extends Tile {
}
protected abstract Connector connector();
@Override
public JSONObject json() {
JSONObject json = super.json();
if (isSet(counterpart)) json.put(COUNTERPART, counterpart.id().toString());
return json;
}
@Override
protected Tile load(JSONObject json) throws IOException {
if (json.has(COUNTERPART)) {
new Thread() {
@Override
public void run() {
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
counterpart = (Bridge) plan.get(Id.from(json, COUNTERPART), false);
}
}.start();
}
return super.load(json);
}
public Tile set(Train train) {
super.set(train);
if (isSet(counterpart) && counterpart.train != train) counterpart.set(train);
return this;
}
@Override
public Tile setRoute(Route route) {
super.setRoute(route);
if (isSet(counterpart) && counterpart.route != route) counterpart.setRoute(route);
return this;
}
@Override
public Window propMenu() {