* verbesserte Geschwindigkeitsregelung
* erweiterung der Aktion „Zug in Block bestimmen“ * verbesserungen beim Rangieren
This commit is contained in:
@@ -9,6 +9,7 @@ import org.json.JSONObject;
|
||||
import de.srsoftware.web4rail.BaseClass;
|
||||
import de.srsoftware.web4rail.LoadCallback;
|
||||
import de.srsoftware.web4rail.moving.Train;
|
||||
import de.srsoftware.web4rail.tags.Checkbox;
|
||||
import de.srsoftware.web4rail.tags.Fieldset;
|
||||
import de.srsoftware.web4rail.tags.Window;
|
||||
import de.srsoftware.web4rail.tiles.Block;
|
||||
@@ -16,27 +17,28 @@ import de.srsoftware.web4rail.tiles.Tile;
|
||||
|
||||
public class DetermineTrainInBlock extends Action {
|
||||
|
||||
private static final String PARKED_TRAIN = "parked-train";
|
||||
|
||||
public DetermineTrainInBlock(BaseClass parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
private boolean parked = false;
|
||||
private Block block = null;
|
||||
|
||||
@Override
|
||||
public boolean fire(Context context,Object cause) {
|
||||
if (isNull(block)) return false;
|
||||
Train train = block.occupyingTrain();
|
||||
if (isSet(train)) {
|
||||
context.block(block);
|
||||
context.train(block.occupyingTrain());
|
||||
}
|
||||
return true;
|
||||
if (isNull(block)) return false;
|
||||
Train train = parked ? (block.trains().isEmpty() ? null : block.trains().firstElement()) : block.occupyingTrain();
|
||||
context.train(train);
|
||||
return (isSet(train));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject json() {
|
||||
JSONObject json = super.json();
|
||||
if (isSet(block)) json.put(BLOCK, block.id());
|
||||
if (parked) json.put(PARKED_TRAIN, true);
|
||||
return json;
|
||||
}
|
||||
|
||||
@@ -51,12 +53,14 @@ public class DetermineTrainInBlock extends Action {
|
||||
block = Block.get(blockId);
|
||||
}
|
||||
};
|
||||
if (json.has(PARKED_TRAIN)) parked = json.getBoolean(PARKED_TRAIN);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm,String...errors) {
|
||||
formInputs.add(t("Block")+": "+(isNull(block) ? t("unset") : block),button(t("Select from plan"),Map.of(ACTION,ACTION_UPDATE,ASSIGN,BLOCK)));
|
||||
formInputs.add(t("parked train"),new Checkbox(PARKED_TRAIN, t("first parked train"), parked));
|
||||
return super.properties(preForm, formInputs, postForm,errors);
|
||||
}
|
||||
|
||||
@@ -79,6 +83,7 @@ public class DetermineTrainInBlock extends Action {
|
||||
block = (Block) tile;
|
||||
} else return t("Clicked tile is not a {}!",t("block"));
|
||||
}
|
||||
parked = ("on".equals(params.get(PARKED_TRAIN)));
|
||||
return context().properties();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user