|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|