implemented splitting of trains and parking in blocks
This commit is contained in:
@@ -64,6 +64,7 @@ public abstract class Action extends BaseClass {
|
||||
SetSpeed.class,
|
||||
SetTurnout.class,
|
||||
ShowText.class,
|
||||
SplitTrain.class,
|
||||
StartStopAuto.class,
|
||||
StopTrain.class,
|
||||
SwitchFunction.class,
|
||||
|
||||
60
src/main/java/de/srsoftware/web4rail/actions/SplitTrain.java
Normal file
60
src/main/java/de/srsoftware/web4rail/actions/SplitTrain.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package de.srsoftware.web4rail.actions;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import de.srsoftware.tools.Tag;
|
||||
import de.srsoftware.web4rail.BaseClass;
|
||||
import de.srsoftware.web4rail.Window;
|
||||
import de.srsoftware.web4rail.moving.Train;
|
||||
import de.srsoftware.web4rail.tags.Fieldset;
|
||||
import de.srsoftware.web4rail.tags.Input;
|
||||
|
||||
public class SplitTrain extends Action {
|
||||
|
||||
private static final String POSITION = "position";
|
||||
private int position = 1;
|
||||
|
||||
public SplitTrain(BaseClass parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean fire(Context context) {
|
||||
Train train = context.train();
|
||||
if (isNull(train)) return false;
|
||||
return train.splitAfter(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject json() {
|
||||
JSONObject json = super.json();
|
||||
json.put(POSITION, position);
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Action load(JSONObject json) {
|
||||
if (json.has(POSITION)) position = json.getInt(POSITION);
|
||||
return super.load(json);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return t("Split train behind {} cars",position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
|
||||
formInputs.add(t("Split behind"),new Input(POSITION, position).numeric().addTo(new Tag("span")).content(t(" cars")));
|
||||
return super.properties(preForm, formInputs, postForm);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object update(HashMap<String, String> params) {
|
||||
if (params.containsKey(POSITION)) position = Integer.parseInt(params.get(POSITION));
|
||||
return super.update(params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user