package fr.opensagres.mongodb.ide.ui.viewers;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import fr.opensagres.mongodb.ide.core.model.Server;
import fr.opensagres.mongodb.ide.core.model.TreeSimpleNode;
import fr.opensagres.mongodb.ide.ui.internal.ImageResources;
@SuppressWarnings("rawtypes")
public class MongoLabelProvider extends LabelProvider {
private static MongoLabelProvider instance;
public static MongoLabelProvider getInstance() {
synchronized (MongoLabelProvider.class) {
if (instance == null) {
instance = new MongoLabelProvider();
}
return instance;
}
}
@Override
public String getText(Object element) {
return ((TreeSimpleNode) element).getLabel();
}
@Override
public Image getImage(Object element) {
TreeSimpleNode node = (TreeSimpleNode) element;
switch (node.getType()) {
case Server:
Server server = (Server) element;
switch (server.getServerState()) {
case Started:
return ImageResources
.getImage(ImageResources.IMG_SERVER_STARTED_16);
case Stopped:
return ImageResources
.getImage(ImageResources.IMG_SERVER_STOPPED_16);
default:
return ImageResources.getImage(ImageResources.IMG_SERVER_16);
}
case Database:
return ImageResources.getImage(ImageResources.IMG_DATABASE_16);
case Collection:
return ImageResources.getImage(ImageResources.IMG_COLLECTION_16);
case Document:
return ImageResources.getImage(ImageResources.IMG_DOCUMENT_16);
case Error:
return ImageResources.getImage(ImageResources.IMG_ERROR_16);
case CollectionsCategory:
case GridFSCategory:
case StoredJavascriptCategory:
case IndexesCategory:
return ImageResources.getImage(ImageResources.IMG_CATEGORY_16);
case Users:
return ImageResources.getImage(ImageResources.IMG_USERS_16);
case Index:
return ImageResources.getImage(ImageResources.IMG_INDEX_16);
case GridFSBucket:
return ImageResources.getImage(ImageResources.IMG_GRIDFS_16);
default:
return null;
}
}
}