@Override public void UpdateItemsAvailability() { super.UpdateItemsAvailability(); storage_pool dataCenter = (storage_pool) getModel().getDataCenter().getSelectedItem(); for (IStorageModel item : Linq.<IStorageModel>Cast(getModel().getItems())) { Model model = (Model) item; storage_domains isoStorage = DataProvider.GetIsoDomainByDataCenterId(dataCenter.getId()); storage_domains exportStorage = DataProvider.GetExportDomainByDataCenterId(dataCenter.getId()); // 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 && isoStorage == null) || (item.getRole() == StorageDomainType.ImportExport && exportStorage == null))); } }