package org.ovirt.engine.ui.userportal.client.binders.specific;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.ui.uicommon.models.Model;
import org.ovirt.engine.ui.uicommon.models.templates.TemplateGeneralModel;
import org.ovirt.engine.ui.userportal.client.binders.RendererType;
import org.ovirt.engine.ui.userportal.client.binders.interfaces.EntityModelBinder;
import org.ovirt.engine.ui.userportal.client.util.UserPortalTools;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.RecordList;
import com.smartgwt.client.widgets.viewer.DetailViewerField;
public class TemplateGeneralModelBinder implements EntityModelBinder {
TemplateGeneralModel model;
RendererType rendererType = RendererType.DetailViewer;
@Override
public RecordList calcRecords() {
Record r = new Record();
VmTemplate template = (VmTemplate)model.getEntity();
r.setAttribute("name", template.getname());
r.setAttribute("description", template.getdescription() == null ? "" : SafeHtmlUtils.fromString(UserPortalTools.getShortString(template.getdescription(), 50)).asString());
r.setAttribute("hostCluster", template.getvds_group_name());
r.setAttribute("os", UserPortalTools.getTranslatedEnum(template.getos()));
r.setAttribute("defaultDisplayType", UserPortalTools.getTranslatedEnum(template.getdefault_display_type()));
r.setAttribute("definedMemory", UserPortalTools.getSizeString(template.getmem_size_mb()));
r.setAttribute("cpuCores", model.getCpuInfo());
r.setAttribute("monitors", template.getnum_of_monitors());
r.setAttribute("usbPolicy", template.getusb_policy());
r.setAttribute("highlyAvailable", template.getauto_startup());
r.setAttribute("origin", UserPortalTools.getTranslatedEnum(template.getorigin()));
RecordList records = new RecordList();
records.add(r);
return records;
}
@Override
public void setModel(Model model) {
this.model = (TemplateGeneralModel)model;
}
@Override
public DetailViewerField[] getFields() {
return fields;
}
@Override
public Integer[] getNumOfRowsInColumn() {
return new Integer[] {5, 6};
}
private static DetailViewerField[] fields = {
new DetailViewerField("name", "Name"),
new DetailViewerField("description", "Description"),
new DetailViewerField("hostCluster", "Host Cluster"),
new DetailViewerField("os", "Operating System"),
new DetailViewerField("defaultDisplayType", "Default Display Type"),
new DetailViewerField("definedMemory", "Defined Memory"),
new DetailViewerField("cpuCores", "Number of CPU Cores"),
new DetailViewerField("numOfMonitors", "Number of Monitors"),
new DetailViewerField("highlyAvailable", "Highly Available"),
new DetailViewerField("monitors", "Number of Monitors"),
new DetailViewerField("origin","Origin")
};
@Override
public RendererType getRendererType() {
return rendererType;
}
}