package com.netifera.platform.ui.spaces.views; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import com.netifera.platform.api.model.ISpace; import com.netifera.platform.api.probe.IProbe; import com.netifera.platform.ui.images.ImageCache; import com.netifera.platform.ui.internal.spaces.Activator; public class SpaceListLabelProvider extends LabelProvider implements ITableLabelProvider { private final static String OPEN_FOLDER = "icons/open.gif"; private final static String CLOSED_FOLDER = "icons/closed.gif"; 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"; public static final String PROBE_PLUGIN_ID = "com.netifera.platform.ui.probe"; private final ImageCache images = new ImageCache(Activator.PLUGIN_ID); private final ImageCache probeImages = new ImageCache(PROBE_PLUGIN_ID); public Image getColumnImage(Object element, int columnIndex) { final ISpace space = (ISpace) element; switch(columnIndex) { case 0: if(space.isOpened()) { return images.get(OPEN_FOLDER); } else { return images.get(CLOSED_FOLDER); } case 1: return getProbeStatusImage(space); default: return null; } } private Image getProbeStatusImage(ISpace space) { IProbe probe = getProbe(space); switch(probe.getConnectState()) { case CONNECTED: return probeImages.get(PROBE_CONNECTED); case CONNECTING: return probeImages.get(PROBE_CONNECTING); case DISCONNECTED: return probeImages.get(PROBE_DISCONNECTED); case CONNECT_FAILED: return probeImages.get(PROBE_FAILED); default: return null; } } public String getColumnText(Object element, int columnIndex) { if(!(element instanceof ISpace)) { return "??"; } final ISpace space = (ISpace) element; switch(columnIndex) { case 0: return space.getName() + " (" + space.entityCount() + ")"; case 1: IProbe probe = getProbe(space); return probe.getName(); default: return null; } } private IProbe getProbe(ISpace space) { return Activator.getDefault().getProbeManager().getProbeById(space.getProbeId()); } }