Browse Source

added contacts and signals

lookup-tables
Stephan Richter 5 years ago
parent
commit
a8156d0626
  1. 17
      resources/css/style.css
  2. 4
      resources/svg/ContactH.svg
  3. 4
      resources/svg/ContactV.svg
  4. 7
      resources/svg/SignalE.svg
  5. 7
      resources/svg/SignalN.svg
  6. 7
      resources/svg/SignalS.svg
  7. 7
      resources/svg/SignalW.svg
  8. 2
      resources/svg/StraightV.svg
  9. 12
      src/main/java/de/srsoftware/web4rail/Plan.java
  10. 2
      src/main/java/de/srsoftware/web4rail/tiles/Contact.java
  11. 20
      src/main/java/de/srsoftware/web4rail/tiles/ContactH.java
  12. 21
      src/main/java/de/srsoftware/web4rail/tiles/ContactV.java
  13. 3
      src/main/java/de/srsoftware/web4rail/tiles/Shadow.java
  14. 9
      src/main/java/de/srsoftware/web4rail/tiles/Signal.java
  15. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalE.java
  16. 21
      src/main/java/de/srsoftware/web4rail/tiles/SignalN.java
  17. 21
      src/main/java/de/srsoftware/web4rail/tiles/SignalS.java
  18. 21
      src/main/java/de/srsoftware/web4rail/tiles/SignalV.java
  19. 20
      src/main/java/de/srsoftware/web4rail/tiles/SignalW.java
  20. 5
      src/main/java/de/srsoftware/web4rail/tiles/Tile.java

17
resources/css/style.css

@ -30,6 +30,8 @@ body{ @@ -30,6 +30,8 @@ body{
height: 60px !important;
}
svg circle,
svg line,
svg polygon,
svg rect{
fill:#617de4;
@ -40,10 +42,15 @@ svg rect{ @@ -40,10 +42,15 @@ svg rect{
svg text{
font-size: 50px;
}
svg .block{
fill: #ffffff;
}
svg circle{
fill: gray;
}
.menu{
position: fixed;
width: 100%;
@ -125,4 +132,12 @@ h2{ @@ -125,4 +132,12 @@ h2{
#Eraser polygon{
stroke: red;
}
}
.sig_a{
fill: red;
}
.sig_b{
fill: black;
}

4
resources/svg/ContactH.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg width="%width%" height="100" viewbox="0 0 100 100">
<rect x="0" y="35" width="100" height="30" />
<circle cx="50" cy="50" r="25" />
</svg>

After

Width:  |  Height:  |  Size: 145 B

4
resources/svg/ContactV.svg

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<svg width="100" height="" viewbox="0 0 100 100">
<rect x="35" y="0" width="30" height="100" />
<circle cx="50" cy="50" r="25" />
</svg>

After

Width:  |  Height:  |  Size: 138 B

7
resources/svg/SignalE.svg

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
<svg width="%width%" height="100" viewbox="0 0 100 100">
<rect x="0" y="35" width="100" height="30" />
<rect class="sig_a" x="5" y="5" height="20" width="20" />
<rect class="sig_B" x="25" y="5" height="20" width="20" />
<line x1="45" y1="15" x2="70" y2="15" />
<line x1="70" y1="10" x2="70" y2="20" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

7
resources/svg/SignalN.svg

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
<svg width="100" height="" viewbox="0 0 100 100">
<rect x="35" y="0" width="30" height="100" />
<rect class="sig_a" x="5" y="75" height="20" width="20" />
<rect class="sig_B" x="5" y="55" height="20" width="20" />
<line x1="15" y1="30" x2="15" y2="55" />
<line x1="10" y1="30" x2="20" y2="30" />
</svg>

After

Width:  |  Height:  |  Size: 307 B

7
resources/svg/SignalS.svg

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
<svg width="100" height="" viewbox="0 0 100 100">
<rect x="35" y="0" width="30" height="100" />
<rect class="sig_a" x="75" y="5" height="20" width="20" />
<rect class="sig_B" x="75" y="25" height="20" width="20" />
<line x1="85" y1="45" x2="85" y2="70" />
<line x1="80" y1="70" x2="90" y2="70" />
</svg>

After

Width:  |  Height:  |  Size: 308 B

7
resources/svg/SignalW.svg

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
<svg width="%width%" height="100" viewbox="0 0 100 100">
<rect x="0" y="35" width="100" height="30" />
<rect class="sig_a" x="75" y="75" height="20" width="20" />
<rect class="sig_B" x="55" y="75" height="20" width="20" />
<line x1="30" y1="85" x2="55" y2="85" />
<line x1="30" y1="80" x2="30" y2="90" />
</svg>

After

Width:  |  Height:  |  Size: 316 B

2
resources/svg/StraightV.svg

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
<svg width="100" height="" viewbox="0 0 100 100">
<svg width="100" height="" viewbox="0 0 100 %height%">
<rect x="35" y="0" width="30" height="%height%" />
</svg>

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 114 B

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

@ -23,6 +23,8 @@ import de.srsoftware.tools.Tag; @@ -23,6 +23,8 @@ import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.tiles.Block;
import de.srsoftware.web4rail.tiles.BlockH;
import de.srsoftware.web4rail.tiles.BlockV;
import de.srsoftware.web4rail.tiles.ContactH;
import de.srsoftware.web4rail.tiles.ContactV;
import de.srsoftware.web4rail.tiles.CrossH;
import de.srsoftware.web4rail.tiles.CrossV;
import de.srsoftware.web4rail.tiles.DiagES;
@ -35,6 +37,10 @@ import de.srsoftware.web4rail.tiles.EndS; @@ -35,6 +37,10 @@ import de.srsoftware.web4rail.tiles.EndS;
import de.srsoftware.web4rail.tiles.EndW;
import de.srsoftware.web4rail.tiles.Eraser;
import de.srsoftware.web4rail.tiles.Shadow;
import de.srsoftware.web4rail.tiles.SignalE;
import de.srsoftware.web4rail.tiles.SignalN;
import de.srsoftware.web4rail.tiles.SignalS;
import de.srsoftware.web4rail.tiles.SignalW;
import de.srsoftware.web4rail.tiles.StraightH;
import de.srsoftware.web4rail.tiles.StraightV;
import de.srsoftware.web4rail.tiles.Tile;
@ -311,6 +317,12 @@ public class Plan { @@ -311,6 +317,12 @@ public class Plan {
StringBuffer tiles = new StringBuffer();
tiles.append(new StraightH().tag(null));
tiles.append(new StraightV().tag(null));
tiles.append(new ContactH().tag(null));
tiles.append(new ContactV().tag(null));
tiles.append(new SignalW().tag(null));
tiles.append(new SignalE().tag(null));
tiles.append(new SignalS().tag(null));
tiles.append(new SignalN().tag(null));
tiles.append(new BlockH().tag(null));
tiles.append(new BlockV().tag(null));
tiles.append(new DiagES().tag(null));

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

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
package de.srsoftware.web4rail.tiles;
public class Contact {
public abstract class Contact extends Tile{
}

20
src/main/java/de/srsoftware/web4rail/tiles/ContactH.java

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class ContactH extends Contact {
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.WEST:
return List.of(new Connector(x+1,y,from));
case Plan.EAST:
return List.of(new Connector(x-1,y,from));
}
return new Vector<>();
}
}

21
src/main/java/de/srsoftware/web4rail/tiles/ContactV.java

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class ContactV extends Contact {
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x,y+1,from));
case Plan.SOUTH:
return List.of(new Connector(x,y-1,from));
}
return new Vector<>();
}
}

3
src/main/java/de/srsoftware/web4rail/tiles/Shadow.java

@ -15,8 +15,9 @@ public class Shadow extends Tile{ @@ -15,8 +15,9 @@ public class Shadow extends Tile{
return super.connections(from);
}
public Shadow(Tile overlay) {
public Shadow(Tile overlay) {
this.overlay = overlay;
overlay.addShadow(this);
}
public Tile overlay() {

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

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
package de.srsoftware.web4rail.tiles;
public abstract class Signal extends Tile{
public Signal() {
super();
classes.add("signal");
}
}

20
src/main/java/de/srsoftware/web4rail/tiles/SignalE.java

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalE extends Signal{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.WEST:
return List.of(new Connector(x+1,y,from));
case Plan.EAST:
return List.of(new Connector(x-1,y,from));
}
return new Vector<>();
}
}

21
src/main/java/de/srsoftware/web4rail/tiles/SignalN.java

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalN extends Signal {
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x,y+1,from));
case Plan.SOUTH:
return List.of(new Connector(x,y-1,from));
}
return new Vector<>();
}
}

