Browse Source

usability improvements

master
Stephan Richter 4 years ago
parent
commit
b23be0fcdc
  1. 2
      pom.xml
  2. 2
      resources/translations/Application.de.translation
  3. 1
      src/main/java/de/srsoftware/web4rail/BaseClass.java
  4. 2
      src/main/java/de/srsoftware/web4rail/actions/ActionList.java
  5. 3
      src/main/java/de/srsoftware/web4rail/actions/DetermineTrainInBlock.java
  6. 22
      src/main/java/de/srsoftware/web4rail/conditions/TrainWasInBlock.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.5.32</version>
<version>1.5.33</version>
<name>Web4Rail</name>
<packaging>jar</packaging>
<description>Java Model Railway Control</description>

2
resources/translations/Application.de.translation

@ -463,8 +463,10 @@ train has tag "{}" : Zug hat Markierung „{}“ @@ -463,8 +463,10 @@ train has tag "{}" : Zug hat Markierung „{}“
TrainHasTag : Zug hat Markierung
train is a push-pull train : Zug ist ein Wendezug
train is faster than {} {} : Zug ist schneller als {} {}
Train is in "{}" : Zug ist in „{}“
train is longer than {} {} : Zug ist länger als {} {}
train is not a push-pull train : Zug ist kein Wendezug
Train is not in "{}" : Zug ist nicht in „{}“
train is not shunting : Zug rangiert nicht
train is shorter than {} {} : Zug ist kürzer als {} {}
TrainIsShunting : Rangierfahrt

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

@ -377,6 +377,7 @@ public abstract class BaseClass implements Constants{ @@ -377,6 +377,7 @@ public abstract class BaseClass implements Constants{
@SuppressWarnings("unchecked")
public static <T extends BaseClass> T get(Id id) {
if (isNull(id)) return null;
return (T) registry.get(id);
}

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

@ -54,7 +54,7 @@ public class ActionList extends Action implements Iterable<Action>{ @@ -54,7 +54,7 @@ public class ActionList extends Action implements Iterable<Action>{
Action action = Action.create(type,this);
if (action instanceof Action) {
add(action);
return context().properties();
return action.properties();
}
return new Tag("span").content(t("Unknown action type: {}",type)).addTo(actionTypeForm());
}

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

@ -83,13 +83,14 @@ public class DetermineTrainInBlock extends Action { @@ -83,13 +83,14 @@ public class DetermineTrainInBlock extends Action {
@Override
protected Object update(Params params) {
LOG.debug("update: {}",params);
parked = ("on".equals(params.get(PARKED_TRAIN)));
if (params.containsKey(BLOCK)) {
Tile tile = plan.get(new Id(params.getString(BLOCK)), true);
if (tile instanceof Block) {
block = (Block) tile;
return properties();
} else return t("Clicked tile is not a {}!",t("block"));
}
parked = ("on".equals(params.get(PARKED_TRAIN)));
return context().properties();
}
}

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

@ -7,6 +7,7 @@ import org.json.JSONObject; @@ -7,6 +7,7 @@ import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.BaseClass;
import de.srsoftware.web4rail.LoadCallback;
import de.srsoftware.web4rail.Params;
import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Fieldset;
@ -31,7 +32,8 @@ public class TrainWasInBlock extends Condition { @@ -31,7 +32,8 @@ public class TrainWasInBlock extends Condition {
@Override
public boolean fulfilledBy(Context context) {
Train train = context.train();
if (isNull(train)) return false;
if (isNull(train)) return false;
if (count == 0) return (train.currentBlock() == block) != inverted;
return train.lastBlocks(count).contains(block) != inverted;
}
@ -42,8 +44,14 @@ public class TrainWasInBlock extends Condition { @@ -42,8 +44,14 @@ public class TrainWasInBlock extends Condition {
public Condition load(JSONObject json) {
super.load(json);
if (json.has(BLOCK)) block(Block.get(new Id(json.getString(BLOCK))));
if (json.has(COUNT)) count = json.getInt(COUNT);
new LoadCallback() {
@Override
public void afterLoad() {
if (json.has(BLOCK)) block(Block.get(Id.from(json, BLOCK)));
}
};
return this;
}
@ -63,18 +71,22 @@ public class TrainWasInBlock extends Condition { @@ -63,18 +71,22 @@ public class TrainWasInBlock extends Condition {
@Override
public String toString() {
if (block == null) return "["+t("Click here to select block!")+"]";
if (count == 0) return t(inverted ? "Train is not in \"{}\"" : "Train is in \"{}\"", block);
return t(inverted ? "{} not within last {} blocks of train":"{} within last {} blocks of train",block,count);
}
@Override
protected Object update(Params params) {
if (!params.containsKey(BLOCK)) return t("No block id passed to TrainWasInBlock.update()!");
Id bid = new Id(params.getString(BLOCK));
Id bid = Id.from(params, BLOCK);
Tile tile = BaseClass.get(bid);
if (tile instanceof Shadow) tile = ((Shadow)tile).overlay();
if (tile instanceof Block) block = (Block) tile;
if (params.containsKey(COUNT)) count=params.getInt(COUNT);
if (tile instanceof Block) {
block = (Block) tile;
super.update(params);
return properties();
}
return super.update(params);
}
}

Loading…
Cancel
Save