package LightStuds; import art.library.model.devices.DeviceGraphicsRuntime; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGElement; public class LightStudsStatusAspect extends DeviceGraphicsRuntime { public LightStudsStatusAspect(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 { art.library.model.devices.Device device = getDevice(); art.library.model.devices.lighting.lightstuds.LightStudsStatus status = (art.library.model.devices.lighting.lightstuds.LightStudsStatus) device.getDeviceStatus(); art.library.model.devices.lighting.lightstuds.LightStudsAlarms alarms = (art.library.model.devices.lighting.lightstuds.LightStudsAlarms) device.getDeviceAlarms(); setAttribute("light-on", "display", "none", 999); setAttribute("Auto", "display", "none", 999); setAttribute("Manual", "display", "none", 999); String lightColor = "#646464"; for (int i = 0; i <= 5; i++) { setAttribute("alarm-" + i, "display", (alarms.getServerityAlarm() == i) ? "inline" : "none", 999); } if (status.BUSVAO != null) { switch (status.BUSVAO.status) { case art.library.model.devices.lighting.lightstuds.status.LightStudsStatus_BUSVAO.STATUS_MANUAL: setAttribute("light-on", "display", "inline", 999); setAttribute("Manual", "display", "inline", 999); break; case art.library.model.devices.lighting.lightstuds.status.LightStudsStatus_BUSVAO.STATUS_AUTOMATIC: setAttribute("light-on", "display", "inline", 999); setAttribute("Auto", "display", "inline", 999); break; } } if (status.BUSVAO.circuits != null) { for (art.library.model.devices.lighting.lightstuds.status.LightStudsStatus_BUSVAO_Circuit circuit : status.BUSVAO.circuits) { if (circuit.status == art.library.model.devices.lighting.lightstuds.status.LightStudsStatus_BUSVAO_Circuit.STATUS_ON) { int brightNessLevel = circuit.brightnessLevel; java.awt.Color colorBrightness = new java.awt.Color(60, 60, 0); for (int i = 0; i < brightNessLevel; i++) { colorBrightness = colorBrightness.brighter(); } lightColor = "#" + Integer.toHexString(colorBrightness.getRGB()).substring(2); } } } setAttribute("Baliza_izq", "fill", lightColor, 999); setAttribute("Baliza_drch", "fill", lightColor, 999); } catch (Exception ex) { } } public void commands() { art.library.model.devices.vms.asf.AsfCommands deviceCommands = (art.library.model.devices.vms.asf.AsfCommands) getDeviceCommands(); SVGElement arrow = getElement("arrow"); SVGElement cross = getElement("cross"); SVGElement arrowRight = getElement("arrow-right"); SVGElement arrowLeft = getElement("arrow-left"); SVGElement dynamicElements = getElement("elements"); setAttribute("lock-on", "display", "inline", 999); setAttribute("restart", "display", "inline", 999); setAttribute("unlock", "display", "inline", 999); setAttribute(dynamicElements, "display", "none", 999); SVGElement showElement = null; switch (deviceCommands.state) { case art.library.model.devices.vms.asf.AsfCommands.STATE_ARROW: showElement = arrow; break; case art.library.model.devices.vms.asf.AsfCommands.STATE_CROSS: showElement = cross; break; case art.library.model.devices.vms.asf.AsfCommands.STATE_OFF: break; case art.library.model.devices.vms.asf.AsfCommands.STATE_LEFT: showElement = arrowLeft; break; case art.library.model.devices.vms.asf.AsfCommands.STATE_RIGHT: showElement = arrowRight; break; case art.library.model.devices.vms.asf.AsfCommands.STATE_FLASHING_LEFT: showElement = (flashOn) ? arrowLeft : null; break; case art.library.model.devices.vms.asf.AsfCommands.STATE_FLASHING_RIGHT: showElement = (flashOn) ? arrowRight : null; break; } if (showElement != null) { setAttribute(showElement, "display", "inline", 999); } if (deviceCommands.reset != art.library.model.devices.vms.asf.AsfCommands.CONDITION_YES) { setAttribute("restart", "display", "none", 999); } if (deviceCommands.liberate != art.library.model.devices.vms.asf.AsfCommands.CONDITION_YES) { setAttribute("unlock", "display", "none", 999); } if (deviceCommands.priority < 256) { setAttribute("lock-on", "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); // }