package rocks.inspectit.ui.rcp.ci.view; import java.util.Map.Entry; import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.graphics.Image; import rocks.inspectit.shared.cs.ci.AlertingDefinition; import rocks.inspectit.ui.rcp.editor.viewers.StyledCellIndexLabelProvider; import rocks.inspectit.ui.rcp.formatter.ImageFormatter; import rocks.inspectit.ui.rcp.provider.IAlertDefinitionProvider; /** * Label provider for the {@link AlertManagerViewPart}. * * @author Alexander Wert * */ public class AlertLabelProvider extends StyledCellIndexLabelProvider { /** * {@inheritDoc} */ @Override protected StyledString getStyledText(Object element, int index) { if (element instanceof IAlertDefinitionProvider) { AlertingDefinition alertDef = ((IAlertDefinitionProvider) element).getAlertDefinition(); switch (index) { case 0: return new StyledString(alertDef.getName()); case 1: StyledString styledString = new StyledString(); styledString.append(new StyledString(alertDef.getMeasurement() + "(" + alertDef.getField() + ")")); StringBuilder tagsString = new StringBuilder(); for (Entry<String, String> tagKeyValue : alertDef.getTags().entrySet()) { tagsString.append(", "); tagsString.append(tagKeyValue.getKey()); tagsString.append('='); tagsString.append(tagKeyValue.getValue()); } styledString.append(new StyledString(tagsString.toString(), StyledString.QUALIFIER_STYLER)); return styledString; case 2: return new StyledString(String.valueOf(alertDef.getThreshold())); default: return new StyledString(); } } return new StyledString(); } /** * {@inheritDoc} */ @Override protected Image getColumnImage(Object element, int index) { if (element instanceof IAlertDefinitionProvider) { switch (index) { case 0: return ImageFormatter.getAlertingDefinitionImage(((IAlertDefinitionProvider) element).getAlertDefinition()); default: return super.getColumnImage(element, index); } } return super.getColumnImage(element, index); } }