package org.ovirt.engine.ui.webadmin.widget.table.column; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.ovirt.engine.core.common.businessentities.ExternalStatus; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.gin.AssetProvider; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.safehtml.shared.SafeHtml; public class StorageDomainAdditionalStatusColumn extends EntityAdditionalStatusColumn<StorageDomain> { private static final ApplicationConstants constants = AssetProvider.getConstants(); @Override public SafeHtml getEntityValue(StorageDomain object) { List<SafeHtml> imagesHtml = new ArrayList(getSafeHtmlStringMap(object).keySet()); if (! imagesHtml.isEmpty()) { return MultiImageColumnHelper.getValue(imagesHtml); } return null; } @Override public SafeHtml getEntityTooltip(StorageDomain object) { Map<SafeHtml, String> imagesToText = getSafeHtmlStringMap(object); if (!imagesToText.isEmpty()) { return MultiImageColumnHelper.getTooltip(imagesToText); } return null; } private Map<SafeHtml, String> getSafeHtmlStringMap(StorageDomain object) { StorageDomain storageDomain = getEntityObject(object); Map<SafeHtml, String> imagesToText = new LinkedHashMap<>(); ExternalStatus externalStatus = storageDomain.getExternalStatus(); if (externalStatus != null && externalStatus != ExternalStatus.Ok) { ImageResource statusImage = getStatusImage(externalStatus); if (statusImage != null) { imagesToText.put(getImageSafeHtml(statusImage), constants.ExternalStatus() + externalStatus.name()); } } if (storageDomain.isHostedEngineStorage()) { imagesToText.put(getImageSafeHtml(resources.mgmtNetwork()), constants.hostedEngineStorageTooltip()); } return imagesToText; } @Override protected StorageDomain getEntityObject(StorageDomain object) { return object; } }