package Pvv; import art.library.model.devices.Device; import art.library.model.devices.DeviceGraphicsRuntime; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGElement; public class PvvStatusAspect extends DeviceGraphicsRuntime { public PvvStatusAspect(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.vms.pvv.PvvStatus status = (art.library.model.devices.vms.pvv.PvvStatus) device.getDeviceStatus(); art.library.model.devices.vms.pvv.PvvAlarms alarms = (art.library.model.devices.vms.pvv.PvvAlarms) device.getDeviceAlarms(); art.library.model.devices.vms.pvv.PvvConfiguration configuration = (art.library.model.devices.vms.pvv.PvvConfiguration) device.getDeviceConfiguration(); SVGElement circle = getElement("circle"); SVGElement text1 = getElement("text_1"); SVGElement text2 = getElement("text_2"); SVGElement flashes = getElement("flashes"); SVGElement elements = getElement("elements"); setAttribute(elements, "display", "none", 999); setAttribute("lock-on", "display", "inline", 999); setAttribute("Manual", "display", "inline", 999); setAttribute("Auto", "display", "inline", 999); setAttribute("light-on", "display", "inline", 999); setAttribute("icon-test-on", "display", "none", 999); for (int i = 0; i <= 5; i++) { setAttribute("alarm-" + i, "display", (alarms.getServerityAlarm() == i) ? "inline" : "none", 999); } switch (status.state) { case art.library.model.devices.vms.pvv.PvvStatus.STATE_TEST: setAttribute("icon-test-on", "display", "inline", 999); case art.library.model.devices.vms.pvv.PvvStatus.STATE_ON: case art.library.model.devices.vms.pvv.PvvStatus.STATE_FLASH: SVGElement currentText = ((status.speed > 9 && status.speed < 20) || status.speed > 99) ? text1 : text2; setText(currentText, String.valueOf(status.speed)); if (status.visibilitySpeed) { setAttribute(currentText, "display", (status.blinkingSpeed) ? ((flashOn) ? "inline" : "none") : "inline", 999); } if (status.visibilityFlashes) { setAttribute(flashes, "display", (status.blinkingFlashes) ? ((flashOn) ? "inline" : "none") : "inline", 999); } if (status.visibilityCircle) { setAttribute(circle, "display", (status.blinkingCircle) ? ((flashOn) ? "inline" : "none") : "inline", 999); } break; case art.library.model.devices.vms.pvv.PvvStatus.STATE_OFF: break; } if (!status.isLocked()) { setAttribute("lock-on", "display", "none", 999); } if (configuration != null && configuration.brightnessMode != art.library.model.devices.vms.pvv.PvvConfiguration.BRIGHTNESS_MODE_UNKNOWN) { setAttribute((configuration.brightnessMode == art.library.model.devices.vms.pvv.PvvConfiguration.BRIGHTNESS_MODE_AUTO) ? "Manual" : "Auto", "display", "none", 999); } else { setAttribute("light-on", "display", "none"); setAttribute("Auto", "display", "none"); setAttribute("Manual", "display", "none"); } } catch (Exception ex) { } } public void commands() { art.library.model.devices.vms.pvv.PvvCommands deviceCommands = (art.library.model.devices.vms.pvv.PvvCommands) getDeviceCommands(); SVGElement background = getElement("background"); SVGElement circle = getElement("circle"); SVGElement text1 = getElement("text_1"); SVGElement text2 = getElement("text_2"); SVGElement flashes = getElement("flashes"); SVGElement lock = getElement("lock"); SVGElement unlock = getElement("unlock"); SVGElement restart = getElement("restart"); SVGElement sync = getElement("sync"); SVGElement elements = getElement("elements"); setAttribute(elements, "display", "none", 999); setAttribute(restart, "display", "inline", 999); setAttribute(unlock, "display", "inline", 999); setAttribute(sync, "display", "inline", 999); setAttribute(lock, "display", "inline", 999); setAttribute("lock-off", "display", "none", 999); boolean overrideFlash = false; boolean overrideSpeed = false; boolean overrideCircle = false; SVGElement selectedText = null; if (deviceCommands.message != null) { art.library.model.devices.vms.pvv.commands.PvvCommandsMessage message = (art.library.model.devices.vms.pvv.commands.PvvCommandsMessage) deviceCommands.message; selectedText = ((message.speed > 9 && message.speed < 20) || message.speed > 99) ? text1 : text2; setText(text1, String.valueOf(message.speed)); setText(text2, String.valueOf(message.speed)); setAttribute(circle, "display", "inline", 999); setAttribute(selectedText, "display", "inline", 999); if (message.blinkings != null) { if (message.blinkings.blinkingCircle == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { overrideCircle = !flashOn; setAttribute(circle, "display", ((flashOn) ? "inline" : "none"), 999); } if (message.blinkings.blinkingFlashes == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { overrideFlash = !flashOn; setAttribute(flashes, "display", ((flashOn) ? "inline" : "none"), 999); } if (message.blinkings.blinkingSpeed == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { overrideSpeed = !flashOn; setAttribute(selectedText, "display", ((flashOn) ? "inline" : "none"), 999); } } if (message.visibilities != null) { if (!overrideCircle) { setAttribute(circle, "display", "inline", 999); } if (!overrideFlash) { setAttribute(flashes, "display", "inline", 999); } if (!overrideSpeed) { setAttribute(selectedText, "display", "inline", 999); } if (!message.visibilities.visibilityCircle) { setAttribute(circle, "display", "none", 999); } if (!message.visibilities.visibilityFlashes) { setAttribute(flashes, "display", "none", 999); } if (!message.visibilities.visibilitySpeed) { setAttribute(selectedText, "display", "none", 999); } } } if (deviceCommands.reset != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { setAttribute(restart, "display", "none", 999); } if (deviceCommands.liberate != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { setAttribute(unlock, "display", "none", 999); setAttribute("lock-off", "display", "inline", 999); } if (deviceCommands.message == null || deviceCommands.message.synchroActivation != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES) { setAttribute(sync, "display", "none", 999); } else { setAttribute(circle, "display", "none", 999); setAttribute(selectedText, "display", "none", 999); } if (deviceCommands.priority != 256) { setAttribute(lock, "display", "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); // }