Frank Kobzik has uploaded a new change for review. Change subject: frontend: Add NONE to GraphicsTypes enum ......................................................................
frontend: Add NONE to GraphicsTypes enum This is useful for expressing - that a VM/Template is headless, or - graphics of stopped VM (stopped vm has no active graphics). Change-Id: Ib69e8d687495bddabff28fe6a061c8118ff1983d Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UnitToGraphicsDeviceParamsBuilder.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java A frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/GraphicsTypesTest.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java M frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java 6 files changed, 76 insertions(+), 39 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/38171/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UnitToGraphicsDeviceParamsBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UnitToGraphicsDeviceParamsBuilder.java index 0e4da00..dd85539 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UnitToGraphicsDeviceParamsBuilder.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UnitToGraphicsDeviceParamsBuilder.java @@ -16,7 +16,7 @@ for (GraphicsType graphicsType : GraphicsType.values()) { destination.getGraphicsDevices().put(graphicsType, null); // reset - if (source.getGraphicsType().getSelectedItem().getBackingGraphicsType().contains(graphicsType)) { + if (source.getGraphicsType().getSelectedItem().getBackingGraphicsTypes().contains(graphicsType)) { GraphicsDevice d = new GraphicsDevice(graphicsType.getCorrespondingDeviceType()); destination.getGraphicsDevices().put(d.getGraphicsType(), d); } 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 d1cef78..36e55f2 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 @@ -841,33 +841,29 @@ return graphicsType; } + /** + * Enum for representing (possibly multiple) graphics device of a VM. + */ public enum GraphicsTypes { - SPICE, - VNC, - SPICE_AND_VNC; - Set<GraphicsType> spice = new HashSet<GraphicsType>(); - Set<GraphicsType> vnc = new HashSet<GraphicsType>(); - Set<GraphicsType> spiceAndVnc = new HashSet<GraphicsType>(); + NONE(), + SPICE(GraphicsType.SPICE), + VNC(GraphicsType.VNC), + SPICE_AND_VNC(GraphicsType.SPICE, GraphicsType.VNC); - { - spice.add(GraphicsType.SPICE); - vnc.add(GraphicsType.VNC); - spiceAndVnc.add(GraphicsType.SPICE); - spiceAndVnc.add(GraphicsType.VNC); + private Set<GraphicsType> backingTypes; + + private GraphicsTypes(GraphicsType ... backingTypes) { + this.backingTypes = new HashSet<>(); + if (backingTypes != null) { + for (GraphicsType backingType : backingTypes) { + this.backingTypes.add(backingType); + } + } } - public Collection<GraphicsType> getBackingGraphicsType() { - switch (this) { - case SPICE: - return spice; - case VNC: - return vnc; - case SPICE_AND_VNC: - return spiceAndVnc; - default: - return null; - } + public Collection<GraphicsType> getBackingGraphicsTypes() { + return backingTypes; } public static GraphicsTypes fromGraphicsType(GraphicsType type) { @@ -881,17 +877,14 @@ } public static GraphicsTypes fromGraphicsTypes(Collection<GraphicsType> types) { - if (types.containsAll(Arrays.asList(GraphicsType.SPICE, GraphicsType.VNC))) { - return UnitVmModel.GraphicsTypes.SPICE_AND_VNC; - } else if (types.contains(GraphicsType.SPICE)) { - return UnitVmModel.GraphicsTypes.SPICE; - } else if (types.contains(GraphicsType.VNC)) { - return UnitVmModel.GraphicsTypes.VNC; + for (GraphicsTypes myTypes : values()) { + if (myTypes.getBackingGraphicsTypes().equals(types)) { + return myTypes; + } } - return null; + return NONE; } - } private void setGraphicsType(NotChangableForVmInPoolListModel<GraphicsTypes> graphicsType) { @@ -1983,7 +1976,7 @@ } } - if (!graphicsTypes.getBackingGraphicsType().contains(GraphicsType.SPICE)) { + if (!graphicsTypes.getBackingGraphicsTypes().contains(GraphicsType.SPICE)) { getUsbPolicy().setIsChangable(false); } @@ -2109,7 +2102,7 @@ GraphicsTypes graphicsTypes = getGraphicsType().getSelectedItem(); if (graphicsTypes != null) { - getVncKeyboardLayout().setIsAvailable(graphicsTypes.getBackingGraphicsType().contains(GraphicsType.VNC)); + getVncKeyboardLayout().setIsAvailable(graphicsTypes.getBackingGraphicsTypes().contains(GraphicsType.VNC)); } } @@ -2167,7 +2160,7 @@ GraphicsTypes selectedGraphics = getGraphicsType().getSelectedItem(); boolean spiceCopyPasteToggle = selectedGraphics != null - && selectedGraphics.getBackingGraphicsType().contains(GraphicsType.SPICE) + && selectedGraphics.getBackingGraphicsTypes().contains(GraphicsType.SPICE) && AsyncDataProvider.getInstance().isSpiceCopyPasteToggleSupported(getSelectedCluster().getCompatibilityVersion().toString()); if (!spiceCopyPasteToggle) { handleQxlChangeProhibitionReason(getSpiceCopyPasteEnabled(), getSelectedCluster().getCompatibilityVersion().toString(), isQxl); @@ -2344,15 +2337,15 @@ return; } - if (display != DisplayType.qxl || !graphics.getBackingGraphicsType().contains(GraphicsType.SPICE)) { + if (display != DisplayType.qxl || !graphics.getBackingGraphicsTypes().contains(GraphicsType.SPICE)) { getUsbPolicy().setSelectedItem(org.ovirt.engine.core.common.businessentities.UsbPolicy.DISABLED); getIsSmartcardEnabled().setEntity(false); } handleQxlClusterLevel(); - getUsbPolicy().setIsChangable(graphics.getBackingGraphicsType().contains(GraphicsType.SPICE)); - getIsSmartcardEnabled().setIsChangable(graphics.getBackingGraphicsType().contains(GraphicsType.SPICE)); - getVncKeyboardLayout().setIsAvailable(graphics.getBackingGraphicsType().contains(GraphicsType.VNC)); + getUsbPolicy().setIsChangable(graphics.getBackingGraphicsTypes().contains(GraphicsType.SPICE)); + getIsSmartcardEnabled().setIsChangable(graphics.getBackingGraphicsTypes().contains(GraphicsType.SPICE)); + getVncKeyboardLayout().setIsAvailable(graphics.getBackingGraphicsTypes().contains(GraphicsType.VNC)); updateNumOfMonitors(); } diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/GraphicsTypesTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/GraphicsTypesTest.java new file mode 100644 index 0000000..ab3e757 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/GraphicsTypesTest.java @@ -0,0 +1,41 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.junit.Test; +import org.ovirt.engine.core.common.businessentities.GraphicsType; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel.GraphicsTypes; + + +import static org.junit.Assert.assertEquals; + + +public class GraphicsTypesTest { + + @Test + public void testGetBackingGraphicsType() throws Exception { + assertEquals(makeSet(), GraphicsTypes.NONE.getBackingGraphicsTypes()); + assertEquals(makeSet(GraphicsType.SPICE), GraphicsTypes.SPICE.getBackingGraphicsTypes()); + assertEquals(makeSet(GraphicsType.VNC), GraphicsTypes.VNC.getBackingGraphicsTypes()); + assertEquals(makeSet(GraphicsType.SPICE, GraphicsType.VNC), GraphicsTypes.SPICE_AND_VNC.getBackingGraphicsTypes()); + } + + @Test + public void testFromGraphicsType() throws Exception { + assertEquals(GraphicsTypes.SPICE, GraphicsTypes.fromGraphicsType(GraphicsType.SPICE)); + assertEquals(GraphicsTypes.VNC, GraphicsTypes.fromGraphicsType(GraphicsType.VNC)); + } + + @Test + public void testFromGraphicsTypes() throws Exception { + assertEquals(GraphicsTypes.NONE, GraphicsTypes.fromGraphicsTypes(null)); + assertEquals(GraphicsTypes.SPICE, GraphicsTypes.fromGraphicsTypes(makeSet(GraphicsType.SPICE))); + assertEquals(GraphicsTypes.VNC, GraphicsTypes.fromGraphicsTypes(makeSet(GraphicsType.VNC))); + } + + private <T> Set<T> makeSet(T ... elems) { + return new HashSet<>(Arrays.asList(elems)); + } + +} diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java index f4387c8..f1e711b 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java @@ -153,6 +153,8 @@ String GraphicsType___VNC(); + String UnitVmModel$GraphicsTypes___NONE(); + String UnitVmModel$GraphicsTypes___SPICE(); String UnitVmModel$GraphicsTypes___VNC(); diff --git a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties index ab0098e..d1f2bb3 100644 --- a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties +++ b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties @@ -96,6 +96,7 @@ DisplayType___vga=VGA GraphicsType___SPICE=SPICE GraphicsType___VNC=VNC +UnitVmModel$GraphicsTypes___NONE=None UnitVmModel$GraphicsTypes___SPICE=SPICE UnitVmModel$GraphicsTypes___VNC=VNC UnitVmModel$GraphicsTypes___SPICE_AND_VNC=SPICE + VNC diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java index d9b3d88..90fa4cb 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java @@ -184,7 +184,7 @@ @Override protected UnitVmModel.GraphicsTypes getRawValue(VM vm) { if ((vm.getStatus() == VMStatus.Down) || (vm.getStatus() == VMStatus.ImageLocked)) { - return null; + return UnitVmModel.GraphicsTypes.NONE; } Map<GraphicsType, GraphicsInfo> graphicsInfos = vm.getGraphicsInfos(); -- To view, visit https://gerrit.ovirt.org/38171 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib69e8d687495bddabff28fe6a061c8118ff1983d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches