package Bollard;
|
|
import art.library.model.devices.Device;
|
import art.library.model.devices.DeviceGraphicsRuntime;
|
import com.kitfox.svg.SVGDiagram;
|
import com.kitfox.svg.SVGElement;
|
|
|
public class BollardStatusAspect extends DeviceGraphicsRuntime
|
{
|
|
public BollardStatusAspect(art.library.model.devices.Device device, SVGDiagram diagram)
|
{
|
super(device, diagram);
|
}
|
|
private boolean flashOn = false;
|
public void timer()
|
{
|
flashOn = !flashOn;
|
status();
|
}
|
|
public void status()
|
{
|
try
|
{
|
Device device = getDevice();
|
art.library.model.devices.bollard.BollardStatus status = (art.library.model.devices.bollard.BollardStatus) device.getDeviceStatus();
|
art.library.model.devices.bollard.BollardRealtime realtime = (art.library.model.devices.bollard.BollardRealtime) device.getDeviceRealtime();
|
art.library.model.devices.bollard.BollardAlarms alarms = (art.library.model.devices.bollard.BollardAlarms) device.getDeviceAlarms();
|
|
for (int i = 0; i <= 5; i++)
|
{
|
setAttribute("alarm-" + i, "display", (alarms.getServerityAlarm() == i) ? "inline" : "none", 999);
|
}
|
|
SVGElement bollard_down = getElement("bollard-down");
|
SVGElement bollard_up = getElement("bollard-up");
|
SVGElement bollard_moving = getElement("bollard-moving");
|
|
SVGElement arrow_up = getElement("moving_up");
|
SVGElement arrow_down = getElement("moving_down");
|
SVGElement arrow_moving = getElement("moving");
|
|
SVGElement loop_input = getElement("loop_input");
|
SVGElement loop_ouput = getElement("loop_output");
|
SVGElement loop_control = getElement("loop_control");
|
|
SVGElement loop_input_text = getElement("loop_input_text");
|
SVGElement loop_output_text = getElement("loop_output_text");
|
SVGElement loop_control_text = getElement("loop_control_text");
|
|
SVGElement lock = getElement("lock");
|
SVGElement lock_disabled = getElement("lock_disabled");
|
|
setText(loop_control_text, art.client.models.Shared.getMessage("Loop control point"));
|
setText(loop_input_text, art.client.models.Shared.getMessage("Loop input"));
|
setText(loop_output_text, art.client.models.Shared.getMessage("Loop output"));
|
|
hideElements(bollard_down, bollard_up, bollard_moving, arrow_down, arrow_up, arrow_moving, lock,lock_disabled);
|
setLoopStateOff(loop_input, loop_ouput, loop_control);
|
|
if (status.general != null)
|
{
|
switch (status.general.lock)
|
{
|
case art.library.model.devices.bollard.status.BollardStatusGeneral.LOCK_LOCK:
|
showElements(lock);
|
break;
|
default:
|
showElements(lock_disabled);
|
break;
|
}
|
}
|
|
if (realtime.general != null)
|
{
|
switch (realtime.general.position)
|
{
|
case art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.POSITION_UP:
|
showElements(bollard_up);
|
break;
|
case art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.POSITION_DOWN:
|
showElements(bollard_down);
|
break;
|
case art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.POSITION_GOING_UP:
|
showElements(bollard_moving, arrow_up);
|
break;
|
case art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.POSITION_GOING_DOWN:
|
showElements(bollard_moving, arrow_down);
|
break;
|
case art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.POSITION_MOVING:
|
showElements(bollard_moving, arrow_moving);
|
break;
|
}
|
|
if(realtime.general.loopInput == art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.LOOP_ACTIVE)
|
setLoopStateOn(loop_input);
|
if(realtime.general.loopOutput == art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.LOOP_ACTIVE)
|
setLoopStateOn(loop_ouput);
|
if(realtime.general.loopControlPoint == art.library.model.devices.bollard.realtime.BollardRealtimeGeneral.LOOP_ACTIVE)
|
setLoopStateOn(loop_control);
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
|
private void showElements(SVGElement... elements)
|
{
|
setProperty("display", "inline", elements);
|
}
|
|
private void hideElements(SVGElement... elements)
|
{
|
setProperty("display", "none", elements);
|
}
|
|
private void setLoopStateOff(SVGElement... elements)
|
{
|
setProperty("fill", "#C8C8C8", elements);
|
}
|
|
private void setLoopStateOn(SVGElement... elements)
|
{
|
setProperty("fill", "#FFFF00", elements);
|
}
|
|
private void setProperty(String property, String value, SVGElement... elements)
|
{
|
java.util.stream.Stream.of(elements).forEach(element -> setAttribute(element, property, value, 999));
|
}
|
|
// java.io.StringWriter sw = new java.io.StringWriter();
|
// art.library.gui.flat.FlatDialog.showDialog(null, "Error", e.getMessage() + "\n\n" + sw.toString(), true, art.library.gui.flat.FlatDialog.DIALOG_ERROR);
|
//
|
}
|