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);
|
}
|
|
//<editor-fold defaultstate="collapsed" desc="Status methods">
|
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);
|
}
|
//</editor-fold>
|
|
//<editor-fold defaultstate="collapsed" desc="Commands methods">
|
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);
|
}
|
//</editor-fold>
|
|
// 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);
|
//
|
}
|