package org.ovirt.engine.ui.webadmin.widget.table.column; import java.util.Comparator; 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.column.AbstractColumn; 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.BrickStatusCell; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlUtils; public class BrickStatusColumn extends AbstractColumn<GlusterBrickEntity, GlusterBrickEntity> { private static final ApplicationConstants constants = AssetProvider.getConstants(); private static final ApplicationMessages messages = AssetProvider.getMessages(); public BrickStatusColumn() { super(new BrickStatusCell()); } @Override public GlusterBrickEntity getValue(GlusterBrickEntity object) { return object; } public void makeSortable() { makeSortable(Comparator.comparingInt(g -> g.getStatus().ordinal())); } @Override public SafeHtml getTooltip(GlusterBrickEntity brick) { GlusterStatus status = brick.getStatus(); String tooltip = null; switch (status) { case DOWN: tooltip = constants.down(); break; case UP: tooltip = constants.up(); break; case UNKNOWN: tooltip = constants.unknown(); break; default: tooltip = constants.down(); } if (brick.getStatus() != GlusterStatus.DOWN && brick.getUnSyncedEntries() != null && brick.getUnSyncedEntries() > 0) { tooltip = messages.brickStatusWithUnSyncedEntriesPresent(tooltip, brick.getUnSyncedEntries()); } return SafeHtmlUtils.fromSafeConstant(tooltip); } }