package org.ovirt.engine.ui.webadmin.section.main.view.popup.storage;
import org.ovirt.engine.core.common.businessentities.ArchitectureType;
import org.ovirt.engine.core.common.businessentities.OriginType;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.ui.common.editor.UiCommonEditorDriver;
import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn;
import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn;
import org.ovirt.engine.ui.uicommonweb.models.storage.RegisterTemplateModel;
import org.ovirt.engine.ui.uicommonweb.models.vms.ImportTemplateData;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.ApplicationMessages;
import org.ovirt.engine.ui.webadmin.gin.AssetProvider;
import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.RegisterTemplatePopupPresenterWidget;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
public class RegisterTemplatePopupView extends RegisterEntityPopupView<VmTemplate, ImportTemplateData, RegisterTemplateModel>
implements RegisterTemplatePopupPresenterWidget.ViewDef {
interface Driver extends UiCommonEditorDriver<
RegisterTemplateModel,
RegisterEntityPopupView<VmTemplate, ImportTemplateData, RegisterTemplateModel>> {
}
private static final ApplicationConstants constants = AssetProvider.getConstants();
private static final ApplicationMessages messages = AssetProvider.getMessages();
@Inject
public RegisterTemplatePopupView(EventBus eventBus, Driver driver) {
super(eventBus, driver);
}
private VmTemplate getEntity(Object object) {
return ((ImportTemplateData) object).getTemplate();
}
@Override
protected void createEntityTable(RegisterTemplateModel model) {
AbstractTextColumn<Object> nameColumn = new AbstractTextColumn<Object>() {
@Override
public String getValue(Object object) {
return getEntity(object).getName();
}
};
entityTable.addColumn(nameColumn, constants.nameVm(), "150px"); //$NON-NLS-1$
AbstractTextColumn<Object> originColumn = new AbstractEnumColumn<Object, OriginType>() {
@Override
protected OriginType getRawValue(Object object) {
return getEntity(object).getOrigin();
}
};
entityTable.addColumn(originColumn, constants.originVm(), "100px"); //$NON-NLS-1$
AbstractTextColumn<Object> memoryColumn = new AbstractTextColumn<Object>() {
@Override
public String getValue(Object object) {
int size = getEntity(object).getMemSizeMb();
return messages.megabytes(String.valueOf(size));
}
};
entityTable.addColumn(memoryColumn, constants.memoryVm(), "100px"); //$NON-NLS-1$
AbstractTextColumn<Object> cpuColumn = new AbstractTextColumn<Object>() {
@Override
public String getValue(Object object) {
int numOfCpus = getEntity(object).getNumOfCpus();
return String.valueOf(numOfCpus);
}
};
entityTable.addColumn(cpuColumn, constants.cpusVm(), "50px"); //$NON-NLS-1$
AbstractTextColumn<Object> archColumn = new AbstractTextColumn<Object>() {
@Override
public String getValue(Object object) {
ArchitectureType clusterArch = getEntity(object).getClusterArch();
return String.valueOf(clusterArch);
}
};
entityTable.addColumn(archColumn, constants.architectureVm(), "100px"); //$NON-NLS-1$
AbstractTextColumn<Object> diskColumn = new AbstractTextColumn<Object>() {
@Override
public String getValue(Object object) {
int numOfDisks = getEntity(object).getDiskTemplateMap().size();
return String.valueOf(numOfDisks);
}
};
entityTable.addColumn(diskColumn, constants.disksVm(), "50px"); //$NON-NLS-1$
entityTable.addColumn(getClusterColumn(), constants.clusterVm(), "150px"); //$NON-NLS-1$
if (model.isQuotaEnabled()) {
entityTable.addColumn(getClusterQuotaColumn(), constants.quotaVm(), "150px"); //$NON-NLS-1$
}
}
@Override
protected void createInfoPanel(RegisterTemplateModel model) {
registerEntityInfoPanel = new RegisterTemplateInfoPanel(model);
entityInfoContainer.add(registerEntityInfoPanel);
}
@Override
public void edit(RegisterTemplateModel object) {
super.edit(object);
}
@Override
public RegisterTemplateModel flush() {
return super.flush();
}
}