21
src/main/java/de/srsoftware/web4rail/tiles/SignalS.java

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalS extends Signal{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x,y+1,from));
case Plan.SOUTH:
return List.of(new Connector(x,y-1,from));
}
return new Vector<>();
}
}

21
src/main/java/de/srsoftware/web4rail/tiles/SignalV.java

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalV extends Signal {
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.NORTH:
return List.of(new Connector(x,y+1,from));
case Plan.SOUTH:
return List.of(new Connector(x,y-1,from));
}
return new Vector<>();
}
}

20
src/main/java/de/srsoftware/web4rail/tiles/SignalW.java

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
package de.srsoftware.web4rail.tiles;
import java.util.List;
import java.util.Vector;
import de.srsoftware.web4rail.Connector;
import de.srsoftware.web4rail.Plan;
public class SignalW extends Signal{
@Override
public List<Connector> connections(String from) {
switch (from) {
case Plan.WEST:
return List.of(new Connector(x+1,y,from));
case Plan.EAST:
return List.of(new Connector(x-1,y,from));
}
return new Vector<>();
}
}

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

@ -25,6 +25,7 @@ public abstract class Tile { @@ -25,6 +25,7 @@ public abstract class Tile {
protected int x = -1,y = -1;
protected HashSet<String> classes = new HashSet<String>();
protected HashSet<Shadow> shadows = new HashSet<Shadow>();
protected static Logger LOG = LoggerFactory.getLogger(Tile.class);
public Tile() {
@ -148,4 +149,8 @@ public abstract class Tile { @@ -148,4 +149,8 @@ public abstract class Tile {
LOG.debug("{}.update({})",getClass().getSimpleName(),params);
return this;
}
public void addShadow(Shadow shadow) {
shadows.add(shadow);
}
}

Loading…
Cancel
Save