Browse Source

implemented manual coupling/decoupling of trains

lookup-tables
Stephan Richter 5 years ago
parent
commit
8f52c79798
  1. 4
      pom.xml
  2. 5
      resources/translations/Application.de.translation
  3. 1
      src/main/java/de/srsoftware/web4rail/Application.java
  4. 4
      src/main/java/de/srsoftware/web4rail/BaseClass.java
  5. 3
      src/main/java/de/srsoftware/web4rail/Connector.java
  6. 1
      src/main/java/de/srsoftware/web4rail/Constants.java
  7. 1
      src/main/java/de/srsoftware/web4rail/ControlUnit.java
  8. 3
      src/main/java/de/srsoftware/web4rail/Device.java
  9. 2
      src/main/java/de/srsoftware/web4rail/Page.java
  10. 3
      src/main/java/de/srsoftware/web4rail/PathFinder.java
  11. 3
      src/main/java/de/srsoftware/web4rail/Plan.java
  12. 3
      src/main/java/de/srsoftware/web4rail/Protocol.java
  13. 3
      src/main/java/de/srsoftware/web4rail/Range.java
  14. 3
      src/main/java/de/srsoftware/web4rail/Route.java
  15. 2
      src/main/java/de/srsoftware/web4rail/actions/Action.java
  16. 2
      src/main/java/de/srsoftware/web4rail/actions/ActionList.java
  17. 2
      src/main/java/de/srsoftware/web4rail/actions/AddDestination.java
  18. 2
      src/main/java/de/srsoftware/web4rail/actions/AddRemoveTag.java
  19. 2
      src/main/java/de/srsoftware/web4rail/actions/AlterDirection.java
  20. 2
      src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java
  21. 4
      src/main/java/de/srsoftware/web4rail/actions/CoupleTrain.java
  22. 2
      src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java
  23. 2
      src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java
  24. 2
      src/main/java/de/srsoftware/web4rail/actions/DisableEnableBlock.java
  25. 2
      src/main/java/de/srsoftware/web4rail/actions/EngageDecoupler.java
  26. 2
      src/main/java/de/srsoftware/web4rail/actions/Loop.java
  27. 2
      src/main/java/de/srsoftware/web4rail/actions/SendCommand.java
  28. 2
      src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java
  29. 2
      src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java
  30. 2
      src/main/java/de/srsoftware/web4rail/actions/SetPower.java
  31. 2
      src/main/java/de/srsoftware/web4rail/actions/SetRelay.java
  32. 2
      src/main/java/de/srsoftware/web4rail/actions/SetSignal.java
  33. 2
      src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java
  34. 2
      src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java
  35. 2
      src/main/java/de/srsoftware/web4rail/actions/SplitTrain.java
  36. 2
      src/main/java/de/srsoftware/web4rail/actions/StartStopAuto.java
  37. 2
      src/main/java/de/srsoftware/web4rail/actions/SwitchFunction.java
  38. 2
      src/main/java/de/srsoftware/web4rail/actions/TextAction.java
  39. 2
      src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java
  40. 2
      src/main/java/de/srsoftware/web4rail/actions/WaitForContact.java
  41. 2
      src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java
  42. 2
      src/main/java/de/srsoftware/web4rail/conditions/CarInTrain.java
  43. 2
      src/main/java/de/srsoftware/web4rail/conditions/CarOrientation.java
  44. 2
      src/main/java/de/srsoftware/web4rail/conditions/Condition.java
  45. 2
      src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java
  46. 2
      src/main/java/de/srsoftware/web4rail/conditions/RouteEndBlock.java
  47. 2
      src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java
  48. 2
      src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java
  49. 2
      src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java
  50. 2
      src/main/java/de/srsoftware/web4rail/conditions/TrainSpeed.java
  51. 2
      src/main/java/de/srsoftware/web4rail/conditions/TrainWasInBlock.java
  52. 10
      src/main/java/de/srsoftware/web4rail/moving/Car.java
  53. 2
      src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
  54. 89
      src/main/java/de/srsoftware/web4rail/moving/Train.java
  55. 5
      src/main/java/de/srsoftware/web4rail/tags/Window.java
  56. 15
      src/main/java/de/srsoftware/web4rail/tiles/Block.java
  57. 2
      src/main/java/de/srsoftware/web4rail/tiles/Bridge.java
  58. 2
      src/main/java/de/srsoftware/web4rail/tiles/Contact.java
  59. 2
      src/main/java/de/srsoftware/web4rail/tiles/Decoupler.java
  60. 2
      src/main/java/de/srsoftware/web4rail/tiles/Relay.java
  61. 2
      src/main/java/de/srsoftware/web4rail/tiles/Signal.java
  62. 2
      src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java
  63. 2
      src/main/java/de/srsoftware/web4rail/tiles/TextDisplay.java
  64. 2
      src/main/java/de/srsoftware/web4rail/tiles/Tile.java
  65. 2
      src/main/java/de/srsoftware/web4rail/tiles/Turnout.java
  66. 2
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java
  67. 2
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java

