Frank Kobzik has uploaded a new change for review. Change subject: console protocol priority ......................................................................
console protocol priority Change-Id: I9256ef44071f40552e47f03d829d95da810086ab Bug-Url: https://bugzilla.redhat.com/?????? Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocol.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java A frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocolTest.java 3 files changed, 63 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/27133/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocol.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocol.java index 41ee971..34fb45e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocol.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocol.java @@ -1,20 +1,29 @@ package org.ovirt.engine.ui.uicommonweb.models; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.RdpConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.SpiceConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VncConsoleModel; - +/** + * Enum representing console protocol. + * Console protocol is determined by it's backing class and priority (todo meaningful text :) ) + */ public enum ConsoleProtocol { - SPICE(SpiceConsoleModel.class), - RDP(RdpConsoleModel.class), - VNC(VncConsoleModel.class); + SPICE(SpiceConsoleModel.class, 1), + VNC(VncConsoleModel.class, 1), + RDP(RdpConsoleModel.class, 2); private final Class<? extends ConsoleModel> model; + private final int priority; - private ConsoleProtocol(Class<? extends ConsoleModel> model) { + private ConsoleProtocol(Class<? extends ConsoleModel> model, int priority) { this.model = model; + this.priority = priority; } public boolean isBackedBy(Class<? extends ConsoleModel> model) { @@ -31,6 +40,33 @@ return null; } + static class CPComparator implements Comparator<ConsoleProtocol> { + @Override + public int compare(ConsoleProtocol fst, ConsoleProtocol snd) { + if (fst == null && snd == null) { + return 0; + } + if (fst == null) { + return 1; + } + if (snd == null) { + return -1; + } + return fst.priority - snd.priority; + } + } + + public static List<ConsoleProtocol> getProtocolsByPriority() { + List<ConsoleProtocol> consoleProtocols = Arrays.asList(ConsoleProtocol.values()); + Collections.sort(consoleProtocols, new CPComparator()); + return consoleProtocols; + } + + public static void main(String ... args) { + CPComparator cpComparator = new CPComparator(); + System.out.print(cpComparator.compare(ConsoleProtocol.SPICE, ConsoleProtocol.RDP)); + } + public Class getBackingClass() { return model; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java index 42cb1ca..e61031e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java @@ -1,7 +1,5 @@ package org.ovirt.engine.ui.uicommonweb.models; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,7 +63,7 @@ } protected void setDefaultSelectedProtocol() { - List<ConsoleProtocol> allProtocols = new ArrayList<ConsoleProtocol>(Arrays.asList(ConsoleProtocol.values())); + List<ConsoleProtocol> allProtocols = ConsoleProtocol.getProtocolsByPriority(); if (selectedProtocol != null) { // if it's selected, it's prefered -> set it to the 1st position allProtocols.remove(selectedProtocol); diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocolTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocolTest.java new file mode 100644 index 0000000..73fd133 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/ConsoleProtocolTest.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.ui.uicommonweb.models; + +import org.junit.Test; + +import static org.hamcrest.core.Is.is; + +public class ConsoleProtocolTest { + @Test + public void testGetProtocolsByPriority() throws Exception { + + } + + @Test + public void testConsoleProtocolComparator() throws Exception { + ConsoleProtocol.CPComparator cpComparator = new ConsoleProtocol.CPComparator(); + int compared = cpComparator.compare(ConsoleProtocol.SPICE, ConsoleProtocol.VNC); + org.junit.Assert.assertThat(compared, is(0)); + + } + +} -- To view, visit http://gerrit.ovirt.org/27133 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9256ef44071f40552e47f03d829d95da810086ab 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