package org.ovirt.engine.ui.webadmin.section.main.view.tab.storage; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.ui.uicommonweb.models.storage.StorageGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.storage.StorageListModel; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.storage.SubTabStorageGeneralPresenter; 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.DiskSizeLabel; import org.ovirt.engine.ui.webadmin.widget.label.PercentLabel; 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.InlineLabel; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; public class SubTabStorageGeneralView extends AbstractSubTabFormView<storage_domains, StorageListModel, StorageGeneralModel> implements SubTabStorageGeneralPresenter.ViewDef, Editor<StorageGeneralModel> { interface Driver extends SimpleBeanEditorDriver<StorageGeneralModel, SubTabStorageGeneralView> { Driver driver = GWT.create(Driver.class); } interface ViewUiBinder extends UiBinder<Widget, SubTabStorageGeneralView> { ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } @Ignore // TODO Primitive getters not supported in 2.2 DiskSizeLabel<Integer> totalSize = new DiskSizeLabel<Integer>(); @Ignore // TODO Primitive getters not supported in 2.2 DiskSizeLabel<Integer> availableSize = new DiskSizeLabel<Integer>(); @Ignore // TODO Primitive getters not supported in 2.2 DiskSizeLabel<Integer> usedSize = new DiskSizeLabel<Integer>(); @Ignore // TODO Primitive getters not supported in 2.2 PercentLabel<Integer> overAllocationRatio = new PercentLabel<Integer>(); @Path("nfsPath") TextBoxLabel nfsExportPath = new TextBoxLabel(); @Path("localPath") TextBoxLabel hostLocalPath = new TextBoxLabel(); @UiField(provided = true) GeneralFormPanel formPanel; FormBuilder formBuilder; @Inject public SubTabStorageGeneralView(DetailModelProvider<StorageListModel, StorageGeneralModel> 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, 1, 6); formBuilder.setColumnsWidth("100%"); formBuilder.addFormItem(new FormItem("Size", totalSize, 0, 0)); formBuilder.addFormItem(new FormItem("Available", availableSize, 1, 0)); formBuilder.addFormItem(new FormItem("Used", usedSize, 2, 0)); formBuilder.addFormItem(new FormItem("Over Allocation Ratio", overAllocationRatio, 3, 0) { @Override public boolean isVisible() { StorageDomainType storageDomainType = ((storage_domains) getDetailModel().getEntity()).getstorage_domain_type(); return !storageDomainType.equals(StorageDomainType.ISO) && !storageDomainType.equals(StorageDomainType.ImportExport); } }); formBuilder.addFormItem(new FormItem("", new InlineLabel(""), 4, 0)); // empty cell formBuilder.addFormItem(new FormItem("NFS Export Path", nfsExportPath, 5, 0) { @Override public boolean isVisible() { return getDetailModel().getIsNfs(); } }); formBuilder.addFormItem(new FormItem("Local Path on Host", hostLocalPath, 5, 0) { @Override public boolean isVisible() { return getDetailModel().getIsLocalS(); } }); } @Override public void setMainTabSelectedItem(storage_domains selectedItem) { Driver.driver.edit(getDetailModel()); // TODO required because of editor driver errors // Possible reasons: lowercase getters, StorageGeneralModel.getEntity() returns Object storage_domains entity = (storage_domains) getDetailModel().getEntity(); totalSize.setValue(entity.getTotalDiskSize()); availableSize.setValue(entity.getavailable_disk_size()); usedSize.setValue(entity.getused_disk_size()); overAllocationRatio.setValue(entity.getstorage_domain_over_commit_percent()); formBuilder.showForm(getDetailModel(), Driver.driver); } }