package rocks.inspectit.ui.rcp.ci.view;
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.Profile;
import rocks.inspectit.ui.rcp.InspectIT;
import rocks.inspectit.ui.rcp.InspectITImages;
import rocks.inspectit.ui.rcp.editor.viewers.StyledCellIndexLabelProvider;
import rocks.inspectit.ui.rcp.formatter.ImageFormatter;
import rocks.inspectit.ui.rcp.formatter.NumberFormatter;
import rocks.inspectit.ui.rcp.formatter.TextFormatter;
import rocks.inspectit.ui.rcp.provider.IProfileProvider;
/**
* Profile label provider.
*
* @author Ivan Senic
*
*/
class ProfileLabelProvider extends StyledCellIndexLabelProvider {
/**
* Empty.
*/
private static final StyledString EMPTY = new StyledString();
/**
* {@inheritDoc}
*/
@Override
protected StyledString getStyledText(Object element, int index) {
if (element instanceof IProfileProvider) {
Profile profile = ((IProfileProvider) element).getProfile();
switch (index) {
case 0:
return new StyledString(profile.getName());
case 1:
if (null != profile.getUpdatedDate()) {
return new StyledString(NumberFormatter.formatTime(profile.getUpdatedDate()));
} else {
return new StyledString(NumberFormatter.formatTime(profile.getCreatedDate()));
}
case 5:
return TextFormatter.emptyStyledStringIfNull(TextFormatter.clearLineBreaks(profile.getDescription()));
default:
return EMPTY;
}
}
return EMPTY;
}
/**
* {@inheritDoc}
*/
@Override
protected Image getColumnImage(Object element, int index) {
if (element instanceof IProfileProvider) {
Profile profile = ((IProfileProvider) element).getProfile();
switch (index) {
case 0:
return ImageFormatter.getProfileImage(profile);
case 2:
return profile.isActive() ? InspectIT.getDefault().getImage(InspectITImages.IMG_CHECKMARK) : null; // NOPMD
case 3:
return profile.isDefaultProfile() ? InspectIT.getDefault().getImage(InspectITImages.IMG_CHECKMARK) : null; // NOPMD
case 4:
return ImageFormatter.getProfileDataImage(profile.getProfileData());
default:
return super.getColumnImage(element, index);
}
}
return super.getColumnImage(element, index);
}
/**
* {@inheritDoc}
*/
@Override
protected Color getForeground(Object element, int index) {
if (element instanceof IProfileProvider) {
Profile profile = ((IProfileProvider) element).getProfile();
if (profile.isCommonProfile()) {
return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_CYAN);
}
}
return super.getForeground(element, index);
}
}