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_map extends DeviceGraphicsRuntime { public DeviceGraphicsRuntime_Semaphore_map(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } private boolean flashOn = false; public void timer() { flashOn = !flashOn; status(); } public void status() { java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; Boolean even = (seconds % 2) == 0; Device device = getDevice(); art.library.model.devices.tunnel.semaphore.SemaphoreStatus status = (art.library.model.devices.tunnel.semaphore.SemaphoreStatus) device.getDeviceStatus(); art.library.model.devices.DeviceAlarms alarms = (art.library.model.devices.DeviceAlarms) device.getDeviceAlarms(); art.library.model.devices.tunnel.semaphore.SemaphoreStatus semStatus = (art.library.model.devices.tunnel.semaphore.SemaphoreStatus) status; String color1 = "#000000"; String color2 = "#000000"; Boolean shouldHide = (status.state == art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_GREEN); setAttribute("background", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("border", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("alarm", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("Icon", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("light_colors_up", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("light_colors_middle", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("light_colors_down", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); setAttribute("Information text", "display", shouldHide && alarms.getServerityAlarm() <= 0 ? "none" : "inline", 999); switch (status.status) { case DeviceStatus.STATUS_ONLINE: color1 = "#00FF00"; color2 = "#007C00"; break; case DeviceStatus.STATUS_WARNING: color1 = "#FFFF00"; color2 = "#7C7C00"; break; case DeviceStatus.STATUS_ALARM: color1 = "#FF0000"; color2 = "#7C0000"; break; case DeviceStatus.STATUS_INVALID: color1 = "#B97A57"; color2 = "#5A3B2A"; break; case DeviceStatus.STATUS_DISABLE: color1 = "#7C7C7C"; color2 = "#3E3E3E"; break; case DeviceStatus.STATUS_SIMULATION: color1 = "#0000FF"; color2 = "#00007C"; break; case DeviceStatus.STATUS_OFFLINE: color1 = "#FF00FF"; color2 = "#7C007C"; setAttribute("alarm", "display", "none", 999); break; case DeviceStatus.STATUS_UNKNOWN: color1 = "#FF00FF"; color2 = "#7C007C"; setAttribute("alarm", "display", "none", 999); break; } setAttribute("light_colors_up", "fill", "#000000"); setAttribute("light_colors_middle", "fill", "#000000"); setAttribute("light_colors_down", "fill","#000000"); switch (semStatus.state) { case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_OFF: color1 = "#7C7C7C"; color2 = "#3E3E3E"; setAttribute("Icon", "fill", color2); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_GREEN: setAttribute("Icon", "fill","#007C00"); setAttribute("light_colors_down", "fill","#00FF00"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_RED: setAttribute("Icon", "fill","#7C0000"); setAttribute("light_colors_up", "fill","#FF0000"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_YELLOW: setAttribute("Icon", "fill","#DFE300"); setAttribute("light_colors", "fill", "#000000"); setAttribute("light_colors_middle", "fill", "#949600"); break; case art.library.model.devices.tunnel.semaphore.SemaphoreStatus.SEMAPHORE_STATE_FLASHING_YELLOW: setAttribute("Icon", "fill","#DFE300"); setAttribute("light_colors_middle", "fill", even ? "#949600" : "#000000"); break; } setAttribute("background", "fill", color1, 999); setAttribute("border", "stroke", color2, 999); setAttribute("alarm", "stroke", color1, 999); setAttribute(getElement("alarm"), "stroke-width", device.getServerityAlarm(), 999); setText("Information text", String.valueOf(device.getDeviceInformation().number)); } public void commands() { DeviceCommands deviceCommands = getDeviceCommands(); String color1 = "#0000FF"; String color2 = "#00007C"; if (!deviceCommands.isEmpty()) { color1 = "#00FF00"; color2 = "#007C00"; } setText("Information text", String.valueOf(device.getDeviceInformation().number)); setAttribute("text", "display", "none", 999); setAttribute(getElement("alarm"), "stroke-width", 0, 999); setAttribute("Border", "stroke", color2); } // 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); // }