package org.erlide.tracing.core.mvc.view;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.erlide.tracing.core.Activator;
import org.erlide.tracing.core.Images;
import org.erlide.tracing.core.mvc.model.TracePattern;
/**
* Provider responsible for displaying trace patterns in table.
*
* @author Piotr Dorobisz
*
*/
public class TracePatternLabelProvider extends LabelProvider
implements ITableLabelProvider {
@Override
public Image getColumnImage(final Object element, final int index) {
final TracePattern pattern = (TracePattern) element;
if (index == TracePatternColumn.ENABLED.ordinal()) {
if (pattern.isEnabled()) {
return Activator.getDefault().getImageRegistry()
.get(Images.CHECKED.toString());
}
return Activator.getDefault().getImageRegistry()
.get(Images.UNCHECKED.toString());
} else if (index == TracePatternColumn.LOCAL.ordinal()) {
if (pattern.isLocal()) {
return Activator.getDefault().getImageRegistry()
.get(Images.CHECKED.toString());
}
return Activator.getDefault().getImageRegistry()
.get(Images.UNCHECKED.toString());
} else {
return null;
}
}
@Override
public String getColumnText(final Object element, final int index) {
final TracePattern tracePattern = (TracePattern) element;
switch (TracePatternColumn.getByIndex(index)) {
case ENABLED:
break;
case MODULE_NAME:
return tracePattern.getModuleName();
case FUNCTION_NAME:
return tracePattern.getFunctionName();
case ARITY:
if (tracePattern.getArity() < 0) {
return "";
}
return String.valueOf(tracePattern.getArity());
case LOCAL:
break;
case MATCH_SPEC:
return tracePattern.getMatchSpec().getFunctionString();
default:
break;
}
return "";
}
}