package org.ovirt.engine.ui.userportal.client.binders.specific;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.businessentities.VolumeType;
import org.ovirt.engine.ui.uicommon.models.ListModel;
import org.ovirt.engine.ui.uicommon.models.Model;
import org.ovirt.engine.ui.uicompat.EnumTranslator;
import org.ovirt.engine.ui.uicompat.Translator;
import org.ovirt.engine.ui.userportal.client.binders.RendererType;
import org.ovirt.engine.ui.userportal.client.binders.interfaces.ListModelBinder;
import org.ovirt.engine.ui.userportal.client.util.UserPortalTools;
import com.smartgwt.client.data.RecordList;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
public class PoolDiskListModelBinder implements ListModelBinder {
ListModel model;
RendererType rendererType = RendererType.Grid;
@Override
public void setModel(Model model) {
this.model = (ListModel)model;
}
@Override
public ListGridField[] getFields() {
return fields;
}
@Override
public RecordList calcRecords() {
RecordList records = new RecordList();
Iterable<DiskImage> disks = (Iterable)model.getItems();
Translator translator = EnumTranslator.Create(VolumeType.class);
if (disks != null) {
for (DiskImage disk : disks) {
ListGridRecord r = new ListGridRecord();
r.setAttribute("name", "Disk " + disk.getinternal_drive_mapping());
r.setAttribute("size", (disk.getsize() / (1024*1024*1024)) + "GB");
r.setAttribute("actualSize", ((Double)disk.getActualDiskWithSnapshotsSize()).intValue() + "GB");
r.setAttribute("type", disk.getdisk_type().toString());
r.setAttribute("format", disk.getvolume_format().toString());
r.setAttribute("allocation", translator.get(disk.getvolume_type()));
r.setAttribute("interface", disk.getdisk_interface().toString());
r.setAttribute("dateCreated", UserPortalTools.formatDate(disk.getcreation_date()));
r.setAttribute("entity", disk);
r.setAttribute("entityGuid", disk.getId());
records.add(r);
}
}
return records;
}
private static ListGridField[] fields = {
new ListGridField("name", "Name", 120),
new ListGridField("size", "Size", 120),
new ListGridField("actualSize", "Actual Size", 120),
new ListGridField("type", "Type", 120),
new ListGridField("format", "Format", 120),
new ListGridField("allocation", "Allocation", 120),
new ListGridField("interface", "Interface", 120),
new ListGridField("dateCreated", "Date Created", 120)
};
@Override
public RendererType getRendererType() {
return rendererType;
}
}