package org.ovirt.engine.ui.common.widget.uicommon.vm;
import java.util.Comparator;
import org.ovirt.engine.ui.common.widget.CellClickHandler;
import org.ovirt.engine.ui.common.widget.HasCellClickHandlers;
import org.ovirt.engine.ui.common.widget.table.column.AbstractColumn;
import org.ovirt.engine.ui.uicommonweb.models.vms.VmDeviceFeEntity;
import com.google.gwt.event.shared.HandlerRegistration;
public class HotUnplugColumn extends AbstractColumn<VmDeviceFeEntity, VmDeviceFeEntity> implements HasCellClickHandlers<VmDeviceFeEntity> {
public HotUnplugColumn() {
super(new HotUnplugCell());
makeSortable(new Comparator<VmDeviceFeEntity>() {
@Override
public int compare(VmDeviceFeEntity device1, VmDeviceFeEntity device2) {
return toSortingIndex(device1) - toSortingIndex(device2);
}
private int toSortingIndex(VmDeviceFeEntity vmDevice) {
return (vmDevice == null || !HotUnplugCell.isHotUnpluggable(vmDevice.getVmDevice()))
? 0
: 1;
}
});
}
@Override
public HotUnplugCell getCell() {
return (HotUnplugCell) super.getCell();
}
@Override
public HandlerRegistration addHandler(CellClickHandler<VmDeviceFeEntity> handler) {
return getCell().addHandler(handler);
}
@Override
public VmDeviceFeEntity getValue(VmDeviceFeEntity device) {
return device;
}
}