package org.ovirt.engine.ui.uicommonweb.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.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.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.uicommonweb.*; import org.ovirt.engine.ui.uicommonweb.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<DiskImage> list = new java.util.ArrayList<DiskImage>(); for (DiskImage img : vm.getDiskMap().values()) { list.add(img); } // 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.VolumeType.SelectedItemChanged += new EventHandler(VolumeType_SelectedItemChanged); // 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); } } public void VolumeType_SelectedItemChanged(DiskImage disk, VolumeType selectedVolumeType) { VM vm = (VM)getEntity(); if (vm != null) { for (Object item : getItems()) { for (java.util.Map.Entry<String, DiskImage> kvp : vm.getDiskMap().entrySet()) { DiskImage innerDisk = kvp.getValue(); if (StringHelper.stringsEqual(innerDisk.getinternal_drive_mapping(), disk.getinternal_drive_mapping())) { innerDisk.setvolume_type(selectedVolumeType); 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()) { //list.Each(a => // { // AvailabilityDecorator.GetChangeProhibitionReasons(a.VolumeType).Add("Allocation can be modified only when 'Collapse Snapshots' is check"); // AvailabilityDecorator.IsChangable = a.VolumeType, false); // }); for (DiskModel a : list) { a.getVolumeType().getChangeProhibitionReasons().add("Allocation can be modified only when 'Collapse Snapshots' is check"); a.getVolumeType().setIsChangable(false); } } else { //list.Each(a => AvailabilityDecorator.IsChangable = a.VolumeType, true)); for (DiskModel a : list) { a.getVolumeType().setIsChangable(true); } } } else { //list.Each(a => //{ // AvailabilityDecorator.GetChangeProhibitionReasons(a.VolumeType).Add("Allocation can be modified only when importing a single VM"); // AvailabilityDecorator.IsChangable = a.VolumeType, false); //}); 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() { } }