updating tiles and conditions

This commit is contained in:
Stephan Richter
2020-12-02 21:55:28 +01:00
parent b249aa8129
commit 85a1222851
10 changed files with 139 additions and 155 deletions

View File

@@ -1,11 +1,12 @@
package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tiles.Block;
public class BlockFree extends Condition {
@@ -28,12 +29,11 @@ public class BlockFree extends Condition {
block(Block.get(new Id(json.getString(BLOCK))));
return this;
}
@Override
public Tag propForm(HashMap<String, String> params) {
Tag form = super.propForm(params);
Block.selector(block, null).addTo(new Label(t("Select block:")+NBSP)).addTo(form);
return form;
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Select block"), Block.selector(block, null));
return super.properties(preForm, formInputs, postForm);
}
@Override

View File

@@ -18,10 +18,8 @@ import de.srsoftware.web4rail.Plan;
import de.srsoftware.web4rail.Route;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.actions.ConditionalAction;
import de.srsoftware.web4rail.tags.Button;
import de.srsoftware.web4rail.tags.Checkbox;
import de.srsoftware.web4rail.tags.Form;
import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Select;
@@ -54,7 +52,7 @@ public abstract class Condition extends BaseClass {
switch (action) {
case ACTION_PROPS:
return condition.properties(params);
return condition.properties();
case ACTION_UPDATE:
condition.update(params);
return plan.showContext(params);
@@ -157,23 +155,11 @@ public abstract class Condition extends BaseClass {
inverted = json.has(INVERTED) && json.getBoolean(INVERTED);
return this;
}
public Tag propForm(HashMap<String, String> params) {
Form form = new Form("condition-props-"+id);
new Input(REALM,REALM_CONDITION).hideIn(form);
new Input(ACTION,ACTION_UPDATE).hideIn(form);
new Input(ID,id).hideIn(form);
String context = params.get(CONTEXT);
if (isSet(context)) new Input(CONTEXT,context).hideIn(form);
return form;
}
protected Window properties(HashMap<String, String> params) {
Window win = new Window("condition-props", t("Properties of {}",getClass().getSimpleName()));
Tag form = propForm(params);
new Checkbox(INVERTED, t("inverted"), inverted).addTo(form);
new Button(t("Apply"),"return submitForm('condition-props-"+id+"');").addTo(form).addTo(win);
return win;
@Override
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("inverted"),new Checkbox(INVERTED, t("inverted"), inverted));
return super.properties(preForm, formInputs, postForm);
}
public static Tag selector() {

View File

@@ -1,11 +1,12 @@
package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import org.json.JSONObject;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset;
public class OrCondition extends Condition{
@@ -33,13 +34,11 @@ public class OrCondition extends Condition{
}
@Override
protected Window properties(HashMap<String, String> params) {
Window win = super.properties(params);
win.children().insertElementAt(conditions.tag(REALM_CONDITION+":"+id()),2);
return win;
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
// add conditions
return super.properties(preForm, formInputs, postForm);
}
@Override
public String toString() {
return conditions.isEmpty() ? t("Click here to select conditions") : String.join(" "+t("OR")+" ", conditions.stream().map(Object::toString).collect(Collectors.toList()));

View File

@@ -1,12 +1,13 @@
package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label;
public class TrainHasTag extends Condition {
@@ -31,10 +32,11 @@ public class TrainHasTag extends Condition {
}
@Override
public Tag propForm(HashMap<String, String> params) {
return new Input(TAG, tag == null ? "" : tag).addTo(new Label(t("Tag:")+NBSP)).addTo(super.propForm(params));
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Tag"),new Input(TAG, tag == null ? "" : tag));
return super.properties(preForm, formInputs, postForm);
}
@Override
public String toString() {
if (tag == null) return t("[Click to setup tag]");

View File

@@ -1,13 +1,14 @@
package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.tags.Fieldset;
import de.srsoftware.web4rail.tags.Input;
import de.srsoftware.web4rail.tags.Label;
public class TrainLength extends Condition {
@@ -30,10 +31,11 @@ public class TrainLength extends Condition {
if (json.has(MAX_LENGTH)) maxLength = json.getInt(MAX_LENGTH);
return this;
}
@Override
public Tag propForm(HashMap<String, String> params) {
return new Input(MAX_LENGTH, maxLength).numeric().addTo(new Label(t("Maximum train length:")+NBSP)).addTo(super.propForm(params));
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Maximum train length"),new Input(MAX_LENGTH, maxLength).numeric());
return super.properties(preForm, formInputs, postForm);
}
@Override
@@ -48,7 +50,7 @@ public class TrainLength extends Condition {
if (ml < 1) throw new NumberFormatException(t("length must be larger than zero!"));
maxLength = ml;
} catch (NumberFormatException nfe) {
Window win = properties(params);
Window win = properties();
win.children().insertElementAt(new Tag("div").content(nfe.getMessage()),1);
return win;
}

View File

@@ -1,12 +1,13 @@
package de.srsoftware.web4rail.conditions;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import de.srsoftware.tools.Tag;
import de.srsoftware.web4rail.Window;
import de.srsoftware.web4rail.moving.Train;
import de.srsoftware.web4rail.tags.Label;
import de.srsoftware.web4rail.tags.Fieldset;
public class TrainSelect extends Condition {
@@ -30,12 +31,11 @@ public class TrainSelect extends Condition {
}
@Override
public Tag propForm(HashMap<String, String> params) {
Tag form = super.propForm(params);
Train.selector(train, null).addTo(new Label(t("Select train:")+NBSP)).addTo(form);
return form;
protected Window properties(List<Fieldset> preForm, FormInput formInputs, List<Fieldset> postForm) {
formInputs.add(t("Select train"),Train.selector(train, null));
return super.properties(preForm, formInputs, postForm);
}
@Override
public String toString() {
if (train == null) return t("[Click here to select train!]");