package com.netifera.platform.net.wifi.ui.labels;
import org.eclipse.swt.graphics.Image;
import com.netifera.platform.api.model.IShadowEntity;
import com.netifera.platform.net.wifi.model.AccessPointEntity;
import com.netifera.platform.net.wifi.model.ExtendedServiceSetEntity;
import com.netifera.platform.ui.api.model.IEntityLabelProvider;
import com.netifera.platform.ui.images.ImageCache;
import com.netifera.platform.util.addresses.MACAddress;
public class WirelessLabelProvider implements IEntityLabelProvider {
private final static String PLUGIN_ID = "com.netifera.platform.net.wifi.ui";
private final ImageCache images = new ImageCache(PLUGIN_ID);
private static final String ESS_IMAGE = "icons/wifi.png";
private static final String AP_IMAGE = "icons/accesspoint.png";
public String getFullText(IShadowEntity e) {
return getText(e);
}
public Image getImage(IShadowEntity e) {
if(e instanceof ExtendedServiceSetEntity) {
return images.get(ESS_IMAGE);
} else if(e instanceof AccessPointEntity) {
return images.get(AP_IMAGE);
}
else {
return null;
}
}
public Image decorateImage(Image image, IShadowEntity e) {
return null;
}
public String getText(IShadowEntity e) {
if(e instanceof ExtendedServiceSetEntity) {
return ((ExtendedServiceSetEntity)e).getName();
} else if(e instanceof AccessPointEntity) {
return getAccessPointText((AccessPointEntity) e);
}
else {
return null;
}
}
private String getAccessPointText(AccessPointEntity ap) {
ExtendedServiceSetEntity ess = ap.getESS();
MACAddress bssid = ap.getBSSID();
return ess.getName() + " [" + bssid.toString() + "]";
}
public Integer getSortingCategory(IShadowEntity e) {
if(e instanceof AccessPointEntity)
return 0;
return null;
}
public Integer compare(IShadowEntity e1, IShadowEntity e2) {
if(e1 instanceof ExtendedServiceSetEntity && e2 instanceof ExtendedServiceSetEntity) {
return ((ExtendedServiceSetEntity)e1).getName().compareToIgnoreCase(
((ExtendedServiceSetEntity)e2).getName());
}
return null;
}
public void dispose() {
images.dispose();
}
}