package rocks.inspectit.ui.rcp.ci.view; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import rocks.inspectit.shared.cs.ci.business.impl.ApplicationDefinition; import rocks.inspectit.ui.rcp.editor.viewers.StyledCellIndexLabelProvider; import rocks.inspectit.ui.rcp.formatter.ImageFormatter; import rocks.inspectit.ui.rcp.formatter.TextFormatter; import rocks.inspectit.ui.rcp.model.ci.ApplicationLeaf; import rocks.inspectit.ui.rcp.provider.IApplicationProvider; /** * Label provider for {@link ApplicationLeaf} instances. * * @author Alexander Wert * */ public class ApplicationLabelProvider extends StyledCellIndexLabelProvider { /** * Empty. */ private static final StyledString EMPTY = new StyledString(); /** * {@inheritDoc} */ @Override protected StyledString getStyledText(Object element, int index) { if (element instanceof IApplicationProvider) { ApplicationDefinition appDef = ((IApplicationProvider) element).getApplication(); switch (index) { case 0: return new StyledString(appDef.getApplicationName()); case 1: return new StyledString(String.valueOf(appDef.getBusinessTransactionDefinitions().size())); case 2: return new StyledString(TextFormatter.clearLineBreaks(StringUtils.defaultString(appDef.getDescription()))); default: return EMPTY; } } return EMPTY; } /** * {@inheritDoc} */ @Override protected Image getColumnImage(Object element, int index) { if (element instanceof IApplicationProvider) { ApplicationDefinition appDef = ((IApplicationProvider) element).getApplication(); switch (index) { case 0: return ImageFormatter.getApplicationDefinitionImage(appDef); default: return super.getColumnImage(element, index); } } return super.getColumnImage(element, index); } /** * {@inheritDoc} */ @Override protected Color getForeground(Object element, int index) { if (element instanceof IApplicationProvider) { ApplicationDefinition appDefinition = ((IApplicationProvider) element).getApplication(); if (appDefinition.getId() == ApplicationDefinition.DEFAULT_ID) { return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN); } } return super.getForeground(element, index); } }