package org.ovirt.engine.ui.uicommon.models.vms; 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.uicommon.*; import org.ovirt.engine.ui.uicommon.models.*; import org.ovirt.engine.core.common.*; import org.ovirt.engine.ui.uicompat.*; import org.ovirt.engine.core.common.interfaces.*; import org.ovirt.engine.core.common.queries.*; import org.ovirt.engine.core.common.businessentities.*; import org.ovirt.engine.ui.uicommon.*; import org.ovirt.engine.ui.uicommon.models.*; @SuppressWarnings("unused") public class VmImportDiskListModel extends VmDiskListModel { private boolean collapseSnapshots; public boolean getCollapseSnapshots() { return collapseSnapshots; } public void setCollapseSnapshots(boolean value) { if (collapseSnapshots != value) { collapseSnapshots = value; OnCollapseSnapshotsChanged(); OnPropertyChanged(new PropertyChangedEventArgs("CollapseSnapshots")); } } private int privateSelectedVMsCount; public int getSelectedVMsCount() { return privateSelectedVMsCount; } public void setSelectedVMsCount(int value) { privateSelectedVMsCount = value; } private void OnCollapseSnapshotsChanged() { SetDisksVolumeTypeAvailability(); } @Override protected void OnEntityChanged() { super.OnEntityChanged(); VM vm = (VM)getEntity(); if (vm != null && vm.getDiskMap() != null) { java.util.ArrayList<DiskModel> list = new java.util.ArrayList<DiskModel>(); for (DiskImage img : vm.getDiskMap().values()) { DiskModel model = new DiskModel(); model.setName(img.getinternal_drive_mapping()); EntityModel tempVar = new EntityModel(); tempVar.setEntity(img.getSizeInGigabytes()); model.setSize(tempVar); model.getVolumeType().setSelectedItem(img.getvolume_type()); model.getVolumeType().getSelectedItemChangedEvent().addListener(this); model.setDiskType(img.getdisk_type()); model.setVolumeFormat(img.getvolume_format()); model.setCreationDate(img.getcreation_date()); //NOTE: The following code won't pass conversion to Java. //model.ActualSize = Convert.ToInt32(img.ActualDiskWithSnapshotsSize); list.add(model); } setItems(list); } else { setItems(null); } SetDisksVolumeTypeAvailability(); } @Override public void eventRaised(Event ev, Object sender, EventArgs args) { super.eventRaised(ev, sender, args); if (ev.equals(SelectedItemChangedEventDefinition) && sender instanceof ListModel) { VolumeType_SelectedItemChanged(args); } } private void VolumeType_SelectedItemChanged(EventArgs e) { VM vm = (VM)getEntity(); if (vm != null) { for (Object item : getItems()) { DiskModel model = (DiskModel)item; for (java.util.Map.Entry<String, DiskImage> kvp : vm.getDiskMap().entrySet()) { DiskImage disk = kvp.getValue(); ListModel volumeType = model.getVolumeType(); if (StringHelper.stringsEqual(disk.getinternal_drive_mapping(), model.getName())) { disk.setvolume_type((VolumeType)volumeType.getSelectedItem()); break; } } } } } private void SetDisksVolumeTypeAvailability() { java.util.ArrayList<DiskModel> list = (java.util.ArrayList<DiskModel>)getItems(); if (list != null && list.size() > 0) { if (getSelectedVMsCount() == 1) { if (!getCollapseSnapshots()) { for (DiskModel a : list) { a.getVolumeType().getChangeProhibitionReasons().add("Allocation can be modified only when 'Collapse Snapshots' is check"); a.getVolumeType().setIsChangable(false); } } else { for (DiskModel a : list) { a.getVolumeType().setIsChangable(true); } } } else { for (DiskModel a : list) { a.getVolumeType().getChangeProhibitionReasons().add("Allocation can be modified only when importing a single VM"); a.getVolumeType().setIsChangable(false); } } } } @Override public void Search() { } }