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); // }