package org.ovirt.engine.ui.webadmin.section.main.view.tab;
import java.util.Date;
import org.ovirt.engine.core.common.businessentities.AuditLog;
import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabEventPresenter;
import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabTableView;
import org.ovirt.engine.ui.webadmin.uicommon.model.MainModelProvider;
import org.ovirt.engine.ui.webadmin.widget.table.column.AuditLogSeverityColumn;
import org.ovirt.engine.ui.webadmin.widget.table.column.FullDateTimeColumn;
import org.ovirt.engine.ui.webadmin.widget.table.column.TextColumnWithTooltip;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
public class MainTabEventView extends AbstractMainTabTableView<AuditLog, EventListModel> implements MainTabEventPresenter.ViewDef {
interface ViewUiBinder extends UiBinder<Widget, MainTabEventView> {
ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
}
@UiField
RadioButton basicViewButton;
@UiField
RadioButton advancedViewButton;
@UiField
SimplePanel tablePanel;
@Inject
public MainTabEventView(MainModelProvider<AuditLog, EventListModel> modelProvider,
ApplicationConstants constants) {
super(modelProvider);
initTable();
initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
localize(constants);
tablePanel.setWidget(getTable());
basicViewButton.setValue(true);
}
void localize(ApplicationConstants constants) {
basicViewButton.setText(constants.eventBasicViewLabel());
advancedViewButton.setText(constants.eventAdvancedViewLabel());
}
@UiHandler({ "basicViewButton", "advancedViewButton" })
void handleViewButtonClick(ClickEvent event) {
boolean advancedViewEnabled = advancedViewButton.getValue();
getTable().ensureColumnPresent(AdvancedViewColumns.logTypeColumn, "Event ID", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.userColumn, "User", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.hostColumn, "Host", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.virtualMachineColumn, "Virtual Machine", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.templateColumn, "Template", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.dataCenterColumn, "Data Center", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.storageColumn, "Storage", advancedViewEnabled);
getTable().ensureColumnPresent(AdvancedViewColumns.clusterColumn, "Cluster", advancedViewEnabled);
}
void initTable() {
getTable().addColumn(new AuditLogSeverityColumn(), "", "30px");
TextColumnWithTooltip<AuditLog> logTimeColumn = new FullDateTimeColumn<AuditLog>() {
@Override
protected Date getRawValue(AuditLog object) {
return object.getlog_time();
}
};
getTable().addColumn(logTimeColumn, "Time");
TextColumnWithTooltip<AuditLog> messageColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getmessage();
}
};
getTable().addColumn(messageColumn, "Message");
}
}
class AdvancedViewColumns {
public static final TextColumnWithTooltip<AuditLog> logTypeColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return String.valueOf(object.getlog_typeValue());
}
};
public static final TextColumnWithTooltip<AuditLog> userColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getuser_name();
}
};
public static final TextColumnWithTooltip<AuditLog> hostColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getvds_name();
}
};
public static final TextColumnWithTooltip<AuditLog> virtualMachineColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getvm_name();
}
};
public static final TextColumnWithTooltip<AuditLog> templateColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getvm_template_name();
}
};
public static final TextColumnWithTooltip<AuditLog> dataCenterColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getstorage_pool_name();
}
};
public static final TextColumnWithTooltip<AuditLog> storageColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getstorage_domain_name();
}
};
public static final TextColumnWithTooltip<AuditLog> clusterColumn = new TextColumnWithTooltip<AuditLog>() {
@Override
public String getValue(AuditLog object) {
return object.getvds_group_name();
}
};
}