package com.netifera.platform.ui.probe.views;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import com.netifera.platform.api.probe.IProbe;
import com.netifera.platform.api.probe.IProbe.ConnectState;
import com.netifera.platform.ui.images.ImageCache;
import com.netifera.platform.ui.probe.Activator;
public class ProbeListLabelProvider extends LabelProvider implements ITableLabelProvider {
//private final static String PROBE_IMAGE = "icons/probe.png";
private final static String PROBE_DISCONNECTED = "icons/probe_disconnected.png";
private final static String PROBE_CONNECTING = "icons/probe_connecting.png";
private final static String PROBE_CONNECTED = "icons/probe_connected.png";
private final static String PROBE_FAILED = "icons/probe_failed.png";
private final ImageCache images = new ImageCache(Activator.PLUGIN_ID);
public Image getColumnImage(Object element, int columnIndex) {
if(columnIndex != 0) {
return null;
}
if(!(element instanceof IProbe)) {
return null;
}
final IProbe probe = (IProbe) element;
switch(probe.getConnectState()) {
case CONNECTED:
return images.get(PROBE_CONNECTED);
case CONNECTING:
return images.get(PROBE_CONNECTING);
case DISCONNECTED:
return images.get(PROBE_DISCONNECTED);
case CONNECT_FAILED:
return images.get(PROBE_FAILED);
}
return null;
}
public String getColumnText(Object element, int columnIndex) {
if(!(element instanceof IProbe)) {
return "??";
}
if(columnIndex != 1) {
return null;
}
final IProbe probe = (IProbe) element;
if(probe.getConnectState() == ConnectState.CONNECT_FAILED) {
return probe.getName() + " (" + probe.getConnectError() + ")";
} else {
return probe.getName();
}
}
}