/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Colors; import art.library.model.devices.DeviceGraphicsRuntime; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGElement; /** * * @author Konstantin */ public class ColorsKielce extends DeviceGraphicsRuntime { public ColorsKielce(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } private int position = 0; public void timer() { position = (position + 1) % 2; realtimeGroups(); } public void status() { for (SVGElement element : getElementsContainingField("art.device")) { try { String deviceIdentifier = getAttribute(element, "art.device"); /*art.library.model.devices.Device device = art.client.models.Shared.model.modelDevices.getDevice(deviceIdentifier);*/ art.library.model.devices.Device device = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); if (device instanceof art.library.model.devices.colors.controller.M.M_Controller) { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); status(element, controller); } } catch (Exception exception) { } } realtimeGroups(); } public void status(SVGElement element, art.library.model.devices.colors.controller.M.M_Controller controller) { try { art.library.model.devices.colors.controller.M.M_ControllerStatus controllerStatus = controller.getDeviceStatus(); art.library.model.devices.colors.controller.M.M_ControllerAlarms controllerAlarms = controller.getDeviceAlarms(); art.library.model.devices.colors.controller.M.M_ControllerRealtime controllerRealtime = controller.getDeviceRealtime(); art.library.model.devices.colors.controller.M.M_ControllerConfiguration controllerConfiguration = controller.getDeviceConfiguration(); art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller subcontrollerStatus = null; art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeSubcontroller subcontrollerRealtime = null; art.library.model.devices.colors.controller.M.M_SubcontrollerConfiguration subcontrollerConfiguration = null; if (controller.status != null) { subcontrollerStatus = controller.getDeviceStatus().getStatusSubcontroller(); } if (controller.realtime != null) { subcontrollerRealtime = controller.getDeviceRealtime().getRealtimeSubcontroller(); } if (controller.configuration != null) { subcontrollerConfiguration = controller.getDeviceConfiguration().getSubcontroller(); } SVGElement thunderbolt = getElement(element, "art.id", "thunderbolt"); SVGElement emergency = getElement(element, "art.id", "emergency"); SVGElement lock = getElement(element, "art.id", "lock"); SVGElement calendar = getElement(element, "art.id", "calendar"); SVGElement run = getElement(element, "art.id", "run"); SVGElement remote = getElement(element, "art.id", "remote"); SVGElement background = getElement(element, "art.id", "background"); SVGElement border = getElement(element, "art.id", "border"); SVGElement ribbon = getElement(element, "art.id", "ribbon"); SVGElement textCycle = getElement(element, "art.id", "textCycle"); SVGElement textElapsed = getElement(element, "art.id", "textElapsed"); SVGElement textOffset = getElement(element, "art.id", "textOffset"); SVGElement textInformation = getElement(element, "art.id", "textInformation"); SVGElement elapsed1 = getElement(element, "art.id", "elapsed1"); SVGElement elapsed2 = getElement(element, "art.id", "elapsed2"); /* Initialise */ setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.10", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText(textInformation, ""); setText(textOffset, ""); setText(textCycle, ""); setText(textElapsed, ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(background, "fill", "#FF80FF"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(ribbon, "stroke-opacity", "0.125"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#B97A57"); setAttribute(ribbon, "stroke", "#B97A57"); setAttribute(border, "stroke", "#5A3B2A"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } /* User control */ if ((subcontrollerStatus.userControlManual == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.YES)) { setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#0000FF", 999); } else { setAttribute(thunderbolt, "fill-opacity", "0.15", 999); setAttribute(thunderbolt, "fill", "#808080", 999); } /* Manual control */ if (subcontrollerStatus.localControl == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.YES) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else if (subcontrollerStatus.localControl == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.NO) { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#808080", 999); } /* Emergency */ if (subcontrollerStatus.emergency == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.YES) { setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#FF0000", 999); } else if (subcontrollerStatus.emergency == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.NO) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#808080", 999); } /* Plan selection */ switch (subcontrollerStatus.planSelection) { case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER: { setAttribute(calendar, "fill-opacity", "0.15", 999); setAttribute(calendar, "fill", "#808080", 999); break; } case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_TIMETABLE: case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_EXTERNAL_PLANS: case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_ICF: { setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill", "#0000FF", 999); break; } } /* Computer */ if ((subcontrollerStatus.planSelection == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER) || (subcontrollerStatus.centralizedMode == art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.YES)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else if ((subcontrollerStatus.planSelection != art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER) && (subcontrollerStatus.centralizedMode != art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.YES)) { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#808080", 999); } /* Running */ if ((controllerStatus.groupsRealtime == art.library.model.devices.colors.controller.M.M_ControllerStatus.YES) || (controllerStatus.detectorsRealtime == art.library.model.devices.colors.controller.M.M_ControllerStatus.YES)) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else if ((controllerStatus.groupsRealtime == art.library.model.devices.colors.controller.M.M_ControllerStatus.NO) && (controllerStatus.detectorsRealtime == art.library.model.devices.colors.controller.M.M_ControllerStatus.NO)) { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#808080", 999); } /* Alarm */ double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.25); } /* Status */ switch (subcontrollerStatus.colorsMode) { case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.COLORS_OFF: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText(textInformation, "OFF"); return; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.COLORS_FLASHING: setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); setText(textInformation, "Y^"); return; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.COLORS_COLORS: setAttribute(background, "fill", "#FFFFFF"); setAttribute(ribbon, "stroke", "#FFFFFF"); setAttribute(elapsed2, "fill", "#0000FF"); break; } /* State, cycle */ art.library.model.devices.colors.controller.M.configuration.M_Plan plan = null; if (subcontrollerStatus.plan > 0) { try { plan = subcontrollerConfiguration.getMPlan(subcontrollerRealtime.plan); } catch (Exception e) { } } else { plan = subcontrollerStatus.recordablePlan; } if (plan != null) { String information = ""; switch (subcontrollerStatus.operationMode) { case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.OPERATIONMODE_FIXED: information = "F"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.OPERATIONMODE_SEMIACTUATED: information = "S"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.OPERATIONMODE_ACTUATED: information = "A"; break; } information = information + plan.number; switch (subcontrollerStatus.planSelection) { case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_TIMETABLE: information = information + "t"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_EXTERNAL_PLANS: information = information + "e"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_ICF: information = information + "i"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER: information = information + "c"; break; } switch (subcontrollerStatus.planSelectionComputer) { case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER_MACRO: information = information + ""; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER_PLAN_SELECTION: information = information + "+"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER_PLAN_GENERATION: information = information + "+"; break; case art.library.model.devices.colors.controller.M.M_ControllerStatusSubcontroller.PLANSELECTION_COMPUTER_ADAPTATIVE: information = information + "+"; break; } setText(textInformation, information); if (plan.offset > 0) { setText(textOffset, "" + plan.offset); } else { setText(textOffset, ""); } setText(textCycle, "" + plan.cycleTime); if (subcontrollerRealtime != null) { String text = subcontrollerRealtime.phase + ":" + subcontrollerRealtime.cycle; switch (subcontrollerRealtime.adjust) { case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeSubcontroller.ADJUST_POSITIVE: text = text + "+"; break; case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeSubcontroller.ADJUST_NEGATIVE: text = text + "-"; break; } setText(textElapsed, text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = (float) subcontrollerRealtime.cycle / (float) plan.cycleTime; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } } } catch (Exception exception) { } } public void realtimeGroups() { try { for (SVGElement element : getElementsContainingField("art.group")) { try { String deviceIdentifier = getAttribute(element, "art.controller"); /*art.library.model.devices.Device device = art.client.models.Shared.model.modelDevices.getDevice(deviceIdentifier);*/ art.library.model.devices.Device device = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) device; art.library.model.devices.colors.controller.M.M_ControllerRealtime controllerRealtime = controller.getDeviceRealtime(); realtimeGroup(element, controller, controllerRealtime); } catch (Exception exception) { } } } catch (Exception exception) { } } public void realtimeGroup(SVGElement group, art.library.model.devices.colors.controller.M.M_Controller controller, art.library.model.devices.colors.controller.M.M_ControllerRealtime controllerRealtime) { try { int number = getAttributeInteger(group, "art.group"); String type = getAttribute(group, "art.type"); art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup realTimeGroup = controllerRealtime.getStatusGroup(number); art.library.model.devices.colors.controller.M.status.M_ControllerStatusGroup groupStatus = controller.getDeviceStatus().getStatusGroup(number); if ((type != null) && (type.equalsIgnoreCase("stop"))) { realtimeGroupSTOP(realTimeGroup, group); } else if ((type != null) && (type.equalsIgnoreCase("go"))) { realtimeGroupGO(realTimeGroup, group); } else { setAttribute(group, "fill", getColor(realTimeGroup)); } } catch (Exception e) { setAttribute(group, "fill", "#C000C0"); } } public void realtimeGroupGO(art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup realTimeGroup, SVGElement group) { String color = getColor(realTimeGroup); setAttribute(group, "stroke", color, 99); String red = color.substring(1, 3); if (red.equals("00") == true) { setAttribute(group, "display", "inline", 99); } else { setAttribute(group, "display", "none", 99); } } public void realtimeGroupSTOP(art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup realTimeGroup, SVGElement group) { String color = getColor(realTimeGroup); setAttribute(group, "stroke", color, 99); String red = color.substring(1, 3); if (red.equals("00") == true) { setAttribute(group, "display", "none", 99); } else { setAttribute(group, "display", "inline", 99); } } private String getColor(art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup realTimeGroup) { if (position == 0) { switch (realTimeGroup.getColor()) { case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_OFF: return "#4B4B4B"; case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_YELLOW: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_GREEN: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLAHING_YELLOW: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELLOW_DOUBLE: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_GREEN_RED: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED_YELLOW: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELLOW_PROTECTION: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_GREEN_FLASHING_YELLOW_PROTECTION: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED_FLASHING_YELLOW_PROTECTION: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_SLOW_FLASHING_GREEN: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_SLOW_FLASHING_RED: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_YELLOW_DOUBLE: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_RED_FLASHING_YELLOW: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_YELLOW_DOUBLE_WITH_GREEN_SIGNAL: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELOW_DOUBLE_WITH_RED_SIGNAL: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_YELLOW: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_UNKNOWN: return ("#E000E0"); } } else { switch (realTimeGroup.getColor()) { case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_OFF: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_YELLOW: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_GREEN: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLAHING_YELLOW: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELLOW_DOUBLE: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_GREEN_RED: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED_YELLOW: return ("#E0E0000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELLOW_PROTECTION: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_GREEN_FLASHING_YELLOW_PROTECTION: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_RED_FLASHING_YELLOW_PROTECTION: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_SLOW_FLASHING_GREEN: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_SLOW_FLASHING_RED: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_YELLOW_DOUBLE: return ("#4B4B4B"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FAST_FLASHING_RED_FLASHING_YELLOW: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_FLASHING_YELLOW_DOUBLE_WITH_GREEN_SIGNAL: return ("#00E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_FLASHING_YELOW_DOUBLE_WITH_RED_SIGNAL: return ("#E00000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_GREEN_YELLOW: return ("#E0E000"); case art.library.model.devices.colors.controller.M.realtime.M_ControllerRealtimeGroup.M_GROUP_COLOR_UNKNOWN: return ("#E000E0"); } } return ("#FF00FF"); } }