package org.ovirt.engine.ui.common.widget.uicommon.events; import java.util.Date; import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.searchbackend.AuditLogConditionFieldAutoCompleter; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.gin.AssetProvider; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.common.uicommon.model.SearchableTableModelProvider; import org.ovirt.engine.ui.common.widget.table.column.AbstractFullDateTimeColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; import org.ovirt.engine.ui.common.widget.table.column.AuditLogSeverityColumn; import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundTableWidget; import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; import com.google.gwt.event.shared.EventBus; /** * Table used to render {@link AuditLog} items of an {@link EventListModel}. * * @param <T> * Detail model type. */ public class EventListModelTable<T extends EventListModel> extends AbstractModelBoundTableWidget<AuditLog, T> { private static final CommonApplicationConstants constants = AssetProvider.getConstants(); public EventListModelTable( SearchableTableModelProvider<AuditLog, T> modelProvider, EventBus eventBus, ClientStorage clientStorage) { super(modelProvider, eventBus, clientStorage, false); } @Override public void initTable() { getTable().enableColumnResizing(); AuditLogSeverityColumn severityColumn = new AuditLogSeverityColumn(); severityColumn.setContextMenuTitle(constants.severityEvent()); getTable().addColumn(severityColumn, constants.empty(), "20px"); //$NON-NLS-1$ AbstractTextColumn<AuditLog> logTimeColumn = new AbstractFullDateTimeColumn<AuditLog>() { @Override protected Date getRawValue(AuditLog object) { return object.getLogTime(); } }; logTimeColumn.makeSortable(AuditLogConditionFieldAutoCompleter.TIME); getTable().addColumn(logTimeColumn, constants.timeEvent(), "170px"); //$NON-NLS-1$ AbstractTextColumn<AuditLog> messageColumn = new AbstractTextColumn<AuditLog>() { @Override public String getValue(AuditLog object) { return object.getMessage(); } }; messageColumn.makeSortable(AuditLogConditionFieldAutoCompleter.MESSAGE); getTable().addColumn(messageColumn, constants.messageEvent(), "600px"); //$NON-NLS-1$ AbstractTextColumn<AuditLog> correlationIdColumn = new AbstractTextColumn<AuditLog>() { @Override public String getValue(AuditLog object) { return object.getCorrelationId(); } }; correlationIdColumn.makeSortable(AuditLogConditionFieldAutoCompleter.CORRELATION_ID); getTable().addColumn(correlationIdColumn, constants.correltaionIdEvent(), "100px"); //$NON-NLS-1$ AbstractTextColumn<AuditLog> originColumn = new AbstractTextColumn<AuditLog>() { @Override public String getValue(AuditLog object) { return object.getOrigin(); } }; originColumn.makeSortable(AuditLogConditionFieldAutoCompleter.ORIGIN); getTable().addColumn(originColumn, constants.originEvent(), "100px"); //$NON-NLS-1$ AbstractTextColumn<AuditLog> customEventIdColumn = new AbstractTextColumn<AuditLog>() { @Override public String getValue(AuditLog object) { int id = object.getCustomEventId(); return id >= 0 ? String.valueOf(id) : ""; //$NON-NLS-1$ } }; customEventIdColumn.makeSortable(AuditLogConditionFieldAutoCompleter.CUSTOM_EVENT_ID); getTable().addColumn(customEventIdColumn, constants.customEventIdEvent(), "100px"); //$NON-NLS-1$ } }