4
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.3.28</version> <version>1.3.29</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>
@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>de.srsoftware</groupId> <groupId>de.srsoftware</groupId>
<artifactId>tools</artifactId> <artifactId>tools</artifactId>
<version>1.1.11</version> <version>1.1.12</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>

5
resources/translations/Application.de.translation

@ -57,6 +57,7 @@ BrakeStop : Bremsvorgang abschließen
Brake time¹, forward : Bremszeit¹, vorwärts Brake time¹, forward : Bremszeit¹, vorwärts
Brake time¹, reverse : Bremszeit¹, rückwärts Brake time¹, reverse : Bremszeit¹, rückwärts
Brake time table : Bremszeit-Tabelle Brake time table : Bremszeit-Tabelle
Car : Fahrzeug
CarInTrain : Fahrzeug im Zug CarInTrain : Fahrzeug im Zug
Car manager : Waggon-Verwaltung Car manager : Waggon-Verwaltung
Car of train : Fahrzeug des Zuges Car of train : Fahrzeug des Zuges
@ -91,7 +92,7 @@ Control : Steuerung
Control unit : Zentrale Control unit : Zentrale
copy : kopieren copy : kopieren
Counterpart : Gegenstück Counterpart : Gegenstück
Couple : kupple couple : kuppeln
Couple first parked train : ersten geparkten Zug kuppeln Couple first parked train : ersten geparkten Zug kuppeln
Couple last parked train : letzten geparkten Zug kuppeln Couple last parked train : letzten geparkten Zug kuppeln
CoupleTrain : Zug kuppeln CoupleTrain : Zug kuppeln
@ -102,6 +103,7 @@ Current orientation : aktuelle Fahrtrichtung
Current velocity\: {} {} : Aktuelle Geschwindigkeit: {} {} Current velocity\: {} {} : Aktuelle Geschwindigkeit: {} {}
custom fields : benutzerdefinierte Felder custom fields : benutzerdefinierte Felder
Decoder address : Decoder-Adresse Decoder address : Decoder-Adresse
decouple : Abkuppeln
decoupler : decoupler decoupler : decoupler
Decoupler : Entkuppler Decoupler : Entkuppler
DelayedAction : verzögerte Aktion DelayedAction : verzögerte Aktion
@ -216,6 +218,7 @@ Operating System : Betriebssystem
or : oder or : oder
OrCondition : Oder-Bedingung OrCondition : Oder-Bedingung
other train properties : andere Zug-Eigenschaften other train properties : andere Zug-Eigenschaften
other trains in {} : andere Züge in {}
Origin and destination : Start und Ziel Origin and destination : Start und Ziel
Origin\: {} to {} : Start: {} nach {} Origin\: {} to {} : Start: {} nach {}
parked trains : abgestellte Züge parked trains : abgestellte Züge

1
src/main/java/de/srsoftware/web4rail/Application.java

