package org.ovirt.engine.ui.common.widget.table.column; import java.util.Comparator; import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.ui.common.widget.table.cell.ScrollableTextCell; import org.ovirt.engine.ui.uicommonweb.models.storage.LunModel; import com.google.gwt.core.client.GWT; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.user.client.DOM; public abstract class AbstractLunTextColumn extends AbstractSafeHtmlColumn<LunModel> { @Override public final SafeHtml getValue(LunModel object) { // TODO this should use a cell to render, not return HTML itself ScrollableTextCell.CellTemplate template = GWT.create(ScrollableTextCell.CellTemplate.class); String color = ""; //$NON-NLS-1$ if (object != null) { if (object.getIsGrayedOut()) { color = "gray"; //$NON-NLS-1$ } else if (!object.getIsAccessible()) { color = "orange"; //$NON-NLS-1$ } else { color = "black"; //$NON-NLS-1$ } } // TODO use a proper ID return template.input(getRawValue(object), "color:" + color, DOM.createUniqueId()); //$NON-NLS-1$ } public abstract String getRawValue(LunModel object); public void makeSortable() { makeSortable(Comparator.comparing(this::getRawValue, new LexoNumericComparator())); } }