package org.ovirt.engine.ui.webadmin.widget.tree;
import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
import org.ovirt.engine.ui.webadmin.ApplicationResources;
import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
public class SystemTreeItemCell extends AbstractCell<SystemTreeItemModel> {
private final ApplicationResources applicationResources;
private final ApplicationTemplates templates;
public SystemTreeItemCell(ApplicationResources applicationResources, ApplicationTemplates templates) {
this.applicationResources = applicationResources;
this.templates = templates;
}
@Override
public void render(Context context, SystemTreeItemModel value, SafeHtmlBuilder sb) {
ImageResource imageResource;
// get the right image resource
switch (value.getType()) {
case Cluster:
imageResource = applicationResources.clusterImage();
break;
case Clusters:
imageResource = applicationResources.clustersImage();
break;
case DataCenter:
imageResource = applicationResources.dataCenterImage();
break;
case Host:
imageResource = applicationResources.hostImage();
break;
case Hosts:
imageResource = applicationResources.hostsImage();
break;
case Storage:
imageResource = applicationResources.storageImage();
break;
case Storages:
imageResource = applicationResources.storagesImage();
break;
case System:
imageResource = applicationResources.systemImage();
break;
case Templates:
imageResource = applicationResources.templatesImage();
break;
case VMs:
imageResource = applicationResources.vmsImage();
break;
case Volumes:
imageResource = applicationResources.storagesImage();
break;
default:
imageResource = applicationResources.questionMarkImage();
}
// get the image HTML
SafeHtml imageHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(imageResource).getHTML());
// apply to template
sb.append(templates.treeItem(imageHtml, value.getTitle()));
}
}