50 lines
1.1 KiB
Java
50 lines
1.1 KiB
Java
package de.srsoftware.web4rail.functions;
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import de.srsoftware.web4rail.Params;
|
|
import de.srsoftware.web4rail.devices.Decoder;
|
|
import de.srsoftware.web4rail.tags.Fieldset;
|
|
import de.srsoftware.web4rail.tags.Input;
|
|
import de.srsoftware.web4rail.tags.Label;
|
|
|
|
public class CustomFunction extends Function {
|
|
private String customName = super.name();
|
|
|
|
@Override
|
|
public Fieldset form(Decoder decoder) {
|
|
Fieldset fieldset = super.form(decoder);
|
|
String prefix = "functions/"+id()+"/";
|
|
new Input(prefix+NAME, customName)
|
|
.addTo(new Label(t("Name")))
|
|
.addTo(fieldset);
|
|
return fieldset;
|
|
}
|
|
|
|
@Override
|
|
public JSONObject json() {
|
|
JSONObject json = super.json();
|
|
json.put(NAME, customName);
|
|
return json;
|
|
}
|
|
|
|
@Override
|
|
public CustomFunction load(JSONObject json) {
|
|
super.load(json);
|
|
if (json.has(NAME)) customName = json.getString(NAME);
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public String name() {
|
|
return customName;
|
|
}
|
|
|
|
@Override
|
|
public Object update(Params params) {
|
|
String newName = params.getString(NAME);
|
|
if (isSet(newName) && !newName.isEmpty()) customName = newName;
|
|
return super.update(params);
|
|
}
|
|
}
|