package com.amazonaws.eclipse.opsworks.explorer;
import java.util.List;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import com.amazonaws.eclipse.explorer.ExplorerNodeLabelProvider;
import com.amazonaws.eclipse.opsworks.OpsWorksPlugin;
import com.amazonaws.eclipse.opsworks.explorer.image.OpsWorksExplorerImages;
import com.amazonaws.eclipse.opsworks.explorer.node.AppsRootNode;
import com.amazonaws.eclipse.opsworks.explorer.node.LayerElementNode;
import com.amazonaws.eclipse.opsworks.explorer.node.LayersRootNode;
import com.amazonaws.eclipse.opsworks.explorer.node.OpsWorksRootNode;
import com.amazonaws.services.opsworks.model.App;
import com.amazonaws.services.opsworks.model.Instance;
import com.amazonaws.services.opsworks.model.Stack;
public class OpsWorksLabelProvider extends ExplorerNodeLabelProvider {
@Override
public Image getDefaultImage(Object element) {
ImageRegistry imageRegistry = OpsWorksPlugin.getDefault().getImageRegistry();
if ( element instanceof OpsWorksRootNode ) {
return imageRegistry.get(OpsWorksExplorerImages.IMG_SERVICE);
}
if ( element instanceof Stack ) {
return imageRegistry.get(OpsWorksExplorerImages.IMG_STACK);
}
if ( element instanceof LayerElementNode || element instanceof LayersRootNode ) {
return imageRegistry.get(OpsWorksExplorerImages.IMG_LAYER);
}
if ( element instanceof Instance ) {
return imageRegistry.get(OpsWorksExplorerImages.IMG_INSTANCE);
}
if ( element instanceof App || element instanceof AppsRootNode ) {
return imageRegistry.get(OpsWorksExplorerImages.IMG_APP);
}
return null;
}
@Override
public String getText(Object element) {
if ( element instanceof OpsWorksRootNode ) {
return "AWS OpsWorks";
}
if ( element instanceof Stack ) {
Stack stack = (Stack)element;
return stack.getName();
}
if ( element instanceof LayersRootNode ) {
LayersRootNode layerRoot = (LayersRootNode)element;
List<LayerElementNode> layers = layerRoot.getLayerNodes();
int count = layers == null ? 0 : layers.size();
if (count > 1) {
return count + " Layers";
} else {
return count + " Layer";
}
}
if ( element instanceof LayerElementNode ) {
LayerElementNode layerNode = (LayerElementNode)element;
return layerNode.getLayer().getName();
}
if ( element instanceof Instance ) {
Instance instance = (Instance)element;
return instance.getHostname();
}
if ( element instanceof AppsRootNode ) {
AppsRootNode appRoot = (AppsRootNode)element;
List<App> apps = appRoot.getApps();
int count = apps == null ? 0 : apps.size();
if (count > 1) {
return count + " Apps";
} else {
return count + " App";
}
}
if ( element instanceof App ) {
App app = (App)element;
return app.getName();
}
return getExplorerNodeText(element);
}
}