package org.ovirt.engine.ui.common.widget.table.column;
import org.ovirt.engine.core.common.businessentities.storage.Disk;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType;
import org.ovirt.engine.core.common.businessentities.storage.ImageStatus;
import org.ovirt.engine.ui.common.CommonApplicationConstants;
import org.ovirt.engine.ui.common.CommonApplicationResources;
import org.ovirt.engine.ui.common.gin.AssetProvider;
import org.ovirt.engine.ui.uicompat.EnumTranslator;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
public class DiskStatusColumn extends AbstractImageResourceColumn<Disk> {
private static final CommonApplicationResources resources = AssetProvider.getResources();
private static final CommonApplicationConstants constants = AssetProvider.getConstants();
@Override
public ImageResource getValue(Disk disk) {
if (disk.getDiskStorageType().equals(DiskStorageType.IMAGE) ||
disk.getDiskStorageType().equals(DiskStorageType.CINDER)) {
DiskImage diskImage = (DiskImage) disk;
if (diskImage.getImageStatus().equals(ImageStatus.LOCKED)) {
return new DiskImageStatusColumn().getValue(diskImage);
}
}
return disk.getPlugged() ? resources.upImage() : resources.downImage();
}
@Override
public SafeHtml getTooltip(Disk disk) {
String tooltipContent;
if (disk.getDiskStorageType().equals(DiskStorageType.IMAGE) ||
disk.getDiskStorageType().equals(DiskStorageType.CINDER)) {
DiskImage diskImage = (DiskImage) disk;
if (diskImage.getImageStatus().equals(ImageStatus.LOCKED)) {
tooltipContent = EnumTranslator.getInstance().translate(diskImage.getImageStatus());
return SafeHtmlUtils.fromString(tooltipContent);
}
}
tooltipContent = disk.getPlugged() ? constants.active() : constants.inactive();
return SafeHtmlUtils.fromString(tooltipContent);
}
}