Browse Source

implemented altering name of train

lookup-tables
Stephan Richter 5 years ago
parent
commit
ce7d141824
  1. 29
      src/main/java/de/srsoftware/web4rail/moving/Train.java

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

@ -117,9 +117,7 @@ public class Train implements Constants {
case ACTION_PROPS: case ACTION_PROPS:
return manager(); return manager();
case ACTION_ADD: case ACTION_ADD:
Locomotive loco = (Locomotive) Locomotive.get(params.get(Train.LOCO_ID)); return create(params);
if (loco == null) return t("unknown locomotive: {}",params.get(ID));
return new Train(loco);
} }
return t("No train id passed!"); return t("No train id passed!");
} }
@ -141,6 +139,19 @@ public class Train implements Constants {
return t("Unknown action: {}",params.get(ACTION)); return t("Unknown action: {}",params.get(ACTION));
} }
private static Object create(HashMap<String, String> params) {
Locomotive loco = (Locomotive) Locomotive.get(params.get(Train.LOCO_ID));
if (loco == null) return t("unknown locomotive: {}",params.get(ID));
Train train = new Train(loco);
if (params.containsKey(NAME)) train.name(params.get(NAME));
return train;
}
private Train name(String newName) {
this.name = newName;
return this;
}
public void add(Car car) { public void add(Car car) {
if (car == null) return; if (car == null) return;
if (car instanceof Locomotive) { if (car instanceof Locomotive) {
@ -178,6 +189,7 @@ public class Train implements Constants {
if (route != null) json.put(ROUTE, route.id()); if (route != null) json.put(ROUTE, route.id());
if (direction != null) json.put(DIRECTION, direction); if (direction != null) json.put(DIRECTION, direction);
json.put(PUSH_PULL, pushPull); json.put(PUSH_PULL, pushPull);
if (name != null)json.put(NAME, name);
Vector<String> locoIds = new Vector<String>(); Vector<String> locoIds = new Vector<String>();
for (Locomotive loco : locos) locoIds.add(loco.id()); for (Locomotive loco : locos) locoIds.add(loco.id());
json.put(LOCOS, locoIds); json.put(LOCOS, locoIds);
@ -220,8 +232,9 @@ public class Train implements Constants {
private void load(JSONObject json) { private void load(JSONObject json) {
pushPull = json.getBoolean(PUSH_PULL); pushPull = json.getBoolean(PUSH_PULL);
for (Object id : json.getJSONArray(LOCOS)) add((Locomotive) Car.get((String)id)); if (json.has(NAME)) name = json.getString(NAME);
for (Object id : json.getJSONArray(CARS)) add(Car.get((String)id)); for (Object id : json.getJSONArray(CARS)) add(Car.get((String)id));
for (Object id : json.getJSONArray(LOCOS)) add((Locomotive) Car.get((String)id));
} }
public static Object manager() { public static Object manager() {
@ -268,12 +281,13 @@ public class Train implements Constants {
Window window = new Window("train-properties",t("Properties of {}",getClass().getSimpleName())); Window window = new Window("train-properties",t("Properties of {}",getClass().getSimpleName()));
Form form = new Form(); Form form = new Form();
Fieldset fieldset = new Fieldset(t("Train properties"));
new Input(ACTION,ACTION_UPDATE).hideIn(form); new Input(ACTION,ACTION_UPDATE).hideIn(form);
new Input(REALM,REALM_TRAIN).hideIn(form); new Input(REALM,REALM_TRAIN).hideIn(form);
new Input(ID,id).hideIn(form); new Input(ID,id).hideIn(form);
new Input(NAME,name()).addTo(fieldset);
new Checkbox(PUSH_PULL, t("Push-pull train"), pushPull).addTo(form); new Checkbox(PUSH_PULL, t("Push-pull train"), pushPull).addTo(fieldset);
new Button(t("save")).addTo(form).addTo(window); new Button(t("save")).addTo(fieldset).addTo(form).addTo(window);
Tag list = new Tag("ul"); Tag list = new Tag("ul");
if (!locos.isEmpty()) { if (!locos.isEmpty()) {
@ -369,6 +383,7 @@ public class Train implements Constants {
public Train update(HashMap<String, String> params) { public Train update(HashMap<String, String> params) {
LOG.debug("update({})",params); LOG.debug("update({})",params);
pushPull = params.containsKey(PUSH_PULL) && params.get(PUSH_PULL).equals("on"); pushPull = params.containsKey(PUSH_PULL) && params.get(PUSH_PULL).equals("on");
if (params.containsKey(NAME)) name = params.get(NAME);
return this; return this;
} }
} }

Loading…
Cancel
Save