package org.ovirt.engine.ui.webadmin.section.main.view.tab.pool;
import javax.inject.Inject;
import org.ovirt.engine.core.common.businessentities.vm_pools;
import org.ovirt.engine.ui.uicommonweb.models.pools.PoolGeneralModel;
import org.ovirt.engine.ui.uicommonweb.models.pools.PoolListModel;
import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.pool.SubTabPoolGeneralPresenter;
import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabFormView;
import org.ovirt.engine.ui.webadmin.uicommon.model.DetailModelProvider;
import org.ovirt.engine.ui.webadmin.widget.form.FormBuilder;
import org.ovirt.engine.ui.webadmin.widget.form.FormItem;
import org.ovirt.engine.ui.webadmin.widget.form.GeneralFormPanel;
import org.ovirt.engine.ui.webadmin.widget.label.TextBoxLabel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.SimpleBeanEditorDriver;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
public class SubTabPoolGeneralView extends AbstractSubTabFormView<vm_pools, PoolListModel, PoolGeneralModel> implements SubTabPoolGeneralPresenter.ViewDef, Editor<PoolGeneralModel> {
interface ViewUiBinder extends UiBinder<Widget, SubTabPoolGeneralView> {
ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
}
interface Driver extends SimpleBeanEditorDriver<PoolGeneralModel, SubTabPoolGeneralView> {
Driver driver = GWT.create(Driver.class);
}
TextBoxLabel cpuInfo = new TextBoxLabel();
TextBoxLabel defaultDisplayType = new TextBoxLabel();
TextBoxLabel defaultHost = new TextBoxLabel();
TextBoxLabel definedMemory = new TextBoxLabel();
TextBoxLabel description = new TextBoxLabel();
TextBoxLabel domain = new TextBoxLabel();
TextBoxLabel minAllocatedMemory = new TextBoxLabel();
TextBoxLabel name = new TextBoxLabel();
TextBoxLabel origin = new TextBoxLabel();
TextBoxLabel oS = new TextBoxLabel();
TextBoxLabel storageDomain = new TextBoxLabel();
TextBoxLabel template = new TextBoxLabel();
TextBoxLabel timeZone = new TextBoxLabel();
TextBoxLabel usbPolicy = new TextBoxLabel();
@Ignore
// TODO: primitive field
TextBoxLabel isStateless = new TextBoxLabel();
@Ignore
// TODO: primitive field
TextBoxLabel monitorCount = new TextBoxLabel();
@UiField(provided = true)
GeneralFormPanel formPanel;
FormBuilder formBuilder;
@Inject
public SubTabPoolGeneralView(DetailModelProvider<PoolListModel, PoolGeneralModel> modelProvider) {
super(modelProvider);
// Init formPanel
formPanel = new GeneralFormPanel();
initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
Driver.driver.initialize(this);
// Build a form using the FormBuilder
formBuilder = new FormBuilder(formPanel, 3, 6);
formBuilder.setColumnsWidth("120px", "240px", "160px");
formBuilder.addFormItem(new FormItem("Name", name, 0, 0));
formBuilder.addFormItem(new FormItem("Description", description, 1, 0));
formBuilder.addFormItem(new FormItem("Template", template, 2, 0));
formBuilder.addFormItem(new FormItem("Operating System", oS, 3, 0));
formBuilder.addFormItem(new FormItem("Default Display Type", defaultDisplayType, 4, 0));
formBuilder.addFormItem(new FormItem("Defined Memory", definedMemory, 0, 1));
formBuilder.addFormItem(new FormItem("Physical Memory Guaranteed", minAllocatedMemory, 1, 1));
formBuilder.addFormItem(new FormItem("Number of CPU Cores", cpuInfo, 2, 1));
formBuilder.addFormItem(new FormItem("Number of Monitors", monitorCount, 3, 1));
formBuilder.addFormItem(new FormItem("USB Policy", usbPolicy, 4, 1));
formBuilder.addFormItem(new FormItem("Resides on Storage Domain", storageDomain, 5, 1, "HasStorageDomain") {
@Override
public boolean isVisible() {
return getDetailModel().getHasStorageDomain();
}
});
formBuilder.addFormItem(new FormItem("Origin", origin, 0, 2));
formBuilder.addFormItem(new FormItem("Is Stateless", isStateless, 1, 2));
formBuilder.addFormItem(new FormItem("Run On", defaultHost, 2, 2));
formBuilder.addFormItem(new FormItem("Domain", domain, 3, 2, "HasDomain") {
@Override
public boolean isVisible() {
return getDetailModel().getHasDomain();
}
});
formBuilder.addFormItem(new FormItem("Time Zone", timeZone, 4, 2, "HasTimeZone") {
@Override
public boolean isVisible() {
return getDetailModel().getHasTimeZone();
}
});
}
@Override
public void setMainTabSelectedItem(vm_pools selectedItem) {
Driver.driver.edit(getDetailModel());
// TODO required because of GWT#5864
monitorCount.setText(String.valueOf(getDetailModel().getMonitorCount()));
isStateless.setText(Boolean.toString(getDetailModel().getIsStateless()));
formBuilder.showForm(getDetailModel(), Driver.driver);
}
}