import art.library.model.devices.Device; import art.library.model.devices.DeviceStatus; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGElement; public class DeviceGraphicsRuntime_VentilationZone_Map extends DeviceGraphicsRuntime { public DeviceGraphicsRuntime_VentilationZone_Map(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } public void status() { try { Device device = getDevice(); art.library.model.devices.tunnel.ventilationzone.VentilationZoneStatus status = (art.library.model.devices.tunnel.ventilationzone.VentilationZoneStatus) device.getDeviceStatus(); art.library.model.devices.tunnel.ventilationzone.VentilationZoneInformation information = (art.library.model.devices.tunnel.ventilationzone.VentilationZoneInformation) device.getDeviceInformation(); art.library.model.devices.tunnel.ventilationzone.VentilationZoneAlarms alarms = (art.library.model.devices.tunnel.ventilationzone.VentilationZoneAlarms) device.getDeviceAlarms(); setAttribute("SVG", "display", "inline", 999); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement alarm = getElement("Alarm"); SVGElement text = getElement("Text number"); SVGElement textLevel = getElement("Text Level"); SVGElement iconPositive = getElement("IconPositive"); SVGElement iconNegative = getElement("IconNegative"); SVGElement iconDeactivated = getElement("IconDeactivated"); setText("Text number", String.valueOf(information.number)); setText("Text Level", String.format("%01d", status.currentLevel).replace("-", "")); setAttribute(background, "fill", "#00FF00"); setAttribute(border, "stroke", "#800080"); setAttribute(alarm, "display", "none"); setAttribute(iconPositive, "fill", "#007C00", 999); setAttribute(iconNegative, "fill", "#007C00", 999); setAttribute(iconDeactivated, "display", "none", 999); setAttribute(iconNegative, "display", "none", 999); setAttribute(iconPositive, "display", "none", 999); try { switch (status.status) { case DeviceStatus.STATUS_ONLINE: break; case DeviceStatus.STATUS_WARNING: break; case DeviceStatus.STATUS_ALARM: setAttribute(background, "fill", "#00FF00"); setAttribute(iconNegative, "fill", "#007C00", 999); setAttribute(iconPositive, "fill", "#007C00", 999); setAttribute(border, "stroke", "#007C00", 999); break; case DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#0000FF"); setAttribute(iconNegative, "fill", "#000080"); setAttribute(iconPositive, "fill", "#000080"); setAttribute(border, "stroke", "#000080"); break; case DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#B97A57"); setAttribute(iconNegative, "fill", "#5A3B2A"); setAttribute(iconPositive, "fill", "#5A3B2A"); setAttribute(border, "stroke", "#5A3B2A"); break; case DeviceStatus.STATUS_INVALID: case DeviceStatus.STATUS_OFFLINE: case DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); return; } } catch (Exception e) { } try { double strokeopacity = Math.pow(2, alarms.getServerityAlarm()) / 32; if (alarms.getServerityAlarm() > 0) { setAttribute(alarm, "stroke", "#FF0000"); setAttribute(alarm, "stroke-opacity", strokeopacity); setAttribute(alarm, "display", "inline"); } else { setAttribute(border, "stroke", "#007C00"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-opacity", 1.0); } } catch (Exception e) { } try { if (status.currentLevel > 0) { setAttribute(iconNegative, "display", "none", 999); setAttribute(iconPositive, "display", "inline", 999); } else if (status.currentLevel < 0) { setAttribute(iconPositive, "display", "none", 999); setAttribute(iconNegative, "display", "inline", 999); } else { setAttribute(iconDeactivated, "display", "inline"); setAttribute(background, "fill", "#808080"); setAttribute(border, "stroke", "#808080"); setAttribute(textLevel, "display", "none", 999); setAttribute(iconPositive, "display", "none", 999); setAttribute(iconNegative, "display", "none", 999); } } catch (Exception e) { } if (status.currentLevel == 0 && alarms.getServerityAlarm() <= 0) { setAttribute("SVG", "display", "none", 999); } } catch (Exception e) { art.library.gui.flat.FlatDialog.showDialog(null, "Error", e.getMessage(), true, art.library.gui.flat.FlatDialog.DIALOG_ERROR); } } // 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); // }