package org.ovirt.engine.ui.userportal.widget;
import org.ovirt.engine.core.common.businessentities.QuotaUsagePerUser;
import org.ovirt.engine.core.common.utils.SizeConverter;
import org.ovirt.engine.ui.common.widget.renderer.DiskSizeRenderer;
import com.google.gwt.safehtml.shared.SafeHtml;
public class QuotaStorageProgressBar extends QuotaProgressBar {
public QuotaStorageProgressBar(QuotaUsagePerUser quotaUsagePerUser) {
super(quotaUsagePerUser);
}
public QuotaStorageProgressBar() {
super();
}
private static final DiskSizeRenderer<Number> diskSizeRenderer =
new DiskSizeRenderer<>(SizeConverter.SizeUnit.GiB);
@Override
protected void setValuesByType(QuotaUsagePerUser quotaUsagePerUser) {
setValues(quotaUsagePerUser.getStorageLimit(),
quotaUsagePerUser.getStorageTotalUsage() - quotaUsagePerUser.getStorageUsageForUser(),
quotaUsagePerUser.getStorageUsageForUser());
}
@Override
public SafeHtml getTooltip() {
if (quotaUsagePerUser.getStorageLimit() == UNLIMITED) {
return null;
}
return templateWithLabels(renderStorage(quotaUsagePerUser.getStorageLimit()),
(int) (quotaUsagePerUser.getOthersStorageUsagePercentage() + quotaUsagePerUser.getUserStorageUsagePercentage()),
renderStorage(quotaUsagePerUser.getStorageTotalUsage()),
(int) quotaUsagePerUser.getUserStorageUsagePercentage(),
renderStorage(quotaUsagePerUser.getStorageUsageForUser()),
(int) quotaUsagePerUser.getOthersStorageUsagePercentage(),
renderStorage(quotaUsagePerUser.getStorageTotalUsage() - quotaUsagePerUser.getStorageUsageForUser()),
(int) Math.max(100 - (quotaUsagePerUser.getOthersStorageUsagePercentage() + quotaUsagePerUser.getUserStorageUsagePercentage()),
0),
renderStorage(quotaUsagePerUser.getFreeStorage()));
}
private String renderStorage(double storage) {
return storage <= 0 ? "0" : diskSizeRenderer.render(storage); //$NON-NLS-1$
}
}