package org.ovirt.engine.ui.webadmin.widget.table.column;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
import org.ovirt.engine.ui.common.widget.table.column.AbstractColumn;
import org.ovirt.engine.ui.frontend.utils.GlusterVolumeUtils;
import org.ovirt.engine.ui.frontend.utils.GlusterVolumeUtils.VolumeStatus;
import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.ApplicationMessages;
import org.ovirt.engine.ui.webadmin.gin.AssetProvider;
import org.ovirt.engine.ui.webadmin.widget.table.cell.VolumeStatusCell;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
public class VolumeStatusColumn extends AbstractColumn<GlusterVolumeEntity, GlusterVolumeEntity> {
private static final ApplicationConstants constants = AssetProvider.getConstants();
private static final ApplicationMessages messages = AssetProvider.getMessages();
public VolumeStatusColumn() {
super(new VolumeStatusCell());
}
public VolumeStatusColumn(UICommand onClickCommand) {
super(new VolumeStatusCell(onClickCommand));
}
@Override
public GlusterVolumeEntity getValue(GlusterVolumeEntity object) {
return object;
}
@Override
public SafeHtml getTooltip(GlusterVolumeEntity volume) {
if (volume == null) {
return null;
}
VolumeStatus status = GlusterVolumeUtils.getVolumeStatus(volume);
String tooltip = null;
switch (status) {
case DOWN:
tooltip = constants.down();
break;
case UP:
tooltip = constants.up();
break;
case SOME_BRICKS_DOWN:
tooltip = constants.volumeBricksDown();
break;
case ALL_BRICKS_DOWN:
tooltip = constants.volumeAllBricksDown();
break;
default:
tooltip = constants.down();
}
if ((status == VolumeStatus.UP || status == VolumeStatus.SOME_BRICKS_DOWN)
&& GlusterVolumeUtils.isHealingRequired(volume)) {
tooltip = messages.needsGlusterHealingWithVolumeStatus(tooltip);
}
return SafeHtmlUtils.fromSafeConstant(tooltip);
}
}