@ -30,6 +30,7 @@ import de.srsoftware.web4rail.conditions.Condition;
import de.srsoftware.web4rail.moving.Car; import de.srsoftware.web4rail.moving.Car;
import de.srsoftware.web4rail.moving.Locomotive; import de.srsoftware.web4rail.moving.Locomotive;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
/** /**

4
src/main/java/de/srsoftware/web4rail/BaseClass.java

@ -30,10 +30,14 @@ import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.TextArea; import de.srsoftware.web4rail.tags.TextArea;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;
/**
* @author Stephan Richter, SRSoftware 20202021
*/
public abstract class BaseClass implements Constants{ public abstract class BaseClass implements Constants{
protected static Plan plan; // the track layout in use protected static Plan plan; // the track layout in use
public static final Random random = new Random(); public static final Random random = new Random();

3
src/main/java/de/srsoftware/web4rail/Connector.java

@ -1,5 +1,8 @@
package de.srsoftware.web4rail; package de.srsoftware.web4rail;
/**
* @author Stephan Richter, SRSoftware 20202021
*/
public class Connector { public class Connector {
public Plan.Direction from; public Plan.Direction from;

1
src/main/java/de/srsoftware/web4rail/Constants.java

@ -17,6 +17,7 @@ public interface Constants {
public static final String ACTION_AUTO = "auto"; public static final String ACTION_AUTO = "auto";
public static final String ACTION_CLICK = "click"; public static final String ACTION_CLICK = "click";
public static final String ACTION_CONNECT = "connect"; public static final String ACTION_CONNECT = "connect";
public static final String ACTION_DECOUPLE = "decouple";
public static final String ACTION_DROP = "drop"; public static final String ACTION_DROP = "drop";
public static final String ACTION_EMERGENCY = "emergency"; public static final String ACTION_EMERGENCY = "emergency";
public static final String ACTION_FASTER10 = "faster10"; public static final String ACTION_FASTER10 = "faster10";

1
src/main/java/de/srsoftware/web4rail/ControlUnit.java

@ -22,6 +22,7 @@ import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Window;
/** /**
* abstraction of a SRCP daemon (control unit) * abstraction of a SRCP daemon (control unit)

3
src/main/java/de/srsoftware/web4rail/Device.java

@ -2,6 +2,9 @@ package de.srsoftware.web4rail;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
/**
* @author Stephan Richter, SRSoftware 20202021
*/
public interface Device { public interface Device {
public static final String ADDRESS = "address"; public static final String ADDRESS = "address";
public static final String PROTOCOL = "proto"; public static final String PROTOCOL = "proto";

2
src/main/java/de/srsoftware/web4rail/Page.java

@ -7,7 +7,7 @@ import de.srsoftware.tools.Tag;
/** /**
* *
* helper class to create html pages * helper class to create html pages
* @author Stephan Richter, SRSoftware * @author Stephan Richter, SRSoftware, 20202021
* *
*/ */
public class Page { public class Page {

3
src/main/java/de/srsoftware/web4rail/PathFinder.java

@ -13,6 +13,9 @@ import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
/**
* @author Stephan Richter, SRSoftware 2020-2021
*/
public class PathFinder extends BaseClass{ public class PathFinder extends BaseClass{
public static final Logger LOG = LoggerFactory.getLogger(PathFinder.class); public static final Logger LOG = LoggerFactory.getLogger(PathFinder.class);

3
src/main/java/de/srsoftware/web4rail/Plan.java

@ -35,6 +35,7 @@ import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.BlockContact; import de.srsoftware.web4rail.tiles.BlockContact;
import de.srsoftware.web4rail.tiles.BlockH; import de.srsoftware.web4rail.tiles.BlockH;
@ -92,7 +93,7 @@ import de.srsoftware.web4rail.tiles.TurnoutRW;
* <li>Routes</li> * <li>Routes</li>
* <li>...</li> * <li>...</li>
* </ul> * </ul>
* @author Stephan Richter, SRSoftware * @author Stephan Richter, SRSoftware, 2020-2021
* *
*/ */
public class Plan extends BaseClass{ public class Plan extends BaseClass{

3
src/main/java/de/srsoftware/web4rail/Protocol.java

@ -1,5 +1,8 @@
package de.srsoftware.web4rail; package de.srsoftware.web4rail;
/**
* @author Stephan Richter, SRSoftware 2020-2021
*/
public enum Protocol{ public enum Protocol{
DCC14(14), DCC14(14),
DCC27(27), DCC27(27),

3
src/main/java/de/srsoftware/web4rail/Range.java

@ -6,7 +6,8 @@ import org.json.JSONObject;
/** /**
* Class for integer ranges (minmax) * Class for integer ranges (minmax)
* @author Stephan Richter * @author Stephan Richter, SRSoftware 2020-2021
*
*/ */
public class Range extends BaseClass{ public class Range extends BaseClass{
private static final String MAX = "max"; private static final String MAX = "max";

3
src/main/java/de/srsoftware/web4rail/Route.java

@ -36,6 +36,7 @@ import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.BlockContact; import de.srsoftware.web4rail.tiles.BlockContact;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
@ -46,7 +47,7 @@ import de.srsoftware.web4rail.tiles.Turnout;
/** /**
* A route is a vector of tiles that leads from one block to another. * A route is a vector of tiles that leads from one block to another.
* *
* @author Stephan Richter, SRSoftware * @author Stephan Richter, SRSoftware 2020-2021
* *
*/ */
public class Route extends BaseClass { public class Route extends BaseClass {

2
src/main/java/de/srsoftware/web4rail/actions/Action.java

@ -14,7 +14,6 @@ import de.keawe.tools.translations.Translation;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
@ -22,6 +21,7 @@ import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.TextArea; import de.srsoftware.web4rail.tags.TextArea;
import de.srsoftware.web4rail.tags.Window;
/** /**
* Base Class for all other actions * Base Class for all other actions

2
src/main/java/de/srsoftware/web4rail/actions/ActionList.java

@ -14,11 +14,11 @@ import org.slf4j.LoggerFactory;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class ActionList extends Action implements Iterable<Action>{ public class ActionList extends Action implements Iterable<Action>{
static final Logger LOG = LoggerFactory.getLogger(ActionList.class); static final Logger LOG = LoggerFactory.getLogger(ActionList.class);

2
src/main/java/de/srsoftware/web4rail/actions/AddDestination.java

@ -11,10 +11,10 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/actions/AddRemoveTag.java

@ -7,10 +7,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
public class AddRemoveTag extends Action{ public class AddRemoveTag extends Action{

2
src/main/java/de/srsoftware/web4rail/actions/AlterDirection.java

@ -8,10 +8,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
public class AlterDirection extends Action{ public class AlterDirection extends Action{

2
src/main/java/de/srsoftware/web4rail/actions/ConditionalAction.java

@ -7,10 +7,10 @@ import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.conditions.Condition; import de.srsoftware.web4rail.conditions.Condition;
import de.srsoftware.web4rail.conditions.ConditionList; import de.srsoftware.web4rail.conditions.ConditionList;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public class ConditionalAction extends ActionList { public class ConditionalAction extends ActionList {

4
src/main/java/de/srsoftware/web4rail/actions/CoupleTrain.java

@ -6,10 +6,10 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
public class CoupleTrain extends Action { public class CoupleTrain extends Action {
@ -29,7 +29,7 @@ public class CoupleTrain extends Action {
if (isNull(train)) return false; if (isNull(train)) return false;
Block block = train.currentBlock(); Block block = train.currentBlock();
if (isNull(block)) return false; if (isNull(block)) return false;
Train parkingTrain = block.parkedTrains(last); Train parkingTrain = block.parkedTrain(last);
if (isNull(parkingTrain)) return false; if (isNull(parkingTrain)) return false;
train.coupleWith(parkingTrain,swap); train.coupleWith(parkingTrain,swap);
return true; return true;

2
src/main/java/de/srsoftware/web4rail/actions/DelayedAction.java

@ -8,9 +8,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class DelayedAction extends ActionList { public class DelayedAction extends ActionList {

2
src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java

@ -8,8 +8,8 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/actions/DisableEnableBlock.java

@ -8,9 +8,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
public class DisableEnableBlock extends Action { public class DisableEnableBlock extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/EngageDecoupler.java

@ -8,8 +8,8 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Decoupler; import de.srsoftware.web4rail.tiles.Decoupler;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/actions/Loop.java

@ -9,10 +9,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
import de.srsoftware.web4rail.tiles.Signal; import de.srsoftware.web4rail.tiles.Signal;

2
src/main/java/de/srsoftware/web4rail/actions/SendCommand.java

@ -9,10 +9,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Command; import de.srsoftware.web4rail.Command;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
public class SendCommand extends Action{ public class SendCommand extends Action{

2
src/main/java/de/srsoftware/web4rail/actions/SetContextTrain.java

@ -7,9 +7,9 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public class SetContextTrain extends Action { public class SetContextTrain extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/SetDisplayText.java

@ -8,9 +8,9 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.TextDisplay; import de.srsoftware.web4rail.tiles.TextDisplay;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/actions/SetPower.java

@ -8,9 +8,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.ControlUnit; import de.srsoftware.web4rail.ControlUnit;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
public class SetPower extends Action{ public class SetPower extends Action{

2
src/main/java/de/srsoftware/web4rail/actions/SetRelay.java

@ -7,9 +7,9 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Relay; import de.srsoftware.web4rail.tiles.Relay;
public class SetRelay extends Action { public class SetRelay extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/SetSignal.java

@ -7,9 +7,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Signal; import de.srsoftware.web4rail.tiles.Signal;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/actions/SetSpeed.java

@ -6,9 +6,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class SetSpeed extends Action{ public class SetSpeed extends Action{

2
src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java

@ -9,9 +9,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Turnout; import de.srsoftware.web4rail.tiles.Turnout;
import de.srsoftware.web4rail.tiles.Turnout.State; import de.srsoftware.web4rail.tiles.Turnout.State;

2
src/main/java/de/srsoftware/web4rail/actions/SplitTrain.java

@ -7,10 +7,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class SplitTrain extends Action { public class SplitTrain extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/StartStopAuto.java

@ -6,9 +6,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public class StartStopAuto extends Action { public class StartStopAuto extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/SwitchFunction.java

@ -7,10 +7,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public class SwitchFunction extends Action { public class SwitchFunction extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/TextAction.java

@ -6,10 +6,10 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Window;
public abstract class TextAction extends Action { public abstract class TextAction extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java

@ -6,8 +6,8 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
public class TriggerContact extends Action { public class TriggerContact extends Action {

2
src/main/java/de/srsoftware/web4rail/actions/WaitForContact.java

@ -9,9 +9,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
import de.srsoftware.web4rail.tiles.Contact.Listener; import de.srsoftware.web4rail.tiles.Contact.Listener;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/conditions/BlockFree.java

@ -8,8 +8,8 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/conditions/CarInTrain.java

@ -6,10 +6,10 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Car; import de.srsoftware.web4rail.moving.Car;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public class CarInTrain extends Condition { public class CarInTrain extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/CarOrientation.java

@ -7,12 +7,12 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Car; import de.srsoftware.web4rail.moving.Car;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
public class CarOrientation extends Condition { public class CarOrientation extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/Condition.java

@ -15,11 +15,11 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.actions.Action; import de.srsoftware.web4rail.actions.Action;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public abstract class Condition extends BaseClass { public abstract class Condition extends BaseClass {
public static final Logger LOG = LoggerFactory.getLogger(Condition.class); public static final Logger LOG = LoggerFactory.getLogger(Condition.class);

2
src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java

@ -10,11 +10,11 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class ConditionList extends Condition implements Iterable<Condition>{ public class ConditionList extends Condition implements Iterable<Condition>{

2
src/main/java/de/srsoftware/web4rail/conditions/RouteEndBlock.java

@ -9,8 +9,8 @@ import org.json.JSONObject;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;

2
src/main/java/de/srsoftware/web4rail/conditions/TrainHasTag.java

@ -5,9 +5,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class TrainHasTag extends Condition { public class TrainHasTag extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/TrainLength.java

@ -6,9 +6,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class TrainLength extends Condition { public class TrainLength extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java

@ -6,9 +6,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public class TrainSelect extends Condition { public class TrainSelect extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/TrainSpeed.java

@ -6,9 +6,9 @@ import java.util.List;
import org.json.JSONObject; import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public class TrainSpeed extends Condition { public class TrainSpeed extends Condition {

2
src/main/java/de/srsoftware/web4rail/conditions/TrainWasInBlock.java

@ -7,10 +7,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
public class TrainWasInBlock extends Condition { public class TrainWasInBlock extends Condition {

10
src/main/java/de/srsoftware/web4rail/moving/Car.java

@ -23,7 +23,6 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
@ -31,7 +30,11 @@ import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
/**
* @author Stephan Richter, SRSoftware 2020-2021 *
*/
public class Car extends BaseClass implements Comparable<Car>{ public class Car extends BaseClass implements Comparable<Car>{
protected static final Logger LOG = LoggerFactory.getLogger(Car.class); protected static final Logger LOG = LoggerFactory.getLogger(Car.class);
@ -73,6 +76,8 @@ public class Car extends BaseClass implements Comparable<Car>{
car.clone(); car.clone();
} else new Car(params.get(Car.NAME)).parent(plan); } else new Car(params.get(Car.NAME)).parent(plan);
return Car.manager(params); return Car.manager(params);
case ACTION_DECOUPLE:
return car.train().decoupleAfter(car);
case ACTION_DROP: case ACTION_DROP:
car.remove(); car.remove();
return Car.manager(params); return Car.manager(params);
@ -282,8 +287,9 @@ public class Car extends BaseClass implements Comparable<Car>{
return train; return train;
} }
public void train(Train train) { public Car train(Train train) {
this.train = train; this.train = train;
return this;
} }
protected Object update(HashMap<String, String> params) { protected Object update(HashMap<String, String> params) {

2
src/main/java/de/srsoftware/web4rail/moving/Locomotive.java

@ -15,7 +15,6 @@ import de.srsoftware.web4rail.Constants;
import de.srsoftware.web4rail.Device; import de.srsoftware.web4rail.Device;
import de.srsoftware.web4rail.Plan; import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Protocol; import de.srsoftware.web4rail.Protocol;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
@ -23,6 +22,7 @@ import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
public class Locomotive extends Car implements Constants,Device{ public class Locomotive extends Car implements Constants,Device{

89
src/main/java/de/srsoftware/web4rail/moving/Train.java

@ -30,7 +30,6 @@ import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Range; import de.srsoftware.web4rail.Range;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
@ -39,10 +38,14 @@ import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.Contact; import de.srsoftware.web4rail.tiles.Contact;
import de.srsoftware.web4rail.tiles.Tile; import de.srsoftware.web4rail.tiles.Tile;
/**
* @author Stephan Richter, SRSoftware 2020-2021 *
*/
public class Train extends BaseClass implements Comparable<Train> { public class Train extends BaseClass implements Comparable<Train> {
private static final Logger LOG = LoggerFactory.getLogger(Train.class); private static final Logger LOG = LoggerFactory.getLogger(Train.class);
@ -138,6 +141,8 @@ public class Train extends BaseClass implements Comparable<Train> {
return train.addCar(params); return train.addCar(params);
case ACTION_AUTO: case ACTION_AUTO:
return train.automatic(); return train.automatic();
case ACTION_CONNECT:
return train.connect(params);
case ACTION_DROP: case ACTION_DROP:
return train.dropCar(params); return train.dropCar(params);
case ACTION_TOGGLE_F1: case ACTION_TOGGLE_F1:
@ -267,21 +272,27 @@ public class Train extends BaseClass implements Comparable<Train> {
private Tag carList() { private Tag carList() {
Tag locoProp = new Tag("li").content(t("Locomotives and cars")+":"); Tag locoProp = new Tag("li").content(t("Locomotives and cars")+":");
Tag carList = new Tag("ul").clazz("carlist"); Table carList = new Table();
carList.addHead(t("Car"),t("Actions"));
boolean first = true;
for (Car car : this.cars) { for (Car car : this.cars) {
Tag li = new Tag("li"); Tag link = car.link(car.name()+(car.stockId.isEmpty() ? "" : " ("+car.stockId+")"));
car.link(car.name()+(car.stockId.isEmpty() ? "" : " ("+car.stockId+")")).addTo(li).content(NBSP); Tag buttons = new Tag("span");
car.button(t("turn within train"),Map.of(ACTION,ACTION_TURN)).addTo(li);
car.button("↑",Map.of(ACTION,ACTION_MOVE)).addTo(li); car.button(t("turn within train"),Map.of(ACTION,ACTION_TURN)).addTo(buttons);
button(t("delete"),Map.of(ACTION,ACTION_DROP,CAR_ID,car.id().toString())).addTo(li); if (!first) {
li.addTo(carList); car.button("↑",Map.of(ACTION,ACTION_MOVE)).addTo(buttons);
car.button(t("decouple"),Map.of(ACTION,ACTION_DECOUPLE)).addTo(buttons);
}
button(t("delete"),Map.of(ACTION,ACTION_DROP,CAR_ID,car.id().toString())).addTo(buttons);
carList.addRow(link,buttons);
first = false;
} }
carList.addTo(locoProp);
List<Locomotive> locos = BaseClass.listElements(Locomotive.class).stream().filter(loco -> isNull(loco.train())).collect(Collectors.toList()); List<Locomotive> locos = BaseClass.listElements(Locomotive.class).stream().filter(loco -> isNull(loco.train())).collect(Collectors.toList());
if (!locos.isEmpty()) { if (!locos.isEmpty()) {
Form addLocoForm = new Form("append-loco-form"); Form addLocoForm = new Form("append-loco-form");
addLocoForm.content(t("add locomotive")+COL);
new Input(REALM, REALM_TRAIN).hideIn(addLocoForm); new Input(REALM, REALM_TRAIN).hideIn(addLocoForm);
new Input(ACTION, ACTION_ADD).hideIn(addLocoForm); new Input(ACTION, ACTION_ADD).hideIn(addLocoForm);
new Input(ID,id).hideIn(addLocoForm); new Input(ID,id).hideIn(addLocoForm);
@ -289,23 +300,35 @@ public class Train extends BaseClass implements Comparable<Train> {
for (Car loco : locos) select.addOption(loco.id(), loco+(loco.stockId.isEmpty()?"":" ("+loco.stockId+")")); for (Car loco : locos) select.addOption(loco.id(), loco+(loco.stockId.isEmpty()?"":" ("+loco.stockId+")"));
select.addTo(addLocoForm); select.addTo(addLocoForm);
new Button(t("add"),addLocoForm).addTo(addLocoForm); new Button(t("add"),addLocoForm).addTo(addLocoForm);
addLocoForm.addTo(new Tag("li")).addTo(carList); carList.addRow(t("add locomotive"),addLocoForm);
} }
List<Car> cars = BaseClass.listElements(Car.class).stream().filter(car -> !(car instanceof Locomotive)).filter(loco -> isNull(loco.train())).collect(Collectors.toList()); List<Car> cars = BaseClass.listElements(Car.class).stream().filter(car -> !(car instanceof Locomotive)).filter(loco -> isNull(loco.train())).collect(Collectors.toList());
if (!cars.isEmpty()) { if (!cars.isEmpty()) {
Form addCarForm = new Form("append-car-form"); Form addCarForm = new Form("append-car-form");
addCarForm.content(t("add car")+COL);
new Input(REALM, REALM_TRAIN).hideIn(addCarForm); new Input(REALM, REALM_TRAIN).hideIn(addCarForm);
new Input(ACTION, ACTION_ADD).hideIn(addCarForm); new Input(ACTION, ACTION_ADD).hideIn(addCarForm);
new Input(ID,id).hideIn(addCarForm); new Input(ID,id).hideIn(addCarForm);
Select select = new Select(CAR_ID); Select select = new Select(CAR_ID);
for (Car car : cars) select.addOption(car.id(), car+(car.stockId.isEmpty()?"":" ("+car.stockId+")")); for (Car car : cars) select.addOption(car.id(), car+(car.stockId.isEmpty()?"":" ("+car.stockId+")"));
select.addTo(addCarForm); select.addTo(addCarForm);
new Button(t("add"),addCarForm).addTo(addCarForm); new Button(t("add"),addCarForm).addTo(addCarForm);
addCarForm.addTo(new Tag("li")).addTo(carList); carList.addRow(t("add car"),addCarForm);
}
if (isSet(currentBlock)) {
Tag ul = new Tag("ul");
if (isSet(currentBlock.train()) && currentBlock.train() != this) currentBlock.train().link().addTo(new Tag("li")).addTo(ul);
for (Train tr : currentBlock.parkedTrains()) {
if (tr == this) continue;
Tag li = new Tag("li").addTo(ul);
tr.link().addTo(li);
button(t("couple"),Map.of(ACTION,ACTION_CONNECT,REALM_TRAIN,tr.id().toString())).addTo(li);
} }
return carList.addTo(locoProp); carList.addRow(t("other trains in {}",currentBlock),ul);
}
return locoProp;
} }
@ -318,13 +341,23 @@ public class Train extends BaseClass implements Comparable<Train> {
return name().compareTo(o.toString()); return name().compareTo(o.toString());
} }
public Window connect(HashMap<String, String> params) {
Train other = BaseClass.get(new Id(params.get(REALM_TRAIN)));
if (isSet(other)) coupleWith(other, false);
return properties();
}
public void coupleWith(Train parkingTrain,boolean swap) { public void coupleWith(Train parkingTrain,boolean swap) {
if (isSet(direction) && isSet(parkingTrain.direction) && parkingTrain.direction != direction) parkingTrain.turn(); if (isSet(direction) && isSet(parkingTrain.direction) && parkingTrain.direction != direction) parkingTrain.turn();
if (swap) { if (swap) {
Vector<Car> dummy = new Vector<Car>(parkingTrain.cars); Vector<Car> dummy = new Vector<Car>();
for (Car car : parkingTrain.cars) dummy.add(car.train(this));
dummy.addAll(cars); dummy.addAll(cars);
cars = dummy; cars = dummy;
} else cars.addAll(parkingTrain.cars); } else {
for (Car car : parkingTrain.cars) cars.add(car.train(this));
}
parkingTrain.remove(); parkingTrain.remove();
} }
@ -344,6 +377,14 @@ public class Train extends BaseClass implements Comparable<Train> {
return currentBlock; return currentBlock;
} }
public Object decoupleAfter(Car car) {
for (int i=0; i<cars.size();i++) {
if (car == cars.get(i) && splitAfter(i)) break;
}
return properties();
}
public Block destination() { public Block destination() {
if (isNull(destination)) { if (isNull(destination)) {
String destId = null; String destId = null;
@ -612,11 +653,7 @@ public class Train extends BaseClass implements Comparable<Train> {
@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 otherTrainProps = new Fieldset(t("other train properties")); Tag propList = new Tag("ul").clazz("proplist");
Tag propList = new Tag("ul").clazz("proplist");
carList().addTo(propList);
if (isSet(currentBlock)) currentBlock.button(currentBlock.toString()).addTo(new Tag("li").content(t("Current location")+COL)).addTo(propList); if (isSet(currentBlock)) currentBlock.button(currentBlock.toString()).addTo(new Tag("li").content(t("Current location")+COL)).addTo(propList);
Tag directionLi = null; Tag directionLi = null;
@ -651,8 +688,8 @@ public class Train extends BaseClass implements Comparable<Train> {
for (Tile tile : trace) new Tag("li").content(tile.toString()).addTo(ul); for (Tile tile : trace) new Tag("li").content(tile.toString()).addTo(ul);
ul.addTo(li).addTo(propList); ul.addTo(li).addTo(propList);
} }
carList().addTo(propList);
propList.addTo(otherTrainProps);
formInputs.add(t("Name"), new Input(NAME,name())); formInputs.add(t("Name"), new Input(NAME,name()));
formInputs.add(t("Shunting"),new Checkbox(SHUNTING, t("train is shunting"), shunting)); formInputs.add(t("Shunting"),new Checkbox(SHUNTING, t("train is shunting"), shunting));
@ -660,7 +697,7 @@ public class Train extends BaseClass implements Comparable<Train> {
formInputs.add(t("Tags"), new Input(TAGS,String.join(", ", tags))); formInputs.add(t("Tags"), new Input(TAGS,String.join(", ", tags)));
if (this.hasLoco()) preForm.add(Locomotive.cockpit(this)); if (this.hasLoco()) preForm.add(Locomotive.cockpit(this));
postForm.add(otherTrainProps); postForm.add(propList.addTo(new Fieldset(t("other train properties")).attr("id", "train-props")));
postForm.add(brakeTimes()); postForm.add(brakeTimes());
postForm.add(blockHistory()); postForm.add(blockHistory());

5
src/main/java/de/srsoftware/web4rail/Window.java → src/main/java/de/srsoftware/web4rail/tags/Window.java

@ -1,7 +1,10 @@
package de.srsoftware.web4rail; package de.srsoftware.web4rail.tags;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
/**
* @author Stephan Richter, SRSoftware 2020-2021 *
*/
public class Window extends Tag{ public class Window extends Tag{
private static final long serialVersionUID = 9035075889261889575L; private static final long serialVersionUID = 9035075889261889575L;

15
src/main/java/de/srsoftware/web4rail/tiles/Block.java

@ -18,7 +18,6 @@ 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.Range; import de.srsoftware.web4rail.Range;
import de.srsoftware.web4rail.Window;
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.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
@ -26,6 +25,7 @@ import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
/** /**
* Base class for all kinds of Blocks * Base class for all kinds of Blocks
@ -298,7 +298,7 @@ public abstract class Block extends StretchableTile{
return super.load(json); return super.load(json);
} }
private Fieldset parkedTrains() { private Fieldset parkedTrainList() {
Fieldset fieldset = new Fieldset(t("parked trains")); Fieldset fieldset = new Fieldset(t("parked trains"));
Tag list = new Tag("ul"); Tag list = new Tag("ul");
for (Train t : parkedTrains) { for (Train t : parkedTrains) {
@ -308,7 +308,11 @@ public abstract class Block extends StretchableTile{
return fieldset; return fieldset;
} }
public Train parkedTrains(boolean last) { public List<Train> parkedTrains(){
return parkedTrains;
}
public Train parkedTrain(boolean last) {
if (parkedTrains.isEmpty()) return null; if (parkedTrains.isEmpty()) return null;
return last ? parkedTrains.lastElement() : parkedTrains.firstElement(); return last ? parkedTrains.lastElement() : parkedTrains.firstElement();
} }
@ -321,7 +325,7 @@ public abstract class Block extends StretchableTile{
formInputs.add(t("Train"),Train.selector(train, null)); formInputs.add(t("Train"),Train.selector(train, null));
postForm.add(contactForm()); postForm.add(contactForm());
postForm.add(waitTimeForm()); postForm.add(waitTimeForm());
if (!parkedTrains.isEmpty()) postForm.add(parkedTrains()); if (!parkedTrains.isEmpty()) postForm.add(parkedTrainList());
return super.properties(preForm, formInputs, postForm); return super.properties(preForm, formInputs, postForm);
} }
@ -346,7 +350,8 @@ public abstract class Block extends StretchableTile{
public void removeChild(BaseClass child) { public void removeChild(BaseClass child) {
super.removeChild(child); super.removeChild(child);
internalContacts.remove(child); internalContacts.remove(child);
parkedTrains.remove(child); if (parkedTrains.remove(child)) plan.place(this);
if (train == child) setTrain(null);
} }
public void removeContact(BlockContact blockContact) { public void removeContact(BlockContact blockContact) {

2
src/main/java/de/srsoftware/web4rail/tiles/Bridge.java

@ -11,9 +11,9 @@ import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Window;
public abstract class Bridge extends Tile { public abstract class Bridge extends Tile {
private static final String COUNTERPART = "counterpart"; private static final String COUNTERPART = "counterpart";

2
src/main/java/de/srsoftware/web4rail/tiles/Contact.java

@ -15,12 +15,12 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Application;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.actions.Action; import de.srsoftware.web4rail.actions.Action;
import de.srsoftware.web4rail.actions.ActionList; import de.srsoftware.web4rail.actions.ActionList;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public class Contact extends Tile{ public class Contact extends Tile{

2
src/main/java/de/srsoftware/web4rail/tiles/Decoupler.java

@ -15,11 +15,11 @@ 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;
import de.srsoftware.web4rail.Protocol; import de.srsoftware.web4rail.Protocol;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public abstract class Decoupler extends Tile implements Device{ public abstract class Decoupler extends Tile implements Device{

2
src/main/java/de/srsoftware/web4rail/tiles/Relay.java

@ -16,11 +16,11 @@ 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;
import de.srsoftware.web4rail.Protocol; import de.srsoftware.web4rail.Protocol;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public class Relay extends Tile implements Device{ public class Relay extends Tile implements Device{
public static final String STATE = "state"; public static final String STATE = "state";

2
src/main/java/de/srsoftware/web4rail/tiles/Signal.java

@ -16,13 +16,13 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Command; import de.srsoftware.web4rail.Command;
import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.Protocol; import de.srsoftware.web4rail.Protocol;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tags.Table;
import de.srsoftware.web4rail.tags.Window;
public abstract class Signal extends Tile { public abstract class Signal extends Tile {
public static final String STATE = "state"; public static final String STATE = "state";

2
src/main/java/de/srsoftware/web4rail/tiles/StretchableTile.java

@ -8,9 +8,9 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public abstract class StretchableTile extends TileWithShadow { public abstract class StretchableTile extends TileWithShadow {
private static final String STRETCH_LENGTH = "stretch"; private static final String STRETCH_LENGTH = "stretch";

2
src/main/java/de/srsoftware/web4rail/tiles/TextDisplay.java

@ -12,10 +12,10 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag; import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass; import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
public class TextDisplay extends StretchableTile { public class TextDisplay extends StretchableTile {
private static final String TEXT = "text"; private static final String TEXT = "text";

2
src/main/java/de/srsoftware/web4rail/tiles/Tile.java

@ -27,12 +27,12 @@ import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Plan.Direction;
import de.srsoftware.web4rail.actions.AlterDirection; import de.srsoftware.web4rail.actions.AlterDirection;
import de.srsoftware.web4rail.Route; import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train; import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Window;
/** /**
* Base class for all tiles * Base class for all tiles

2
src/main/java/de/srsoftware/web4rail/tiles/Turnout.java

@ -15,11 +15,11 @@ 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;
import de.srsoftware.web4rail.Protocol; import de.srsoftware.web4rail.Protocol;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Radio; import de.srsoftware.web4rail.tags.Radio;
import de.srsoftware.web4rail.tags.Select; import de.srsoftware.web4rail.tags.Select;
import de.srsoftware.web4rail.tags.Window;
/** /**
* Base class for Turnouts * Base class for Turnouts

2
src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java

@ -4,9 +4,9 @@ import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public abstract class TurnoutL extends Turnout { public abstract class TurnoutL extends Turnout {

2
src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java

@ -4,9 +4,9 @@ import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input; import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Window;
public abstract class TurnoutR extends Turnout { public abstract class TurnoutR extends Turnout {

Loading…
Cancel
Save