package Rotapanel;
import art.library.model.devices.Device;
import art.library.model.devices.DeviceGraphicsRuntime;
import com.kitfox.svg.SVGDiagram;
public class RotapanelStatusAndCommands extends DeviceGraphicsRuntime
{
public RotapanelStatusAndCommands(art.library.model.devices.Device device, SVGDiagram diagram)
{
super(device, diagram);
}
public void status()
{
Device device = getDevice();
art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status = (art.library.model.devices.vms.rotapanel.VmsRotapanelStatus) device
.getDeviceStatus();
updateFaceElements(status);
updateLightModeElements(status);
updateControlModeElements(status);
updateTestModeElements(status);
updateRotationIntervalElements(status);
updateAlarmlElements(device.getDeviceAlarms());
}
public void commands()
{
art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands = (art.library.model.devices.vms.rotapanel.VmsRotapanelCommands) getDeviceCommands();
updateLightModeElements(commands);
updateTestModeElements(commands);
updateIntervalModeElements(commands);
updateHourOfDayElements(commands);
updateFaceElements(commands);
}
//
private void updateLightModeElements( art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status)
{
String fieldValue = "art.field.status.lightActive.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement elementActive = java.util.stream.Stream.of(elements).filter(el -> "true".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement elementInactive = java.util.stream.Stream.of(elements).filter(el -> "false".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(elementActive, "display", status.lightActive ? "inline" : "none", 999);
setAttribute(elementInactive, "display", status.lightActive ? "none" : "inline", 999);
}
private void updateControlModeElements( art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status)
{
String fieldValue = "art.field.status.manualControlActive.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement elementActive = java.util.stream.Stream.of(elements).filter(el -> "true".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement elementInactive = java.util.stream.Stream.of(elements).filter(el -> "false".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(elementActive, "display", status.manualControlActive ? "inline" : "none", 999);
setAttribute(elementInactive, "display", status.manualControlActive ? "none" : "inline", 999);
}
private void updateTestModeElements(art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status)
{
String fieldValue = "art.field.status.turnTestActive.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement elementActive = java.util.stream.Stream.of(elements).filter(el -> "true".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement elementInactive = java.util.stream.Stream.of(elements).filter(el -> "false".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(elementActive, "display", status.turnTestActive ? "inline" : "none", 999);
setAttribute(elementInactive, "display", status.turnTestActive ? "none" : "inline", 999);
}
private void updateRotationIntervalElements(art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status)
{
String fieldValue = "art.field.status.rotationInterval.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement elementActive = java.util.stream.Stream.of(elements).filter(el -> "!=0".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement elementInactive = java.util.stream.Stream.of(elements).filter(el -> "0".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(elementActive, "display", status.rotationInterval > 0 ? "inline" : "none", 999);
setAttribute(elementInactive, "display", status.rotationInterval > 0 ? "none" : "inline", 999);
}
private void updateAlarmlElements(art.library.model.devices.DeviceAlarms alarms)
{
String fieldValue = "art.field.alarms.getServerityAlarm.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
for( com.kitfox.svg.SVGElement element : elements)
setAttribute(element, "display", alarms.getServerityAlarm() == element.getPresAbsolute(fieldValue).getIntValue() ? "inline" : "none" ,999);
}
private void updateFaceElements(art.library.model.devices.vms.rotapanel.VmsRotapanelStatus status)
{
String fieldValue = "art.field.status.face.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
for( com.kitfox.svg.SVGElement element : elements)
setAttribute(element, "display", status.face == element.getPresAbsolute(fieldValue).getIntValue() ? "inline" : "none" ,999);
}
//
//
private void updateLightModeElements(art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands)
{
String fieldValue = "art.field.light.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement element0 = java.util.stream.Stream.of(elements).filter(el -> "0".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement element1 = java.util.stream.Stream.of(elements).filter(el -> "1".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement element2 = java.util.stream.Stream.of(elements).filter(el -> "2".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(element0, "display", commands.light <= 0 ? "inline" : "none", 999);
setAttribute(element1, "display", commands.light == 1 ? "inline" : "none", 999);
setAttribute(element2, "display", commands.light == 2 ? "inline" : "none", 999);
}
private void updateTestModeElements(art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands)
{
String fieldValue = "art.field.test.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement element0 = java.util.stream.Stream.of(elements).filter(el -> "0".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement element1 = java.util.stream.Stream.of(elements).filter(el -> "1".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement element2 = java.util.stream.Stream.of(elements).filter(el -> "2".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
setAttribute(element0, "display", commands.test <= 0 ? "inline" : "none", 999);
setAttribute(element1, "display", commands.test == 1 ? "inline" : "none", 999);
setAttribute(element2, "display", commands.test == 2 ? "inline" : "none", 999);
}
private void updateIntervalModeElements(art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands)
{
String fieldValue = "art.field.interval.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement[] elementEqualOrGreaterThan0 = java.util.stream.Stream.of(elements).filter(el -> ">0".equals(el.getPresAbsolute(fieldValue).getStringValue())).toArray(com.kitfox.svg.SVGElement[]::new);
com.kitfox.svg.SVGElement elementMinus1 = java.util.stream.Stream.of(elements).filter(el -> "-1".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement element0 = java.util.stream.Stream.of(elements).filter(el -> "0".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
java.util.stream.Stream.of(elementEqualOrGreaterThan0).forEach(el -> setAttribute(el, "display", commands.interval > 0 ? "inline" : "none", 999));
setAttribute(elementMinus1, "display", commands.interval == -1 ? "inline" : "none", 999);
setAttribute(element0, "display", commands.interval == 0 ? "inline" : "none", 999);
if (commands.interval > 0)
{
setText(getElementsContainingField("art.field.interval.text").get(0), String.valueOf(commands.interval)+ " '");
}
}
private void updateHourOfDayElements(art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands)
{
String fieldValue = "art.field.hourOfDay.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
com.kitfox.svg.SVGElement[] elementEqualOrGreaterThan0 = java.util.stream.Stream.of(elements).filter(el -> ">=0".equals(el.getPresAbsolute(fieldValue).getStringValue())).toArray(com.kitfox.svg.SVGElement[]::new);
com.kitfox.svg.SVGElement elementMinus1 = java.util.stream.Stream.of(elements).filter(el -> "-1".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
com.kitfox.svg.SVGElement elementMinus2 = java.util.stream.Stream.of(elements).filter(el -> "-2".equals(el.getPresAbsolute(fieldValue).getStringValue())).findAny().get();
java.util.stream.Stream.of(elementEqualOrGreaterThan0).forEach(el -> setAttribute(el, "display", commands.hourOfDay >= 0 ? "inline" : "none", 999));
setAttribute(elementMinus1, "display", commands.hourOfDay == -1 ? "inline" : "none", 999);
setAttribute(elementMinus2, "display", commands.hourOfDay == -2 ? "inline" : "none", 999);
if (commands.hourOfDay >= 0)
{
setText(getElementsContainingField("art.field.hourOfDay.text").get(0), String.valueOf(commands.hourOfDay) );
}
}
private void updateFaceElements(art.library.model.devices.vms.rotapanel.VmsRotapanelCommands commands)
{
String fieldValue = "art.field.face.visibility";
com.kitfox.svg.SVGElement[] elements = getElementsContainingField(fieldValue).toArray(new com.kitfox.svg.SVGElement[0]);
for( com.kitfox.svg.SVGElement element : elements)
setAttribute(element, "display", commands.face == element.getPresAbsolute(fieldValue).getIntValue() ? "inline" : "none" ,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);
//
}