package org.ovirt.engine.ui.common.widget.table.column;
import java.util.Comparator;
import org.ovirt.engine.core.common.businessentities.Permission;
import org.ovirt.engine.core.common.businessentities.RoleType;
import org.ovirt.engine.ui.common.CommonApplicationConstants;
import org.ovirt.engine.ui.common.CommonApplicationResources;
import org.ovirt.engine.ui.common.gin.AssetProvider;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
/**
* Image column that corresponds to XAML {@code PermissionTypeDataTemplate}.
*/
public class PermissionTypeColumn extends AbstractImageResourceColumn<Permission> {
private static final CommonApplicationResources resources = AssetProvider.getResources();
private static final CommonApplicationConstants constants = AssetProvider.getConstants();
public PermissionTypeColumn() {
makeSortable(Comparator.comparing(p -> !resources.userImage().equals(getValue(p))));
}
@Override
public ImageResource getValue(Permission user) {
switch (user.getRoleType()) {
case ADMIN:
return resources.adminImage();
case USER:
return resources.userImage();
default:
return resources.userImage();
}
}
@Override
public SafeHtml getTooltip(Permission user) {
if (user.getRoleType() == RoleType.ADMIN) {
return SafeHtmlUtils.fromSafeConstant(constants.admin());
}
return SafeHtmlUtils.fromSafeConstant(constants.user());
}
}