package org.ovirt.engine.ui.uicommonweb.models.storage; import java.util.Collections; import org.ovirt.engine.core.compat.*; import org.ovirt.engine.ui.uicompat.*; import org.ovirt.engine.core.common.businessentities.*; import org.ovirt.engine.core.common.vdscommands.*; import org.ovirt.engine.core.common.queries.*; import org.ovirt.engine.core.common.action.*; import org.ovirt.engine.ui.frontend.*; import org.ovirt.engine.ui.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.models.*; import org.ovirt.engine.core.common.*; import org.ovirt.engine.ui.uicommonweb.dataprovider.*; import org.ovirt.engine.ui.uicommonweb.validation.*; import org.ovirt.engine.ui.uicompat.*; import org.ovirt.engine.core.common.businessentities.*; import org.ovirt.engine.core.common.interfaces.*; import org.ovirt.engine.ui.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.models.*; @SuppressWarnings("unused") public class ImportStorageModelBehavior extends StorageModelBehavior { @Override public java.util.List<storage_pool> FilterDataCenter(java.util.List<storage_pool> source) { //C# TO JAVA CONVERTER TODO TASK: There is no Java equivalent to LINQ queries: return Linq.ToList(Linq.Where(source, new Linq.DataCenterStatusPredicate(StoragePoolStatus.Up))); } @Override public void UpdateItemsAvailability() { super.UpdateItemsAvailability(); storage_pool dataCenter = (storage_pool)getModel().getDataCenter().getSelectedItem(); for (IStorageModel item : Linq.<IStorageModel>Cast(getModel().getItems())) { if (item.getRole() == StorageDomainType.ISO) { AsyncDataProvider.GetIsoDomainByDataCenterId(new AsyncQuery(new Object[] { this, item }, new INewAsyncCallback() { @Override public void OnSuccess(Object target, Object returnValue) { Object[] array = (Object[])target; ImportStorageModelBehavior behavior = (ImportStorageModelBehavior)array[0]; IStorageModel storageModelItem = (IStorageModel)array[1]; behavior.PostUpdateItemsAvailability(behavior, storageModelItem, returnValue == null); } }), dataCenter.getId()); } else if (item.getRole() == StorageDomainType.ImportExport) { AsyncDataProvider.GetExportDomainByDataCenterId(new AsyncQuery(new Object[] { this, item }, new INewAsyncCallback() { @Override public void OnSuccess(Object target, Object returnValue) { Object[] array = (Object[])target; ImportStorageModelBehavior behavior = (ImportStorageModelBehavior)array[0]; IStorageModel storageModelItem = (IStorageModel)array[1]; behavior.PostUpdateItemsAvailability(behavior, storageModelItem, returnValue == null); } }), dataCenter.getId()); } else { PostUpdateItemsAvailability(this, item, false); } } } public void PostUpdateItemsAvailability(ImportStorageModelBehavior behavior, IStorageModel item, boolean isNoStorageAttached) { Model model = (Model)item; storage_pool dataCenter = (storage_pool)getModel().getDataCenter().getSelectedItem(); // available type/function items are: // all in case of Unassigned DC. // ISO in case the specified DC doesn't have an attached ISO domain. // Export in case the specified DC doesn't have an attached export domain. model.setIsSelectable((dataCenter.getId().equals(StorageModel.UnassignedDataCenterId) || (item.getRole() == StorageDomainType.ISO && isNoStorageAttached) || (item.getRole() == StorageDomainType.ImportExport && isNoStorageAttached))); behavior.OnStorageModelUpdated(item); } }