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

Reply via email to