package com.netifera.platform.ui.probe; import org.eclipse.swt.graphics.Image; import com.netifera.platform.api.model.IShadowEntity; import com.netifera.platform.api.probe.IProbe; import com.netifera.platform.api.probe.IProbeManagerService; import com.netifera.platform.model.ProbeEntity; import com.netifera.platform.ui.api.model.IEntityLabelProvider; import com.netifera.platform.ui.images.ImageCache; public class ProbeEntityLabelProvider implements IEntityLabelProvider { private final static String PLUGIN_ID = "com.netifera.platform.ui.probe"; private ImageCache images = new ImageCache(PLUGIN_ID); private final static String PROBE_CONNECTED = "icons/probe_connected.png"; private final static String PROBE_CONNECTING = "icons/probe_connecting.png"; private final static String PROBE_DISCONNECTED = "icons/probe_disconnected.png"; private final static String PROBE_FAILED = "icons/probe_failed.png"; public String getText(IShadowEntity e) { if (e instanceof ProbeEntity) { return "Remote Probe"; } return null; } public String getFullText(IShadowEntity e) { return getText(e); } public Image getImage(IShadowEntity e) { if(e instanceof ProbeEntity) { return getProbeImage((ProbeEntity) e); } return null; } public Image decorateImage(Image image, IShadowEntity e) { return null; } private Image getProbeImage(ProbeEntity probeEntity) { IProbeManagerService probeManager = Activator.getDefault().getProbeManager(); IProbe probe = probeManager.getProbeById(probeEntity.getProbeId()); 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 void dispose() { images.dispose(); } public Integer getSortingCategory(IShadowEntity e) { return null; } public Integer compare(IShadowEntity e1, IShadowEntity e2) { return null; } }