package org.ovirt.engine.ui.userportal.client.binders.specific;
import java.util.ArrayList;
import org.ovirt.engine.core.common.businessentities.AuditLog;
import org.ovirt.engine.ui.uicommon.models.ListModel;
import org.ovirt.engine.ui.uicommon.models.Model;
import org.ovirt.engine.ui.uicommon.models.templates.TemplateEventListModel;
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.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.smartgwt.client.data.RecordList;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
public class TemplateEventListModelBinder 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();
ArrayList<AuditLog> logs = (ArrayList<AuditLog>)model.getItems();
if (logs != null) {
for (AuditLog auditLog : logs) {
ListGridRecord r = new ListGridRecord();
r.setAttribute("severity", auditLog.getseverity().name());
r.setAttribute("time", UserPortalTools.formatDateFull(auditLog.getlog_time()));
r.setAttribute("message", auditLog.getmessage() == null ? "" : SafeHtmlUtils.fromString(auditLog.getmessage()).asString());
records.add(r);
}
}
return records;
}
private static ListGridField[] fields = {
new ListGridField("severity", " ", 30) {{
setType(ListGridFieldType.IMAGE);
setImageURLPrefix("severity/");
setImageURLSuffix(".gif");
setImageHeight(12);
setImageWidth(14);
setAlign(Alignment.CENTER);
}},
new ListGridField("time", "Time", 120),
new ListGridField("message", "Message")
};
@Override
public RendererType getRendererType() {
return rendererType;
}
}