/* * Licensed Materials - Property of Perforce Software, Inc. * © Copyright Perforce Software, Inc. 2014, 2021 * © Copyright IBM Corp. 2009, 2014 * © Copyright ILOG 1996, 2009 * All Rights Reserved. * * Note to U.S. Government Users Restricted Rights: * The Software and Documentation were developed at private expense and * are "Commercial Items" as that term is defined at 48 CFR 2.101, * consisting of "Commercial Computer Software" and * "Commercial Computer Software Documentation", as such terms are * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4, * as applicable. */ package monitoring.web.utils; import ilog.cpl.model.IlpObject; import ilog.tgo.model.IltAlarm; import ilog.tgo.model.IltAlarmSeverity; import ilog.tgo.model.IltObject; /** * This class provides client-side styling for a given object in a table. * <p> * The mapped properties are: * <ol> * <li>Icon URI * <li>Alarm color * <li>Alarm name * </ol> */ public class AlarmStylingUtils { // Icon URIs private static final String BASE_PATH = "/resources/images"; private static final String ALARM_PATH = BASE_PATH + "/alarms"; private static final String UNKNOWN_ICON = ALARM_PATH + "/unknown.gif"; private static final String CLEARED_ICON = ALARM_PATH + "/cleared.gif"; private static final String CRITICAL_ICON = ALARM_PATH + "/critical.gif"; private static final String MAJOR_ICON = ALARM_PATH + "/major.gif"; private static final String MINOR_ICON = ALARM_PATH + "/minor.gif"; private static final String WARNING_ICON = ALARM_PATH + "/warning.gif"; private static final String ACKNOWLEDGE_ICON = ALARM_PATH + "/acknowledge-alarm-icon.gif"; private static final String UNACKNOWLEDGE_ICON = ALARM_PATH + "/unacknowledge-alarm-icon.gif"; // Background color private static final String BACKGROUND_SELECTOR = "font-size: 12px; font-weight: bold; color:"; private static final String UNKNOWN_COLOR = BACKGROUND_SELECTOR + "rgb(150,150,150);"; private static final String CLEARED_COLOR = BACKGROUND_SELECTOR + "rgb(255,255,255);"; private static final String CRITICAL_COLOR = BACKGROUND_SELECTOR + "rgb(255,0,0);"; private static final String MAJOR_COLOR = BACKGROUND_SELECTOR + "rgb(255,0,0);"; private static final String MINOR_COLOR = BACKGROUND_SELECTOR + "rgb(255,160,0);"; private static final String WARNING_COLOR = BACKGROUND_SELECTOR + "rgb(245,215,40);"; /** * Returns the URI to the image to be used as representation of * a given alarm object. */ public static String getIconURI(IlpObject cell) { if (cell instanceof IltAlarm) { IltAlarmSeverity sev = ((IltAlarm) cell).getPerceivedSeverity(); if (IltAlarm.Severity.Cleared.equals(sev)) { return CLEARED_ICON; } else if (IltAlarm.Severity.Critical.equals(sev)) { return CRITICAL_ICON; } else if (IltAlarm.Severity.Major.equals(sev)) { return MAJOR_ICON; } else if (IltAlarm.Severity.Minor.equals(sev)) { return MINOR_ICON; } else if (IltAlarm.Severity.Warning.equals(sev)) { return WARNING_ICON; } } return UNKNOWN_ICON; } /** * Returns the URI to the image representing an acknowledge alarm */ public static String getAckIconURI(IlpObject cell) { if (cell instanceof IltAlarm) { return (((IltAlarm) cell).getAlarmAckState() ? ACKNOWLEDGE_ICON : UNACKNOWLEDGE_ICON); } return UNACKNOWLEDGE_ICON; } /** * Returns the severity HTML CSS styling color (background-color) * for the given alarm object. */ public static String getAlarmColor(IlpObject cell) { if (cell instanceof IltAlarm) { return getAlarmColorFromSeverity(((IltAlarm) cell) .getPerceivedSeverity()); } else if (cell instanceof IltObject) { Object st = ((IltObject) cell).getAlarmState(); if (null == st) { return UNKNOWN_COLOR; } else { return getAlarmColorFromSeverity(((IltObject) cell) .getAlarmState().getHighestAlarmSeverity()); } } return UNKNOWN_COLOR; } /** * Returns the severity name for the given alarm object. */ public static String getAlarmName(IlpObject cell) { if (cell instanceof IltAlarm) { return ((IltAlarm) cell).getPerceivedSeverity().getName(); } return IltAlarm.Severity.Unknown.getName(); } /** * Returns the alarm color that should be used for the provided severity. */ private static String getAlarmColorFromSeverity(IltAlarmSeverity sev) { if (IltAlarm.Severity.Cleared.equals(sev)) { return CLEARED_COLOR; } else if (IltAlarm.Severity.Critical.equals(sev)) { return CRITICAL_COLOR; } else if (IltAlarm.Severity.Major.equals(sev)) { return MAJOR_COLOR; } else if (IltAlarm.Severity.Minor.equals(sev)) { return MINOR_COLOR; } else if (IltAlarm.Severity.Warning.equals(sev)) { return WARNING_COLOR; } return UNKNOWN_COLOR; } }