minor gui improvements
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.47</version>
|
<version>1.2.48</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>
|
||||||
|
|||||||
@@ -340,7 +340,11 @@ public abstract class BaseClass implements Constants{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Tag link(String tagClass,Object caption,Map<String,String> additionalProps) {
|
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());
|
return new Tag(tagClass).clazz("link").attr("onclick","request("+json+")").content(caption.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
private static final String TAGS = "tags";
|
private static final String TAGS = "tags";
|
||||||
private static final String MAX_SPEED = "max_speed";
|
private static final String MAX_SPEED = "max_speed";
|
||||||
private static final String MAX_SPEED_REVERSE = "max_speed_reverse";
|
private static final String MAX_SPEED_REVERSE = "max_speed_reverse";
|
||||||
|
private static final String ORDER = "order";
|
||||||
protected HashSet<String> tags = new HashSet<String>();
|
protected HashSet<String> tags = new HashSet<String>();
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
@@ -72,14 +73,14 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
if (isSet(car)) {
|
if (isSet(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();
|
return Car.manager(params);
|
||||||
case ACTION_DROP:
|
case ACTION_DROP:
|
||||||
car.remove();
|
car.remove();
|
||||||
return Car.manager();
|
return Car.manager(params);
|
||||||
case ACTION_MOVE:
|
case ACTION_MOVE:
|
||||||
return car.moveUp();
|
return car.moveUp();
|
||||||
case ACTION_PROPS:
|
case ACTION_PROPS:
|
||||||
return car == null ? Car.manager() : car.properties();
|
return car == null ? Car.manager(params) : car.properties();
|
||||||
case ACTION_TURN:
|
case ACTION_TURN:
|
||||||
return car.turn();
|
return car.turn();
|
||||||
case ACTION_UPDATE:
|
case ACTION_UPDATE:
|
||||||
@@ -92,6 +93,7 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
public Car clone() {
|
public Car clone() {
|
||||||
Car clone = new Car(name);
|
Car clone = new Car(name);
|
||||||
clone.maxSpeedForward = maxSpeedForward;
|
clone.maxSpeedForward = maxSpeedForward;
|
||||||
|
clone.maxSpeedReverse = maxSpeedReverse;
|
||||||
clone.length = length;
|
clone.length = length;
|
||||||
clone.tags = new HashSet<String>(tags);
|
clone.tags = new HashSet<String>(tags);
|
||||||
clone.notes = notes;
|
clone.notes = notes;
|
||||||
@@ -161,23 +163,33 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Object manager() {
|
public static Object manager(HashMap<String, String> params) {
|
||||||
Window win = new Window("car-manager", t("Car manager"));
|
Window win = new Window("car-manager", t("Car manager"));
|
||||||
new Tag("h4").content(t("known cars")).addTo(win);
|
new Tag("h4").content(t("known cars")).addTo(win);
|
||||||
new Tag("p").content(t("Click on a name to edit the entry.")).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)
|
List<Car> cars = BaseClass.listElements(Car.class)
|
||||||
.stream()
|
.stream()
|
||||||
.filter(car -> !(car instanceof Locomotive))
|
.filter(car -> !(car instanceof Locomotive))
|
||||||
.sorted((c1,c2)->{
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
cars.sort((c1,c2)->{
|
||||||
try {
|
try {
|
||||||
return Integer.parseInt(c1.stockId)-Integer.parseInt(c2.stockId);
|
return Integer.parseInt(c1.stockId)-Integer.parseInt(c2.stockId);
|
||||||
} catch (NumberFormatException nfe) {
|
} catch (NumberFormatException nfe) {
|
||||||
return c1.stockId.compareTo(c2.stockId);
|
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) {
|
for (Car car : cars) {
|
||||||
String maxSpeed = (car.maxSpeedForward == 0 ? "–":""+car.maxSpeedForward)+NBSP;
|
String maxSpeed = (car.maxSpeedForward == 0 ? "–":""+car.maxSpeedForward)+NBSP;
|
||||||
if (car.maxSpeedReverse != car.maxSpeedForward) maxSpeed += "("+car.maxSpeedReverse+")"+NBSP;
|
if (car.maxSpeedReverse != car.maxSpeedForward) maxSpeed += "("+car.maxSpeedReverse+")"+NBSP;
|
||||||
@@ -295,7 +307,7 @@ public class Car extends BaseClass implements Comparable<Car>{
|
|||||||
return properties();
|
return properties();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String turn() {
|
public Object turn() {
|
||||||
orientation = !orientation;
|
orientation = !orientation;
|
||||||
return t("Reversed {}.",this);
|
return t("Reversed {}.",this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,10 +327,11 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
return t("Unknown function: {}",f);
|
return t("Unknown function: {}",f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String turn() {
|
public Object turn() {
|
||||||
stop();
|
stop();
|
||||||
super.turn();
|
super.turn();
|
||||||
return t("Stopped and reversed {}.",this);
|
plan.stream(t("Stopped and reversed {}.",this));
|
||||||
|
return properties();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
Train train = new Train(loco);
|
Train train = new Train(loco);
|
||||||
train.parent(plan);
|
train.parent(plan);
|
||||||
if (params.containsKey(NAME)) train.name(params.get(NAME));
|
if (params.containsKey(NAME)) train.name(params.get(NAME));
|
||||||
|
train.register();
|
||||||
return train.properties();
|
return train.properties();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class Contact extends Tile{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Contact addr(int address) {
|
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;
|
addr = address;
|
||||||
if (addr != 0) contactsByAddr.put(addr, this); // neue ID setzen
|
if (addr != 0) contactsByAddr.put(addr, this); // neue ID setzen
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
Reference in New Issue
Block a user