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.ProcessFlag;
import org.erlide.tracing.core.mvc.model.TracedProcess;
public class ProcessLabelProvider extends LabelProvider implements ITableLabelProvider {
@Override
public Image getColumnImage(final Object element, final int columnIndex) {
final TracedProcess process = (TracedProcess) element;
if (ProcessColumn.SELECTED.ordinal() == columnIndex) {
// process columns
if (process.isSelected()) {
return Activator.getDefault().getImageRegistry()
.get(Images.CHECKED.toString());
}
return Activator.getDefault().getImageRegistry()
.get(Images.UNCHECKED.toString());
}
// flag columns
final ProcessFlag flag = ProcessFlag
.getByIndex(columnIndex - ProcessColumn.values().length);
if (flag != null) {
if (process.hasFlag(flag)) {
return Activator.getDefault().getImageRegistry()
.get(Images.CHECKED.toString());
}
return Activator.getDefault().getImageRegistry()
.get(Images.UNCHECKED.toString());
}
return null;
}
@Override
public String getColumnText(final Object element, final int columnIndex) {
final TracedProcess process = (TracedProcess) element;
if (columnIndex < ProcessColumn.values().length) {
switch (ProcessColumn.getByIndex(columnIndex)) {
case SELECTED:
break;
case NAME:
return process.getName();
case NODE:
return process.getNode();
case INITIAL_CALL:
return process.getInitialCall();
}
}
return "";
}
}