12 changed files with 213 additions and 119 deletions
@ -0,0 +1,54 @@ |
|||||||
|
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.Checkbox; |
||||||
|
import de.srsoftware.web4rail.tags.Fieldset; |
||||||
|
|
||||||
|
public class DirectedFunction extends Function { |
||||||
|
|
||||||
|
private boolean forward,reverse; |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean enabled(Decoder decoder) { |
||||||
|
if (!super.enabled(decoder)) return false; |
||||||
|
if (decoder.reverse()) { |
||||||
|
return reverse; |
||||||
|
} else return forward; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Fieldset form(Decoder decoder) { |
||||||
|
Fieldset fieldset = super.form(decoder); |
||||||
|
String prefix = "functions/"+id()+"/"; |
||||||
|
new Checkbox(prefix+FORWARD, t(FORWARD), forward, true).addTo(fieldset); |
||||||
|
new Checkbox(prefix+REVERSE, t(REVERSE), reverse, true).addTo(fieldset); |
||||||
|
return fieldset; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JSONObject json() { |
||||||
|
JSONObject json = super.json(); |
||||||
|
if (forward) json.put(FORWARD, true); |
||||||
|
if (reverse) json.put(REVERSE, true); |
||||||
|
return json; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DirectedFunction load(JSONObject json) { |
||||||
|
super.load(json); |
||||||
|
if (json.has(FORWARD)) forward = true; |
||||||
|
if (json.has(REVERSE)) reverse = true; |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object update(Params params) { |
||||||
|
if (params.containsKey(FORWARD)) forward = "on".equals(params.get(FORWARD)); |
||||||
|
if (params.containsKey(REVERSE)) reverse = "on".equals(params.get(REVERSE)); |
||||||
|
return super.update(params); |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -1,32 +1,5 @@ |
|||||||
package de.srsoftware.web4rail.functions; |
package de.srsoftware.web4rail.functions; |
||||||
|
|
||||||
import de.srsoftware.web4rail.Params; |
public class HeadLight extends DirectedFunction { |
||||||
import de.srsoftware.web4rail.devices.Decoder; |
|
||||||
import de.srsoftware.web4rail.tags.Checkbox; |
|
||||||
import de.srsoftware.web4rail.tags.Fieldset; |
|
||||||
|
|
||||||
public class HeadLight extends Function { |
|
||||||
|
|
||||||
private boolean forward,reverse; |
|
||||||
|
|
||||||
public HeadLight() { |
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Fieldset form(Decoder decoder) { |
|
||||||
Fieldset fieldset = super.form(decoder); |
|
||||||
String prefix = "functions/"+id()+"/"; |
|
||||||
new Checkbox(prefix+FORWARD, t(FORWARD), forward).addTo(fieldset); |
|
||||||
new Checkbox(prefix+REVERSE, t(REVERSE), reverse).addTo(fieldset); |
|
||||||
return fieldset; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Object update(Params params) { |
|
||||||
if (params.containsKey(FORWARD)) forward = "on".equals(params.get(FORWARD)); |
|
||||||
if (params.containsKey(REVERSE)) reverse = "on".equals(params.get(REVERSE)); |
|
||||||
return super.update(params); |
|
||||||
|
|
||||||
} |
|
||||||
} |
} |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
package de.srsoftware.web4rail.functions; |
package de.srsoftware.web4rail.functions; |
||||||
|
|
||||||
public class TailLight extends Function { |
public class TailLight extends DirectedFunction { |
||||||
|
|
||||||
} |
} |
||||||
|
Loading…
Reference in new issue