package org.ovirt.engine.ui.webadmin.widget.table.cell; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.ui.common.widget.table.cell.AbstractCell; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.ApplicationTemplates; import org.ovirt.engine.ui.webadmin.gin.AssetProvider; 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 BrickStatusCell extends AbstractCell<GlusterBrickEntity> { private static final ApplicationTemplates templates = AssetProvider.getTemplates(); private static final ApplicationResources resources = AssetProvider.getResources(); @Override public void render(Context context, GlusterBrickEntity brick, SafeHtmlBuilder sb, String id) { // Nothing to render if no brick is provided: if (brick == null) { return; } // Find the image corresponding to the status of the brick: GlusterStatus status = brick.getStatus(); ImageResource statusImage = null; switch (status) { case DOWN: statusImage = resources.downImage(); break; case UP: statusImage = resources.upImage(); break; case UNKNOWN: statusImage = resources.questionMarkImage(); break; default: statusImage = resources.downImage(); } // Generate the HTML for the image: SafeHtml statusImageHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML()); if (brick.getUnSyncedEntries() != null && brick.getUnSyncedEntries() > 0) { SafeHtml alertImageHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.alertImage()).getHTML()); sb.append(templates.statusWithAlertTemplate(statusImageHtml, alertImageHtml, id, status.toString())); } else { sb.append(templates.statusTemplate(statusImageHtml, id, status.toString())); } } }