Browse Source

minor gui improvements

lookup-tables
Stephan Richter 5 years ago
parent
commit
8eb2bf62cf
  1. 2
      pom.xml
  2. 6
      src/main/java/de/srsoftware/web4rail/BaseClass.java
  3. 28
      src/main/java/de/srsoftware/web4rail/moving/Car.java
  4. 5
      src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
  5. 1
      src/main/java/de/srsoftware/web4rail/moving/Train.java
  6. 2
      src/main/java/de/srsoftware/web4rail/tiles/Contact.java

2
pom.xml

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId>
<version>1.2.47</version>
<version>1.2.48</version>
<name>Web4Rail</name>
<packaging>jar</packaging>
<description>Java Model Railway Control</description>

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

@ -340,7 +340,11 @@ public abstract class BaseClass implements Constants{ @@ -340,7 +340,11 @@ public abstract class BaseClass implements Constants{
}
public Tag link(String tagClass,Object caption,Map<String,String> additionalProps) {
String json = new JSONObject(props(additionalProps)).toString().replace("\"", "'");
return link(tagClass,caption.toString(),props(additionalProps));
}
public static Tag link(String tagClass,String caption,Map<String,String> props) {
String json = new JSONObject(props).toString().replace("\"", "'");
return new Tag(tagClass).clazz("link").attr("onclick","request("+json+")").content(caption.toString());
}

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

@ -43,6 +43,7 @@ public class Car extends BaseClass implements Comparable<Car>{ @@ -43,6 +43,7 @@ public class Car extends BaseClass implements Comparable<Car>{
private static final String TAGS = "tags";
private static final String MAX_SPEED = "max_speed";
private static final String MAX_SPEED_REVERSE = "max_speed_reverse";
private static final String ORDER = "order";
protected HashSet<String> tags = new HashSet<String>();
private String name;
@ -72,14 +73,14 @@ public class Car extends BaseClass implements Comparable<Car>{ @@ -72,14 +73,14 @@ public class Car extends BaseClass implements Comparable<Car>{
if (isSet(car)) {
car.clone();
} else new Car(params.get(Car.NAME)).parent(plan);
return Car.manager();
return Car.manager(params);
case ACTION_DROP:
car.remove();
return Car.manager();
return Car.manager(params);
case ACTION_MOVE:
return car.moveUp();
case ACTION_PROPS:
return car == null ? Car.manager() : car.properties();
return car == null ? Car.manager(params) : car.properties();
case ACTION_TURN:
return car.turn();
case ACTION_UPDATE:
@ -92,6 +93,7 @@ public class Car extends BaseClass implements Comparable<Car>{ @@ -92,6 +93,7 @@ public class Car extends BaseClass implements Comparable<Car>{
public Car clone() {
Car clone = new Car(name);
clone.maxSpeedForward = maxSpeedForward;
clone.maxSpeedReverse = maxSpeedReverse;
clone.length = length;
clone.tags = new HashSet<String>(tags);
clone.notes = notes;
@ -161,23 +163,33 @@ public class Car extends BaseClass implements Comparable<Car>{ @@ -161,23 +163,33 @@ public class Car extends BaseClass implements Comparable<Car>{
return this;
}
public static Object manager() {
public static Object manager(HashMap<String, String> params) {
Window win = new Window("car-manager", t("Car manager"));
new Tag("h4").content(t("known cars")).addTo(win);
new Tag("p").content(t("Click on a name to edit the entry.")).addTo(win);
Table table = new Table().addHead(t("Stock ID"),t("Name"),t("Max. Speed",speedUnit),t("Length"),t("Train"),t("Tags"),t("Actions"));
String order = params.get(ORDER);
Tag nameLink = link("span", t("Name"), Map.of(REALM,REALM_CAR,ACTION,ACTION_PROPS,ORDER,NAME));
Table table = new Table().addHead(t("Stock ID"),nameLink,t("Max. Speed",speedUnit),t("Length"),t("Train"),t("Tags"),t("Actions"));
List<Car> cars = BaseClass.listElements(Car.class)
.stream()
.filter(car -> !(car instanceof Locomotive))
.sorted((c1,c2)->{
.collect(Collectors.toList());
cars.sort((c1,c2)->{
try {
return Integer.parseInt(c1.stockId)-Integer.parseInt(c2.stockId);
} catch (NumberFormatException nfe) {
return c1.stockId.compareTo(c2.stockId);
}
});
if (isSet(order)) switch (order) {
case NAME:
cars.sort((c1,c2)->c1.name().compareTo(c2.name()));
}
}).collect(Collectors.toList());
for (Car car : cars) {
String maxSpeed = (car.maxSpeedForward == 0 ? "–":""+car.maxSpeedForward)+NBSP;
if (car.maxSpeedReverse != car.maxSpeedForward) maxSpeed += "("+car.maxSpeedReverse+")"+NBSP;
@ -295,7 +307,7 @@ public class Car extends BaseClass implements Comparable<Car>{ @@ -295,7 +307,7 @@ public class Car extends BaseClass implements Comparable<Car>{
return properties();
}
public String turn() {
public Object turn() {
orientation = !orientation;
return t("Reversed {}.",this);
}

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

@ -327,10 +327,11 @@ public class Locomotive extends Car implements Constants,Device{ @@ -327,10 +327,11 @@ public class Locomotive extends Car implements Constants,Device{
return t("Unknown function: {}",f);
}
public String turn() {
public Object turn() {
stop();
super.turn();
return t("Stopped and reversed {}.",this);
plan.stream(t("Stopped and reversed {}.",this));
return properties();
}
@Override

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

@ -286,6 +286,7 @@ public class Train extends BaseClass implements Comparable<Train> { @@ -286,6 +286,7 @@ public class Train extends BaseClass implements Comparable<Train> {
Train train = new Train(loco);
train.parent(plan);
if (params.containsKey(NAME)) train.name(params.get(NAME));
train.register();
return train.properties();
}

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

@ -97,7 +97,7 @@ public class Contact extends Tile{ @@ -97,7 +97,7 @@ public class Contact extends Tile{
}
public Contact addr(int address) {
Contact oldContact = contactsByAddr.remove(addr); // alte ID aus der Map löschen
contactsByAddr.remove(addr); // alte ID aus der Map löschen
addr = address;
if (addr != 0) contactsByAddr.put(addr, this); // neue ID setzen
return this;

Loading…
Cancel
Save