Tomas Jelinek has uploaded a new change for review. Change subject: userportal,webadmin: keep proper USB support selection ......................................................................
userportal,webadmin: keep proper USB support selection There were 2 problems: 1: the UnitVmModel.updateDisplayProtocol() did set the display protocol always to disabled. Fixed by making sure that if the previously selected still applys than select it 2: Change-Id: I7e1b1048784e9d0c289fab13b4d8b9b80afd6cc9 Bug-Url: https://bugzilla.redhat.com/966415 Bug-Url: https://bugzilla.redhat.com/1080144 Signed-off-by: Tomas Jelinek <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java 2 files changed, 22 insertions(+), 53 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/27045/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java index 7aff0d8..e9876d6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -1735,6 +1736,9 @@ } getUsbPolicy().setIsChangable(true); + + UsbPolicy prevSelectedUsbPolicy = getUsbPolicy().getSelectedItem(); + if (Version.v3_1.compareTo(cluster.getcompatibility_version()) > 0) { if (AsyncDataProvider.isWindowsOsType(osType)) { getUsbPolicy().setItems(Arrays.asList( @@ -1743,7 +1747,6 @@ )); } else { getUsbPolicy().setItems(Arrays.asList(UsbPolicy.DISABLED)); - getUsbPolicy().setSelectedItem(UsbPolicy.DISABLED); getUsbPolicy().setIsChangable(false); } } @@ -1768,7 +1771,12 @@ getUsbPolicy().setIsChangable(false); } - getUsbPolicy().setSelectedItem(UsbPolicy.DISABLED); + Collection<UsbPolicy> policies = getUsbPolicy().getItems(); + if (policies.contains(prevSelectedUsbPolicy)) { + getUsbPolicy().setSelectedItem(prevSelectedUsbPolicy); + } else if (policies.size() > 0) { + getUsbPolicy().setSelectedItem(policies.iterator().next()); + } } private void updateMigrationOptions() @@ -1800,6 +1808,7 @@ private void updateDisplayProtocol() { DisplayType oldDisplayProtocolOption = null; + EntityModel<DisplayType> oldDisplayProtocolEntity = null; if (getDisplayProtocol().getSelectedItem() != null) { oldDisplayProtocolOption = getDisplayProtocol().getSelectedItem().getEntity(); @@ -1820,6 +1829,9 @@ vncProtocol.setTitle(ConstantsManager.getInstance().getConstants().VNCTitle()); vncProtocol.setEntity(DisplayType.vnc); displayProtocolOptions.add(vncProtocol); + if (DisplayType.vnc == oldDisplayProtocolOption) { + oldDisplayProtocolEntity = vncProtocol; + } } if (displayTypes.contains(DisplayType.qxl)) { @@ -1827,11 +1839,16 @@ spiceProtocol.setTitle(ConstantsManager.getInstance().getConstants().spiceTitle()); spiceProtocol.setEntity(DisplayType.qxl); displayProtocolOptions.add(spiceProtocol); + if (oldDisplayProtocolOption == DisplayType.qxl) { + oldDisplayProtocolEntity = spiceProtocol; + } } - getDisplayProtocol().setItems(displayProtocolOptions); - - behavior.postDisplayTypeItemChanged(oldDisplayProtocolOption); + if (displayProtocolOptions.contains(oldDisplayProtocolEntity)) { + getDisplayProtocol().setItems(displayProtocolOptions, oldDisplayProtocolEntity); + } else if (displayProtocolOptions.size() > 0) { + getDisplayProtocol().setItems(displayProtocolOptions, displayProtocolOptions.iterator().next()); + } } private void initFirstBootDevice() diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java index cc66f42..dacfcd0 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java @@ -15,7 +15,6 @@ import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskInterface; -import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; @@ -275,53 +274,6 @@ final Collection<TimeZoneModel> timeZones = TimeZoneModel.getTimeZones(getTimeZoneType()); getModel().getTimeZone().setItems(timeZones); getModel().getTimeZone().setSelectedItem(Linq.firstOrDefault(timeZones, new Linq.TimeZonePredicate(selectedTimeZone))); - } - - /** - * This method checks the item that will be selected. - * For a good UX, if the getItems contains the last selected item, this one not will be changed. - * @param oldDisplayProtocolOption - */ - public void postDisplayTypeItemChanged(DisplayType oldDisplayProtocolOption) { - - List<DisplayType> displayProtocolOptions = new ArrayList<DisplayType>(); - - if (getModel().getDisplayProtocol().getItems() != null) { - for (EntityModel<DisplayType> item : (ArrayList<EntityModel<DisplayType>>) getModel().getDisplayProtocol().getItems()) { - displayProtocolOptions.add(item.getEntity()); - } - } - - if (oldDisplayProtocolOption != null - && displayProtocolOptions.contains(oldDisplayProtocolOption)) { - selectDisplayProtocol(oldDisplayProtocolOption); - } - - } - - private void selectDisplayProtocol(DisplayType displayProtocol) { - if (getModel().getDisplayProtocol().getItems() == null) - return; - - EntityModel selectedDisplayProtocol = null; - boolean isFirst = true; - for (Object item : getModel().getDisplayProtocol().getItems()) - { - EntityModel a = (EntityModel) item; - if (isFirst) - { - selectedDisplayProtocol = a; - isFirst = false; - } - DisplayType dt = (DisplayType) a.getEntity(); - if (dt == displayProtocol) - { - selectedDisplayProtocol = a; - break; - } - } - - getModel().getDisplayProtocol().setSelectedItem(selectedDisplayProtocol); } public TimeZoneType getTimeZoneType() { -- To view, visit http://gerrit.ovirt.org/27045 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7e1b1048784e9d0c289fab13b4d8b9b80afd6cc9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
