package org.ovirt.engine.ui.common.widget.table.column;
import java.util.Comparator;
import org.ovirt.engine.ui.common.CommonApplicationMessages;
import org.ovirt.engine.ui.common.gin.AssetProvider;
import org.ovirt.engine.ui.common.widget.table.cell.AbstractToggleButtonCell;
import org.ovirt.engine.ui.uicommonweb.models.storage.LunModel;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
public abstract class AbstractLunAvailableSizeColumn extends AbstractColumn<LunModel, LunModel> {
private static final CommonApplicationMessages messages = AssetProvider.getMessages();
public AbstractLunAvailableSizeColumn() {
super(new AbstractToggleButtonCell<LunModel>() {
@Override
public void onClickEvent(LunModel lunModel) {
if (lunModel !=null) {
lunModel.setAdditionalAvailableSizeSelected(!lunModel.isAdditionalAvailableSizeSelected());
}
}
@Override
public void render(Context context, LunModel value, SafeHtmlBuilder sb, String id) {
boolean isGrayedOut = value.getIsGrayedOut();
String inputId = id + "_input"; //$NON-NLS-1$
SafeHtml input = null;
int additionalAvailableSizeSize = value.getAdditionalAvailableSize();
String additionalAvailableSizeSizeString =
messages.additionalAvailableSizeInGB(additionalAvailableSizeSize);
if (additionalAvailableSizeSize == 0 || !value.getIsIncluded()) {
input = templates.disabled("", "color:gray", inputId); //$NON-NLS-1$
}
else if (!isGrayedOut) {
input = templates.disabled("", "color:black", inputId); //$NON-NLS-1$
}
else if (value.isAdditionalAvailableSizeSelected()) {
input = templates.toggledDown(inputId, additionalAvailableSizeSizeString);
}
else {
input = templates.toggledUp(inputId, additionalAvailableSizeSizeString);
}
sb.append(templates.span(id, input));
}
});
}
public void makeSortable() {
makeSortable(Comparator.comparingInt(LunModel::getAdditionalAvailableSize));
}
}