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.controller.NodeHelper;
import org.erlide.tracing.core.mvc.model.TracedNode;
/**
* Provider responsible for displaying nodes in table.
*
* @author Piotr Dorobisz
*
*/
public class NodeLabelProvider extends LabelProvider implements ITableLabelProvider {
@Override
public Image getColumnImage(final Object element, final int index) {
final TracedNode node = (TracedNode) element;
if (index == NodeColumn.ENABLED.ordinal()) {
if (node.isEnabled()) {
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 TracedNode node = (TracedNode) element;
switch (NodeColumn.getByIndex(columnIndex)) {
case COOKIE:
return node.getCookie();
case ENABLED:
break;
case NODE_NAME:
return node.getNodeName();
case TYPE:
return NodeHelper.isExternal(node.getNodeName()) ? "external" : "erlide";
}
return "";
}
}