From a7f252de7f91ce5443c2b91ea968511a4c358358 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Wed, 2 Dec 2020 22:30:43 +0100 Subject: [PATCH] updating tiles and conditions --- pom.xml | 2 +- .../java/de/srsoftware/web4rail/Route.java | 89 ++++++------------- .../web4rail/conditions/ConditionList.java | 47 +++++----- .../web4rail/conditions/TrainSelect.java | 2 +- .../de/srsoftware/web4rail/tiles/Block.java | 2 +- 5 files changed, 57 insertions(+), 85 deletions(-) diff --git a/pom.xml b/pom.xml index 360d8a7..8fc934f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.2.2 + 1.2.3 Web4Rail jar Java Model Railway Control diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index b12f6cb..1abae19 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -33,12 +33,9 @@ import de.srsoftware.web4rail.actions.SetSpeed; import de.srsoftware.web4rail.conditions.Condition; import de.srsoftware.web4rail.conditions.ConditionList; import de.srsoftware.web4rail.moving.Train; -import de.srsoftware.web4rail.tags.Button; import de.srsoftware.web4rail.tags.Checkbox; import de.srsoftware.web4rail.tags.Fieldset; -import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Input; -import de.srsoftware.web4rail.tags.Label; import de.srsoftware.web4rail.tags.Table; import de.srsoftware.web4rail.tiles.Block; import de.srsoftware.web4rail.tiles.Contact; @@ -242,8 +239,8 @@ public class Route extends BaseClass implements Comparable{ return fieldset; } - private void addBraketimesTo(Window win) { - new Tag("h4").content(t("Brake time table")).addTo(win); + private Fieldset brakeTimes() { + Fieldset fieldset = new Fieldset(t("Brake time table")); Table table = new Table(); table.addHead(t("Train"),t("Brake time¹, forward"),t("Brake time¹, reverse")); for (Train t : Train.list()) { @@ -251,53 +248,34 @@ public class Route extends BaseClass implements Comparable{ Integer rTime = brakeTimes.get(t.brakeId(true)); table.addRow(t,isSet(fTime)? fTime+NBSP+"ms" : "–",isSet(rTime)? fTime+NBSP+"ms" : "–"); } - table.clazz("brake-times").addTo(win); - new Tag("p").content(t("1) Duration between 5 {} steps during brake process.",speedUnit)).addTo(win); - } - - private Fieldset conditions() { - Fieldset fieldset = new Fieldset(t("Conditions")); - new Tag("div").content(t("Route will only be available, if all conditions are fulfilled.")).addTo(fieldset); - conditions.tag(REALM_ROUTE+":"+id()).addTo(fieldset); + table.clazz("brake-times").addTo(fieldset); + new Tag("p").content(t("1) Duration between 5 {} steps during brake process.",speedUnit)).addTo(fieldset); return fieldset; } - - private void addContactsTo(Window win) { - if (!contacts.isEmpty()) { - new Tag("h4").content(t("Actions and contacts")).addTo(win); - Tag list = new Tag("ol"); - - Tag setup = new Tag("li").content(t("Setup actions")+NBSP); - setupActions.addTo(setup, context()); - setup.addTo(list); + + private Fieldset contactsAndActions() { + Fieldset win = new Fieldset(t("Actions and contacts")); + Tag list = new Tag("ol"); + + Tag setup = new Tag("li").content(t("Setup actions")+NBSP); + setupActions.addTo(setup, context()); + setup.addTo(list); - Tag start = new Tag("li").content(t("Start actions")+NBSP); - startActions.addTo(start, context()); - start.addTo(list); + Tag start = new Tag("li").content(t("Start actions")+NBSP); + startActions.addTo(start, context()); + start.addTo(list); - for (Contact c : contacts) { - Tag link = Plan.addLink(c,c+NBSP,list); - ActionList actions = triggers.get(c.trigger()); - if (isNull(actions)) { - actions = new ActionList(); - triggers.put(c.trigger(), actions); - } - actions.addTo(link,context()); + for (Contact c : contacts) { + Tag link = Plan.addLink(c,c+NBSP,list); + ActionList actions = triggers.get(c.trigger()); + if (isNull(actions)) { + actions = new ActionList(); + triggers.put(c.trigger(), actions); } - list.addTo(win); + actions.addTo(link,context()); } - } - - private void addFormTo(Window win, HashMap params) { - Form form = new Form("route-"+id+"-props"); - new Input(ACTION, ACTION_UPDATE).hideIn(form); - new Input(REALM,REALM_ROUTE).hideIn(form); - new Input(ID,id()).hideIn(form); - if (params.containsKey(CONTEXT)) new Input(CONTEXT,params.get(CONTEXT)).hideIn(form); - new Input(NAME, name()).style("width: 80%").addTo(new Label(t("name:")+NBSP)).addTo(form); - new Checkbox(DISABLED, t("disabled"), disabled).addTo(form); - - new Button(t("Apply"),form).addTo(form).addTo(win); + list.addTo(win); + return win; } public void addPropertiesFrom(Route existingRoute) { @@ -674,22 +652,13 @@ public class Route extends BaseClass implements Comparable{ formInputs.add(t("Name"),new Input(NAME, name())); formInputs.add(t("disabled"),new Checkbox(DISABLED, t("disabled"), disabled)); - preForm.add(basicProperties()); - if (!turnouts.isEmpty()) preForm.add(turnouts()); - preForm.add(conditions()); + postForm.add(basicProperties()); + if (!turnouts.isEmpty()) postForm.add(turnouts()); + preForm.add(conditions.list(t("Route will only be available, if all conditions are fulfilled."))); + preForm.add(contactsAndActions()); + postForm.add(brakeTimes()); return super.properties(preForm, formInputs, postForm); } - - private Window properties(HashMap params) { - Window win = new Window("route-properties",t("Properties of {}",this)); - addFormTo(win,params); - //basicProperties(); - //addTurnoutsTo(win); - //addConditionsTo(win); - addContactsTo(win); - addBraketimesTo(win); - return win; - } public Route remove(Condition condition) { conditions.remove(condition); diff --git a/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java b/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java index 2fc1cfe..0b5404b 100644 --- a/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java +++ b/src/main/java/de/srsoftware/web4rail/conditions/ConditionList.java @@ -12,6 +12,7 @@ import de.srsoftware.web4rail.BaseClass.Context; import de.srsoftware.web4rail.BaseClass.Id; import de.srsoftware.web4rail.Constants; import de.srsoftware.web4rail.tags.Button; +import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Form; import de.srsoftware.web4rail.tags.Input; @@ -31,6 +32,30 @@ public class ConditionList extends Vector implements Constants{ for (Condition condition : this) json.put(condition.json()); return json; } + + public Fieldset list() { + return list(null); + } + + public Fieldset list(String caption) { + Fieldset fieldset = new Fieldset(t("Conditions")); + if (caption != null) new Tag("p").content(caption).addTo(fieldset); + Tag list = new Tag("ul"); + newConditionForm().addTo(new Tag("li")).addTo(list); + forEach(condition -> condition.link("li", condition).addTo(list)); + list.addTo(fieldset); + return fieldset; + } + + private Form newConditionForm() { + Form form = new Form("add-condition-form"); + new Input(REALM, REALM_CONDITION).hideIn(form); + new Input(ACTION,ACTION_ADD).hideIn(form); + // new Input(CONTEXT,context).hideIn(form); TODO: add context + Condition.selector().addTo(form); + new Button(t("Add condition"), form).addTo(form); + return form; + } public void load(JSONArray arr) { for (int i=0; i implements Constants{ } } - public Tag tag(String context) { - if (context != null) { - - Tag list = new Tag("ul"); - for (Condition condition : this) { - condition.link(condition.toString(),"li",context).addTo(list); - } - Tag div = list.addTo(new Tag("div")); - - Form form = new Form("add-condition-form"); - new Input(REALM, REALM_CONDITION).hideIn(form); - new Input(ACTION,ACTION_ADD).hideIn(form); - new Input(CONTEXT,context).hideIn(form); - Condition.selector().addTo(form); - new Button(t("Add condition"), form).addTo(form).addTo(div); - - return div; - } - return null; - - } - private static String t(String tx, Object...fills) { return Translation.get(Application.class, tx, fills); } diff --git a/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java b/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java index 558061a..cfc6223 100644 --- a/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java +++ b/src/main/java/de/srsoftware/web4rail/conditions/TrainSelect.java @@ -26,7 +26,7 @@ public class TrainSelect extends Condition { public Condition load(JSONObject json) { super.load(json); - train(Train.get(new Id(json.getString(REALM_TRAIN)))); + train(Train.get(new Id(""+json.get(REALM_TRAIN)))); return this; } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Block.java b/src/main/java/de/srsoftware/web4rail/tiles/Block.java index f278b2b..d8611f4 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Block.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Block.java @@ -327,7 +327,7 @@ public abstract class Block extends StretchableTile implements Comparable } public Fieldset waitTimeForm() { - Fieldset win = new Fieldset("Wait times"); + Fieldset win = new Fieldset(t("Wait times")); Form form = new Form("train-wait-form"); new Tag("h4").content(t("Stop settings")).addTo(win); new Input(REALM,REALM_PLAN).hideIn(form);