refactoring tile delete method
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>1.2.7</version>
|
<version>1.2.8</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>
|
||||||
|
|||||||
@@ -240,6 +240,7 @@ public class Plan extends BaseClass{
|
|||||||
}
|
}
|
||||||
//if (configJson != null) tile.configure(new JSONObject(configJson));
|
//if (configJson != null) tile.configure(new JSONObject(configJson));
|
||||||
set(x, y, tile);
|
set(x, y, tile);
|
||||||
|
tile.parent(this);
|
||||||
return t("Added {}",tile.getClass().getSimpleName());
|
return t("Added {}",tile.getClass().getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -647,7 +648,7 @@ public class Plan extends BaseClass{
|
|||||||
newRoute.path().stream().filter(Tile::isSet).forEach(tile -> tile.add(newRoute));
|
newRoute.path().stream().filter(Tile::isSet).forEach(tile -> tile.add(newRoute));
|
||||||
Route existingRoute = BaseClass.get(newRoute.id());
|
Route existingRoute = BaseClass.get(newRoute.id());
|
||||||
if (isSet(existingRoute)) newRoute.addPropertiesFrom(existingRoute);
|
if (isSet(existingRoute)) newRoute.addPropertiesFrom(existingRoute);
|
||||||
newRoute.register();
|
newRoute.parent(this).register();
|
||||||
return newRoute;
|
return newRoute;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -655,6 +656,7 @@ public class Plan extends BaseClass{
|
|||||||
protected void removeChild(BaseClass child) {
|
protected void removeChild(BaseClass child) {
|
||||||
if (child instanceof Tile) {
|
if (child instanceof Tile) {
|
||||||
Tile tile = (Tile) child;
|
Tile tile = (Tile) child;
|
||||||
|
stream("remove "+tile.id());
|
||||||
for (int i=1; i<tile.width(); i++) removeTile(tile.x+i, tile.y); // remove shadow tiles
|
for (int i=1; i<tile.width(); i++) removeTile(tile.x+i, tile.y); // remove shadow tiles
|
||||||
for (int i=1; i<tile.height(); i++) removeTile(tile.x, tile.y+i); // remove shadow tiles
|
for (int i=1; i<tile.height(); i++) removeTile(tile.x, tile.y+i); // remove shadow tiles
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -648,9 +648,24 @@ public class Route extends BaseClass implements Comparable<Route>{
|
|||||||
postForm.add(brakeTimes());
|
postForm.add(brakeTimes());
|
||||||
return super.properties(preForm, formInputs, postForm);
|
return super.properties(preForm, formInputs, postForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseClass remove() {
|
||||||
|
super.remove();
|
||||||
|
if (isSet(train)) train.removeChild(this);
|
||||||
|
path.forEach(tile -> tile.removeChild(this));
|
||||||
|
conditions.remove();
|
||||||
|
for (String key : new Vector<String>(triggers.keySet())){
|
||||||
|
ActionList actionList = triggers.remove(key);
|
||||||
|
if (isSet(actionList)) actionList.remove();
|
||||||
|
};
|
||||||
|
setupActions.remove();
|
||||||
|
startActions.remove();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
conditions.remove(child);
|
conditions.remove(child);
|
||||||
contacts.remove(child);
|
contacts.remove(child);
|
||||||
if (child == endBlock) endBlock = null;
|
if (child == endBlock) endBlock = null;
|
||||||
|
|||||||
@@ -193,6 +193,13 @@ public class ActionList extends Action implements Iterable<Action>{
|
|||||||
return super.properties(preForm, formInputs, postForm);
|
return super.properties(preForm, formInputs, postForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseClass remove() {
|
||||||
|
super.remove();
|
||||||
|
while (!actions.isEmpty()) actions.lastElement().remove();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
actions.remove(child);
|
actions.remove(child);
|
||||||
|
|||||||
@@ -90,6 +90,13 @@ public class ConditionList extends Condition implements Iterable<Condition>{
|
|||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseClass remove() {
|
||||||
|
super.remove();
|
||||||
|
while (!conditions.isEmpty()) conditions.lastElement().remove();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean remove(Object condition) {
|
public boolean remove(Object condition) {
|
||||||
return conditions.remove(condition);
|
return conditions.remove(condition);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
public int length;
|
public int length;
|
||||||
protected String stockId = "";
|
protected String stockId = "";
|
||||||
private Train train;
|
private Train train;
|
||||||
protected Plan plan;
|
|
||||||
protected int maxSpeed = 0;
|
protected int maxSpeed = 0;
|
||||||
|
|
||||||
public Car(String name) {
|
public Car(String name) {
|
||||||
@@ -66,8 +65,8 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
switch (params.get(ACTION)) {
|
switch (params.get(ACTION)) {
|
||||||
case ACTION_ADD:
|
case ACTION_ADD:
|
||||||
if (isSet(car)) {
|
if (isSet(car)) {
|
||||||
car.clone().plan(plan);
|
car.clone();
|
||||||
} else new Car(params.get(Car.NAME)).plan(plan);
|
} else new Car(params.get(Car.NAME)).parent(plan);
|
||||||
return Car.manager();
|
return Car.manager();
|
||||||
case ACTION_PROPS:
|
case ACTION_PROPS:
|
||||||
return car == null ? Car.manager() : car.properties();
|
return car == null ? Car.manager() : car.properties();
|
||||||
@@ -85,6 +84,7 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
clone.length = length;
|
clone.length = length;
|
||||||
clone.tags = new HashSet<String>(tags);
|
clone.tags = new HashSet<String>(tags);
|
||||||
clone.notes = notes;
|
clone.notes = notes;
|
||||||
|
clone.parent(parent());
|
||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
String name = json.getString(Car.NAME);
|
String name = json.getString(Car.NAME);
|
||||||
Id id = Id.from(json);
|
Id id = Id.from(json);
|
||||||
Car car = json.has(Locomotive.LOCOMOTIVE) ? new Locomotive(name, id) : new Car(name,id);
|
Car car = json.has(Locomotive.LOCOMOTIVE) ? new Locomotive(name, id) : new Car(name,id);
|
||||||
car.load(json).plan(plan);
|
car.load(json).parent(plan);
|
||||||
|
|
||||||
line = file.readLine();
|
line = file.readLine();
|
||||||
}
|
}
|
||||||
@@ -189,15 +189,6 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Plan plan() {
|
|
||||||
return plan;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Car plan(Plan plan) {
|
|
||||||
this.plan = plan;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
|
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
|
||||||
formInputs.add(t("Name"),new Input(NAME,name));
|
formInputs.add(t("Name"),new Input(NAME,name));
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
Locomotive loco = id == null ? null : Locomotive.get(id);
|
Locomotive loco = id == null ? null : Locomotive.get(id);
|
||||||
switch (params.get(ACTION)) {
|
switch (params.get(ACTION)) {
|
||||||
case ACTION_ADD:
|
case ACTION_ADD:
|
||||||
new Locomotive(params.get(Locomotive.NAME)).plan(plan);
|
new Locomotive(params.get(Locomotive.NAME)).parent(plan);
|
||||||
return Locomotive.manager();
|
return Locomotive.manager();
|
||||||
case ACTION_FASTER10:
|
case ACTION_FASTER10:
|
||||||
return loco.faster(10);
|
return loco.faster(10);
|
||||||
|
|||||||
@@ -78,6 +78,11 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
private Block currentBlock,destination = null;
|
private Block currentBlock,destination = null;
|
||||||
LinkedList<Tile> trace = new LinkedList<Tile>();
|
LinkedList<Tile> trace = new LinkedList<Tile>();
|
||||||
|
|
||||||
|
public int speed = 0;
|
||||||
|
private Autopilot autopilot = null;
|
||||||
|
private Route nextRoute;
|
||||||
|
|
||||||
|
|
||||||
private class Autopilot extends Thread{
|
private class Autopilot extends Thread{
|
||||||
boolean stop = false;
|
boolean stop = false;
|
||||||
int waitTime = 100;
|
int waitTime = 100;
|
||||||
@@ -102,13 +107,6 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int speed = 0;
|
|
||||||
private Autopilot autopilot = null;
|
|
||||||
|
|
||||||
private Plan plan;
|
|
||||||
|
|
||||||
private Route nextRoute;
|
|
||||||
|
|
||||||
public Train(Locomotive loco) {
|
public Train(Locomotive loco) {
|
||||||
this(loco,null);
|
this(loco,null);
|
||||||
@@ -257,7 +255,8 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
private static Object create(HashMap<String, String> params, Plan plan) {
|
private static Object create(HashMap<String, String> params, Plan plan) {
|
||||||
Locomotive loco = (Locomotive) Locomotive.get(params.get(Train.LOCO_ID));
|
Locomotive loco = (Locomotive) Locomotive.get(params.get(Train.LOCO_ID));
|
||||||
if (isNull(loco)) return t("unknown locomotive: {}",params.get(ID));
|
if (isNull(loco)) return t("unknown locomotive: {}",params.get(ID));
|
||||||
Train train = new Train(loco).plan(plan);
|
Train train = new Train(loco);
|
||||||
|
train.parent(plan);
|
||||||
if (params.containsKey(NAME)) train.name(params.get(NAME));
|
if (params.containsKey(NAME)) train.name(params.get(NAME));
|
||||||
return train;
|
return train;
|
||||||
}
|
}
|
||||||
@@ -379,7 +378,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
JSONObject json = new JSONObject(line);
|
JSONObject json = new JSONObject(line);
|
||||||
|
|
||||||
Train train = new Train(null,Id.from(json));
|
Train train = new Train(null,Id.from(json));
|
||||||
train.plan(plan).load(json);
|
train.load(json).parent(plan);
|
||||||
|
|
||||||
line = file.readLine();
|
line = file.readLine();
|
||||||
}
|
}
|
||||||
@@ -497,12 +496,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
this.name = newName;
|
this.name = newName;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Train plan(Plan plan) {
|
|
||||||
this.plan = plan;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
|
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
|
||||||
Fieldset otherTrainProsps = new Fieldset(t("other train properties"));
|
Fieldset otherTrainProsps = new Fieldset(t("other train properties"));
|
||||||
@@ -570,6 +564,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
@Override
|
@Override
|
||||||
public void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
if (child == route) route = null;
|
if (child == route) route = null;
|
||||||
|
if (child == nextRoute) nextRoute = null;
|
||||||
if (child == currentBlock) currentBlock = null;
|
if (child == currentBlock) currentBlock = null;
|
||||||
if (child == destination) destination = null;
|
if (child == destination) destination = null;
|
||||||
cars.remove(child);
|
cars.remove(child);
|
||||||
|
|||||||
@@ -234,11 +234,6 @@ public abstract class Block extends StretchableTile implements Comparable<Block>
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Select selector(Block preselected,Collection<Block> exclude) {
|
public static Select selector(Block preselected,Collection<Block> exclude) {
|
||||||
if (isNull(exclude)) exclude = new Vector<Block>();
|
if (isNull(exclude)) exclude = new Vector<Block>();
|
||||||
Select select = new Select(Block.class.getSimpleName());
|
Select select = new Select(Block.class.getSimpleName());
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public abstract class Bridge extends Tile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
if (child == counterpart) counterpart = null;
|
if (child == counterpart) counterpart = null;
|
||||||
plan.place(this);
|
plan.place(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ public class Contact extends Tile{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
if (child == actions) actions = null;
|
if (child == actions) actions = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,15 +2,9 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
|
|
||||||
public abstract class Cross extends Tile {
|
public abstract class Cross extends Tile {
|
||||||
public abstract Map<Connector,Turnout.State> offsetConnections(Direction from);
|
public abstract Map<Connector,Turnout.State> offsetConnections(Direction from);
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -32,9 +31,4 @@ public class CrossPlus extends Tile{
|
|||||||
public List<Direction> possibleDirections() {
|
public List<Direction> possibleDirections() {
|
||||||
return List.of(Direction.EAST,Direction.WEST,Direction.NORTH,Direction.SOUTH);
|
return List.of(Direction.EAST,Direction.WEST,Direction.NORTH,Direction.SOUTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -22,9 +21,4 @@ public class DiagES extends Tile{
|
|||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -22,9 +21,4 @@ public class DiagNE extends Tile{
|
|||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -21,9 +20,4 @@ public class DiagSW extends Tile{
|
|||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package de.srsoftware.web4rail.tiles;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -23,10 +22,4 @@ public class DiagWN extends Tile{
|
|||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
public class EndE extends Tile{}
|
||||||
|
|
||||||
public class EndE extends Tile{
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,11 +1,3 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
public class EndN extends Tile{}
|
||||||
|
|
||||||
public class EndN extends Tile{
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
public class EndS extends Tile{}
|
||||||
|
|
||||||
public class EndS extends Tile{
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
public class EndW extends Tile{}
|
||||||
|
|
||||||
public class EndW extends Tile{
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
package de.srsoftware.web4rail.tiles;
|
package de.srsoftware.web4rail.tiles;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
public class Eraser extends Tile {}
|
||||||
|
|
||||||
public class Eraser extends Tile {
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -159,12 +159,7 @@ public class Relay extends Tile implements Device{
|
|||||||
return 'P';
|
return 'P';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
}
|
|
||||||
|
|
||||||
public Relay setLabel(boolean state, String tx) {
|
public Relay setLabel(boolean state, String tx) {
|
||||||
if (state) {
|
if (state) {
|
||||||
stateLabelA = tx;
|
stateLabelA = tx;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class Shadow extends Tile{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void removeChild(BaseClass child) {
|
public void removeChild(BaseClass child) {
|
||||||
if (child == overlay) {
|
if (child == overlay) {
|
||||||
overlay = null;
|
overlay = null;
|
||||||
remove();
|
remove();
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import java.util.TreeSet;
|
|||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
|
|
||||||
public abstract class Signal extends Tile implements Comparable<Signal>{
|
public abstract class Signal extends Tile implements Comparable<Signal>{
|
||||||
@@ -38,11 +37,6 @@ public abstract class Signal extends Tile implements Comparable<Signal>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract boolean isAffectedFrom(Direction dir);
|
public abstract boolean isAffectedFrom(Direction dir);
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean state(String state) {
|
public boolean state(String state) {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -29,11 +28,6 @@ public class StraightH extends StretchableTile{
|
|||||||
return List.of(Direction.EAST,Direction.WEST);
|
return List.of(Direction.EAST,Direction.WEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String stretchType() {
|
protected String stretchType() {
|
||||||
return t("Width");
|
return t("Width");
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Connector;
|
import de.srsoftware.web4rail.Connector;
|
||||||
import de.srsoftware.web4rail.Plan.Direction;
|
import de.srsoftware.web4rail.Plan.Direction;
|
||||||
import de.srsoftware.web4rail.tiles.Turnout.State;
|
import de.srsoftware.web4rail.tiles.Turnout.State;
|
||||||
@@ -34,11 +33,6 @@ public class StraightV extends StretchableTile{
|
|||||||
return List.of(Direction.NORTH,Direction.SOUTH);
|
return List.of(Direction.NORTH,Direction.SOUTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String stretchType() {
|
protected String stretchType() {
|
||||||
return t("Height");
|
return t("Height");
|
||||||
|
|||||||
@@ -44,11 +44,6 @@ public class TextDisplay extends StretchableTile {
|
|||||||
formInputs.add(t("Text"),new Input(TEXT, text));
|
formInputs.add(t("Text"),new Input(TEXT, text));
|
||||||
return super.properties(preForm, formInputs, postForm);
|
return super.properties(preForm, formInputs, postForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Select selector(TextDisplay preselected,Collection<TextDisplay> exclude) {
|
public static Select selector(TextDisplay preselected,Collection<TextDisplay> exclude) {
|
||||||
if (isNull(exclude)) exclude = new Vector<TextDisplay>();
|
if (isNull(exclude)) exclude = new Vector<TextDisplay>();
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public abstract class Tile extends BaseClass{
|
|||||||
protected Train train = null;
|
protected Train train = null;
|
||||||
public Integer x = null;
|
public Integer x = null;
|
||||||
public Integer y = null;
|
public Integer y = null;
|
||||||
|
|
||||||
public void add(Route route) {
|
public void add(Route route) {
|
||||||
this.routes.add(route);
|
this.routes.add(route);
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ public abstract class Tile extends BaseClass{
|
|||||||
private static void inflate(String clazz, JSONObject json, Plan plan) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, ClassNotFoundException, IOException {
|
private static void inflate(String clazz, JSONObject json, Plan plan) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, ClassNotFoundException, IOException {
|
||||||
clazz = Tile.class.getName().replace(".Tile", "."+clazz);
|
clazz = Tile.class.getName().replace(".Tile", "."+clazz);
|
||||||
Tile tile = (Tile) Tile.class.getClassLoader().loadClass(clazz).getDeclaredConstructor().newInstance();
|
Tile tile = (Tile) Tile.class.getClassLoader().loadClass(clazz).getDeclaredConstructor().newInstance();
|
||||||
tile.load(json);
|
tile.load(json).parent(plan);
|
||||||
plan.set(tile.x, tile.y, tile);
|
plan.set(tile.x, tile.y, tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,12 +251,6 @@ public abstract class Tile extends BaseClass{
|
|||||||
return super.properties(preForm, formInputs, postForm);
|
return super.properties(preForm, formInputs, postForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaseClass remove() {
|
|
||||||
plan.stream("remove "+id());
|
|
||||||
return super.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String replace(String line, Entry<String, Object> replacement) {
|
private static String replace(String line, Entry<String, Object> replacement) {
|
||||||
String key = replacement.getKey();
|
String key = replacement.getKey();
|
||||||
Object val = replacement.getValue();
|
Object val = replacement.getValue();
|
||||||
@@ -379,6 +373,27 @@ public abstract class Tile extends BaseClass{
|
|||||||
return train;
|
return train;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseClass remove() {
|
||||||
|
super.remove();
|
||||||
|
routes.forEach(route -> {
|
||||||
|
route.remove();
|
||||||
|
});
|
||||||
|
shadows.forEach(shadow -> {
|
||||||
|
shadow.remove();
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeChild(BaseClass child) {
|
||||||
|
routes.remove(child);
|
||||||
|
shadows.remove(child);
|
||||||
|
if (child == train) train = null;
|
||||||
|
if (child == route) route = null;
|
||||||
|
plan.place(this);
|
||||||
|
}
|
||||||
|
|
||||||
public void unlock() {
|
public void unlock() {
|
||||||
route = null;
|
route = null;
|
||||||
train = null;
|
train = null;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import java.util.concurrent.TimeoutException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import de.srsoftware.tools.Tag;
|
import de.srsoftware.tools.Tag;
|
||||||
import de.srsoftware.web4rail.BaseClass;
|
|
||||||
import de.srsoftware.web4rail.Command;
|
import de.srsoftware.web4rail.Command;
|
||||||
import de.srsoftware.web4rail.Command.Reply;
|
import de.srsoftware.web4rail.Command.Reply;
|
||||||
import de.srsoftware.web4rail.Device;
|
import de.srsoftware.web4rail.Device;
|
||||||
@@ -140,11 +139,6 @@ public abstract class Turnout extends Tile implements Device{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void removeChild(BaseClass child) {
|
|
||||||
// this class has no child elements
|
|
||||||
}
|
|
||||||
|
|
||||||
public State state() {
|
public State state() {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user