package org.ovirt.engine.ui.webadmin.section.main.view.tab;
import java.util.Date;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateListModel;
import org.ovirt.engine.ui.webadmin.idhandler.ElementIdHandler;
import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabTemplatePresenter;
import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabWithDetailsTableView;
import org.ovirt.engine.ui.webadmin.uicommon.model.MainModelProvider;
import org.ovirt.engine.ui.webadmin.widget.action.UiCommandButtonDefinition;
import org.ovirt.engine.ui.webadmin.widget.table.column.EnumColumn;
import org.ovirt.engine.ui.webadmin.widget.table.column.GeneralDateTimeColumn;
import org.ovirt.engine.ui.webadmin.widget.table.column.TextColumnWithTooltip;
import com.google.gwt.core.client.GWT;
import com.google.inject.Inject;
public class MainTabTemplateView extends AbstractMainTabWithDetailsTableView<VmTemplate, TemplateListModel> implements MainTabTemplatePresenter.ViewDef {
interface ViewIdHandler extends ElementIdHandler<MainTabTemplateView> {
ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
}
@Inject
public MainTabTemplateView(MainModelProvider<VmTemplate, TemplateListModel> modelProvider) {
super(modelProvider);
ViewIdHandler.idHandler.generateAndSetIds(this);
initTable();
initWidget(getTable());
}
void initTable() {
TextColumnWithTooltip<VmTemplate> nameColumn = new TextColumnWithTooltip<VmTemplate>() {
@Override
public String getValue(VmTemplate object) {
return object.getname();
}
};
getTable().addColumn(nameColumn, "Name");
TextColumnWithTooltip<VmTemplate> domainColumn = new TextColumnWithTooltip<VmTemplate>() {
@Override
public String getValue(VmTemplate object) {
return object.getdomain();
}
};
getTable().addColumn(domainColumn, "Domain");
TextColumnWithTooltip<VmTemplate> creationDateColumn = new GeneralDateTimeColumn<VmTemplate>() {
@Override
protected Date getRawValue(VmTemplate object) {
return object.getcreation_date();
}
};
getTable().addColumn(creationDateColumn, "Creation Date");
TextColumnWithTooltip<VmTemplate> statusColumn = new EnumColumn<VmTemplate, VmTemplateStatus>() {
@Override
protected VmTemplateStatus getRawValue(VmTemplate object) {
return object.getstatus();
}
};
getTable().addColumn(statusColumn, "Status");
TextColumnWithTooltip<VmTemplate> clusterColumn = new TextColumnWithTooltip<VmTemplate>() {
@Override
public String getValue(VmTemplate object) {
return object.getvds_group_name();
}
};
getTable().addColumn(clusterColumn, "Cluster");
TextColumnWithTooltip<VmTemplate> descriptionColumn = new TextColumnWithTooltip<VmTemplate>() {
@Override
public String getValue(VmTemplate object) {
return object.getdescription();
}
};
getTable().addColumn(descriptionColumn, "Description");
getTable().addActionButton(new UiCommandButtonDefinition<VmTemplate>("Edit") {
@Override
protected UICommand resolveCommand() {
return getMainModel().getEditCommand();
}
});
getTable().addActionButton(new UiCommandButtonDefinition<VmTemplate>("Remove") {
@Override
protected UICommand resolveCommand() {
return getMainModel().getRemoveCommand();
}
});
// TODO: separator
getTable().addActionButton(new UiCommandButtonDefinition<VmTemplate>("Export") {
@Override
protected UICommand resolveCommand() {
return getMainModel().getExportCommand();
}
});
getTable().addActionButton(new UiCommandButtonDefinition<VmTemplate>("Copy") {
@Override
protected UICommand resolveCommand() {
return getMainModel().getCopyCommand();
}
});
}
}