package org.ovirt.engine.ui.webadmin.section.main.view.tab.template; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateListModel; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.template.SubTabTemplateGeneralPresenter; 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; import com.google.inject.Inject; public class SubTabTemplateGeneralView extends AbstractSubTabFormView<VmTemplate, TemplateListModel, TemplateGeneralModel> implements SubTabTemplateGeneralPresenter.ViewDef, Editor<TemplateGeneralModel> { interface Driver extends SimpleBeanEditorDriver<TemplateGeneralModel, SubTabTemplateGeneralView> { Driver driver = GWT.create(Driver.class); } interface ViewUiBinder extends UiBinder<Widget, SubTabTemplateGeneralView> { ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } TextBoxLabel name = new TextBoxLabel(); TextBoxLabel description = new TextBoxLabel(); TextBoxLabel hostCluster = new TextBoxLabel(); TextBoxLabel definedMemory = new TextBoxLabel(); TextBoxLabel oS = new TextBoxLabel(); TextBoxLabel cpuInfo = new TextBoxLabel(); TextBoxLabel defaultDisplayType = new TextBoxLabel(); TextBoxLabel origin = new TextBoxLabel(); TextBoxLabel priority = new TextBoxLabel(); TextBoxLabel usbPolicy = new TextBoxLabel(); TextBoxLabel domain = new TextBoxLabel(); TextBoxLabel timeZone = new TextBoxLabel(); @Ignore TextBoxLabel monitorCount = new TextBoxLabel(); @Ignore TextBoxLabel isHighlyAvailable = new TextBoxLabel(); @Ignore TextBoxLabel isStateless = new TextBoxLabel(); @UiField(provided = true) GeneralFormPanel formPanel; FormBuilder formBuilder; @Inject public SubTabTemplateGeneralView(DetailModelProvider<TemplateListModel, TemplateGeneralModel> 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("Host Cluster", hostCluster, 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("Number of CPU Cores", cpuInfo, 1, 1)); formBuilder.addFormItem(new FormItem("Number of Monitors", monitorCount, 2, 1)); formBuilder.addFormItem(new FormItem("Highly Available", isHighlyAvailable, 3, 1)); formBuilder.addFormItem(new FormItem("Priority", priority, 4, 1)); formBuilder.addFormItem(new FormItem("USB Policy", usbPolicy, 5, 1) { @Override public boolean isVisible() { return getDetailModel().getHasUsbPolicy(); } }); formBuilder.addFormItem(new FormItem("Origin", origin, 0, 2)); formBuilder.addFormItem(new FormItem("Is Stateless", isStateless, 1, 2)); formBuilder.addFormItem(new FormItem("Domain", domain, 2, 2) { @Override public boolean isVisible() { return getDetailModel().getHasDomain(); } }); formBuilder.addFormItem(new FormItem("Time Zone", timeZone, 3, 2) { @Override public boolean isVisible() { return getDetailModel().getHasTimeZone(); } }); } @Override public void setMainTabSelectedItem(VmTemplate selectedItem) { Driver.driver.edit(getDetailModel()); // TODO required because of GWT#5864 monitorCount.setText(Integer.toString(getDetailModel().getMonitorCount())); isHighlyAvailable.setText(Boolean.toString(getDetailModel().getIsHighlyAvailable())); isStateless.setText(Boolean.toString(getDetailModel().getIsStateless())); formBuilder.showForm(getDetailModel(), Driver.driver); } }