package com.netifera.platform.ui.probe.views; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; import com.netifera.platform.api.probe.IProbe; import com.netifera.platform.api.probe.IProbeManagerService; public class ProbeListContentProvider implements IStructuredContentProvider { private IProbeManagerService probeManager; public Object[] getElements(Object inputElement) { List<IProbe> probes = probeManager.getProbeList(); Collections.sort(probes, new Comparator<IProbe>() { public int compare(IProbe p1, IProbe p2) { if(p1.isLocalProbe()) { return -1; } if(p2.isLocalProbe()) { return 1; } if(p1.isConnected() && !p2.isConnected()) { return -1; } if(p2.isConnected() && !p1.isConnected()) { return 1; } return p1.getName().compareTo(p2.getName()); } }); return probes.toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { if(newInput instanceof IProbeManagerService) { probeManager = (IProbeManagerService) newInput; } } }