import art.library.model.devices.Device; import art.library.model.devices.DeviceCommands; import art.library.model.devices.DeviceStatus; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGElement; import java.awt.Color; public class DeviceGraphicsRuntime_Semaphore_status_aspect extends DeviceGraphicsRuntime { public DeviceGraphicsRuntime_Semaphore_status_aspect(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.tunnel.semaphore.SemaphoreStatus deviceStatus = (art.library.model.devices.tunnel.semaphore.SemaphoreStatus) device.getDeviceStatus(); art.library.model.devices.DeviceAlarms alarms = (art.library.model.devices.DeviceAlarms) device.getDeviceAlarms(); setAttribute("redSphere", "display", "none"); setAttribute("yellowSphere", "display", "none"); setAttribute("greenSphere", "display", "none"); for (int i = 0; i <= 5; i++) setAttribute("alarm-" + i, "display", (alarms.getServerityAlarm() == i) ? "inline" : "none", 999); switch (deviceStatus.state) { case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_RED: setAttribute("redSphere", "display", "inline"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_YELLOW: setAttribute("yellowSphere", "display", "inline"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_GREEN: setAttribute("greenSphere", "display", "inline"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_FLASHING_YELLOW: if (flashOn) { setAttribute("yellowSphere", "display", "inline"); } break; } } catch (java.lang.Exception e) { } } // 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); // }