Vojtech Szocs has uploaded a new change for review.

Change subject: userportal: VM/Pool handling refactored
......................................................................

userportal: VM/Pool handling refactored

1. Removed IVmPoolResolutionService interface and its usage,
   as the 'ResolveVmPoolById' logic isn't used in client code.

2. Common VM/Pool handling code moved to IUserPortalListModel,
   eliminating duplicate code in both subclasses, including:
   - OnVmAndPoolLoad(), except 'canConnectAutomatically' part
   - SyncSearch() + AsyncSearch()

Change-Id: Ifaefb2cffa5fa13bc04cf702abfcc96e485dfad4
Signed-off-by: Vojtech Szocs <vsz...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
D 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IVmPoolResolutionService.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalItemModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
5 files changed, 156 insertions(+), 314 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/10740/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
index d0f40fa..2f82b4d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
@@ -10,13 +10,23 @@
 import org.ovirt.engine.core.common.businessentities.VMStatus;
 import org.ovirt.engine.core.common.businessentities.VmOsType;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.compat.Event;
+import org.ovirt.engine.core.compat.EventArgs;
+import org.ovirt.engine.core.compat.EventDefinition;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
 import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleSelectionContext;
 import org.ovirt.engine.ui.uicommonweb.models.vms.RdpConsoleModel;
@@ -26,6 +36,43 @@
 
 public abstract class IUserPortalListModel extends ListWithDetailsModel 
implements UserSelectedDisplayProtocolManager
 {
+
+    public static EventDefinition SearchCompletedEventDefinition;
+    private Event privateSearchCompletedEvent;
+
+    public Event getSearchCompletedEvent()
+    {
+        return privateSearchCompletedEvent;
+    }
+
+    private void setSearchCompletedEvent(Event value)
+    {
+        privateSearchCompletedEvent = value;
+    }
+
+    private ArrayList<VM> privatevms;
+
+    public ArrayList<VM> getvms()
+    {
+        return privatevms;
+    }
+
+    public void setvms(ArrayList<VM> value)
+    {
+        privatevms = value;
+    }
+
+    private ArrayList<vm_pools> privatepools;
+
+    public ArrayList<vm_pools> getpools()
+    {
+        return privatepools;
+    }
+
+    public void setpools(ArrayList<vm_pools> value)
+    {
+        privatepools = value;
+    }
 
     private boolean canConnectAutomatically;
 
@@ -42,6 +89,7 @@
             VmOsType.Windows2012x64);
 
     public IUserPortalListModel() {
+        setSearchCompletedEvent(new Event(SearchCompletedEventDefinition));
         cachedConsoleModels = new HashMap<Guid, ArrayList<ConsoleModel>>();
         setEditConsoleCommand(new UICommand("NewServer", this)); //$NON-NLS-1$
     }
@@ -66,15 +114,6 @@
 
     private void setEditConsoleCommand(UICommand editConsoleCommand) {
         this.editConsoleCommand = editConsoleCommand;
-    }
-
-    public abstract void OnVmAndPoolLoad();
-
-    protected HashMap<Guid, vm_pools> poolMap;
-
-    public vm_pools ResolveVmPoolById(Guid id)
-    {
-        return poolMap.get(id);
     }
 
     // Return a list of VMs with status 'UP'
@@ -303,4 +342,100 @@
 
         return null;
     }
+
+    @Override
+    protected void SyncSearch()
+    {
+        super.SyncSearch();
+        Frontend.RunQuery(VdcQueryType.GetAllVmsAndVmPools,
+                new VdcQueryParametersBase(),
+                new AsyncQuery(this, new INewAsyncCallback() {
+                    @Override
+                    public void OnSuccess(Object model, Object returnValue) {
+                        IUserPortalListModel userPortalListModel = 
(IUserPortalListModel) model;
+                        ArrayList<VM> vms = new ArrayList<VM>();
+                        ArrayList<vm_pools> pools = new ArrayList<vm_pools>();
+
+                        VdcQueryReturnValue retValue = (VdcQueryReturnValue) 
returnValue;
+                        if (retValue != null && retValue.getSucceeded()) {
+                            List<Object> list = (ArrayList<Object>) 
retValue.getReturnValue();
+
+                            if (list != null) {
+                                for (Object object : list) {
+                                    if (object instanceof VM) {
+                                        vms.add((VM) object);
+                                    } else if (object instanceof vm_pools) {
+                                        pools.add((vm_pools) object);
+                                    }
+                                }
+                            }
+                        }
+
+                        userPortalListModel.setvms(vms);
+                        userPortalListModel.setpools(pools);
+                        userPortalListModel.OnVmAndPoolLoad();
+                    }
+                }));
+    }
+
+    @Override
+    protected void AsyncSearch()
+    {
+        super.AsyncSearch();
+        SyncSearch();
+    }
+
+    private void OnVmAndPoolLoad()
+    {
+        if (getvms() != null && getpools() != null)
+        {
+            // Complete search.
+
+            // Remove pools that has provided VMs.
+            ArrayList<vm_pools> filteredPools = new ArrayList<vm_pools>();
+
+            for (vm_pools pool : getpools())
+            {
+                boolean found = false;
+                for (VM vm : getvms())
+                {
+                    if (vm.getVmPoolId() != null && 
vm.getVmPoolId().equals(pool.getvm_pool_id()))
+                    {
+                        found = true;
+                        break;
+                    }
+                }
+
+                if (!found)
+                {
+                    filteredPools.add(pool);
+                }
+            }
+
+            // Merge VMs and Pools, and create item models.
+            List all = Linq.Concat(getvms(), filteredPools);
+            Linq.Sort(all, new Linq.VmAndPoolByNameComparer());
+
+            ArrayList<Model> items = new ArrayList<Model>();
+            for (Object item : all)
+            {
+                UserPortalItemModel model = new UserPortalItemModel(this);
+                model.setEntity(item);
+                items.add(model);
+
+                updateConsoleModel(model);
+            }
+
+            setCanConnectAutomatically(canConnectAutomatically(items));
+            setItems(items);
+
+            setvms(null);
+            setpools(null);
+
+            getSearchCompletedEvent().raise(this, EventArgs.Empty);
+        }
+    }
+
+    protected abstract boolean canConnectAutomatically(ArrayList<Model> items);
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IVmPoolResolutionService.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IVmPoolResolutionService.java
deleted file mode 100644
index 7b03316..0000000
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IVmPoolResolutionService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.ovirt.engine.ui.uicommonweb.models.userportal;
-
-import org.ovirt.engine.core.common.businessentities.vm_pools;
-import org.ovirt.engine.core.compat.Guid;
-
-public interface IVmPoolResolutionService
-{
-    vm_pools ResolveVmPoolById(Guid id);
-}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
index fb4ae30..4ac8365 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
@@ -2,12 +2,10 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
 import org.ovirt.engine.core.common.queries.GetVmdataByPoolIdParameters;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Event;
@@ -19,29 +17,14 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
-import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel;
 
-@SuppressWarnings("unused")
-public class UserPortalBasicListModel extends IUserPortalListModel implements 
IVmPoolResolutionService
+public class UserPortalBasicListModel extends IUserPortalListModel
 {
-
-    public static EventDefinition SearchCompletedEventDefinition;
-    private Event privateSearchCompletedEvent;
-
-    public Event getSearchCompletedEvent()
-    {
-        return privateSearchCompletedEvent;
-    }
-
-    private void setSearchCompletedEvent(Event value)
-    {
-        privateSearchCompletedEvent = value;
-    }
 
     private ListModel privatevmBasicDiskListModel;
 
@@ -53,30 +36,6 @@
     private void setvmBasicDiskListModel(ListModel value)
     {
         privatevmBasicDiskListModel = value;
-    }
-
-    private ArrayList<VM> privatevms;
-
-    public ArrayList<VM> getvms()
-    {
-        return privatevms;
-    }
-
-    public void setvms(ArrayList<VM> value)
-    {
-        privatevms = value;
-    }
-
-    private ArrayList<vm_pools> privatepools;
-
-    public ArrayList<vm_pools> getpools()
-    {
-        return privatepools;
-    }
-
-    public void setpools(ArrayList<vm_pools> value)
-    {
-        privatepools = value;
     }
 
     private EntityModel privateSelectedItemDefinedMemory;
@@ -112,54 +71,10 @@
 
     public UserPortalBasicListModel()
     {
-        setSearchCompletedEvent(new Event(SearchCompletedEventDefinition));
-
         setSelectedItemDefinedMemory(new EntityModel());
         setSelectedItemNumOfCpuCores(new EntityModel());
 
         cachedConsoleModels = new HashMap<Guid, ArrayList<ConsoleModel>>();
-    }
-
-    @Override
-    protected void SyncSearch()
-    {
-        super.SyncSearch();
-        Frontend.RunQuery(VdcQueryType.GetAllVmsAndVmPools,
-                new VdcQueryParametersBase(),
-                new AsyncQuery(this, new INewAsyncCallback() {
-
-                    @Override
-                    public void OnSuccess(Object model, Object returnValue) {
-                        UserPortalBasicListModel userPortalBasicListModel = 
(UserPortalBasicListModel) model;
-                        ArrayList<VM> vms = new ArrayList<VM>();
-                        ArrayList<vm_pools> pools = new ArrayList<vm_pools>();
-
-                        VdcQueryReturnValue retValue = (VdcQueryReturnValue) 
returnValue;
-                        if (retValue != null && retValue.getSucceeded()) {
-                            List<Object> list = (ArrayList<Object>) 
retValue.getReturnValue();
-                            if (list != null) {
-                                for (Object object : list) {
-                                    if (object instanceof VM) {
-                                        vms.add((VM) object);
-                                    } else if (object instanceof vm_pools) {
-                                        pools.add((vm_pools) object);
-                                    }
-                                }
-                            }
-                        }
-
-                        userPortalBasicListModel.setvms(vms);
-                        userPortalBasicListModel.setpools(pools);
-                        userPortalBasicListModel.OnVmAndPoolLoad();
-                    }
-                }));
-    }
-
-    @Override
-    protected void AsyncSearch()
-    {
-        super.AsyncSearch();
-        SyncSearch();
     }
 
     @Override
@@ -278,63 +193,11 @@
     }
 
     @Override
-    public void OnVmAndPoolLoad()
-    {
-        if (getvms() != null && getpools() != null)
-        {
-            // Complete search.
-
-            // Remove pools that has provided VMs.
-            ArrayList<vm_pools> filteredPools = new ArrayList<vm_pools>();
-            poolMap = new HashMap<Guid, vm_pools>();
-
-            for (vm_pools pool : getpools())
-            {
-                // Add pool to map.
-                poolMap.put(pool.getvm_pool_id(), pool);
-
-                boolean found = false;
-                for (VM vm : getvms())
-                {
-                    if (vm.getVmPoolId() != null && 
vm.getVmPoolId().equals(pool.getvm_pool_id()))
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-
-                if (!found)
-                {
-                    filteredPools.add(pool);
-                }
-            }
-
-            // Merge VMs and Pools, and create item models.
-            List all = Linq.Concat(getvms(), filteredPools);
-            Linq.Sort(all, new Linq.VmAndPoolByNameComparer());
-
-            ArrayList<Model> items = new ArrayList<Model>();
-            for (Object item : all)
-            {
-                UserPortalItemModel model = new UserPortalItemModel(this, 
this);
-                model.setEntity(item);
-                items.add(model);
-
-                updateConsoleModel(model);
-            }
-
-            // In userportal 'Basic View': Set 'CanConnectAutomatically' to 
true if there's one and only one VM in
-            // status 'UP' and the other VMs aren't up.
-            setCanConnectAutomatically(GetStatusUpVms(items).size() == 1 && 
GetUpVms(items).size() == 1
-                    && 
GetStatusUpVms(items).get(0).getDefaultConsole().getConnectCommand().getIsExecutionAllowed());
-
-            setItems(items);
-
-            setvms(null);
-            setpools(null);
-
-            getSearchCompletedEvent().raise(this, EventArgs.Empty);
-        }
+    protected boolean canConnectAutomatically(ArrayList<Model> items) {
+        // In userportal 'Basic View': Set 'CanConnectAutomatically' to true 
if there's one and only one VM in
+        // status 'UP' and the other VMs aren't up.
+        return GetStatusUpVms(items).size() == 1 && GetUpVms(items).size() == 1
+                && 
GetStatusUpVms(items).get(0).getDefaultConsole().getConnectCommand().getIsExecutionAllowed();
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalItemModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalItemModel.java
index 38dfbb4..3d65a08 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalItemModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalItemModel.java
@@ -116,18 +116,6 @@
         returnVmCommand = value;
     }
 
-    private IVmPoolResolutionService privateResolutionService;
-
-    public IVmPoolResolutionService getResolutionService()
-    {
-        return privateResolutionService;
-    }
-
-    private void setResolutionService(IVmPoolResolutionService value)
-    {
-        privateResolutionService = value;
-    }
-
     private String name;
 
     public String getName()
@@ -336,10 +324,9 @@
     private ItemBehavior behavior;
     private final UserSelectedDisplayProtocolManager 
userSelectedDisplayProtocolManager;
 
-    public UserPortalItemModel(IVmPoolResolutionService resolutionService, 
UserSelectedDisplayProtocolManager userSelectedDisplayManager)
+    public UserPortalItemModel(UserSelectedDisplayProtocolManager 
userSelectedDisplayManager)
     {
         this.userSelectedDisplayProtocolManager = userSelectedDisplayManager;
-        setResolutionService(resolutionService);
 
         setRunCommand(new UICommand("Run", this)); //$NON-NLS-1$
         setPauseCommand(new UICommand("Pause", this)); //$NON-NLS-1$
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 85181fd..39aa828 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -32,10 +32,8 @@
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
-import org.ovirt.engine.core.common.businessentities.vm_pools;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Event;
@@ -84,21 +82,8 @@
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
-public class UserPortalListModel extends IUserPortalListModel implements 
IVmPoolResolutionService
+public class UserPortalListModel extends IUserPortalListModel
 {
-
-    public static EventDefinition SearchCompletedEventDefinition;
-    private Event privateSearchCompletedEvent;
-
-    public Event getSearchCompletedEvent()
-    {
-        return privateSearchCompletedEvent;
-    }
-
-    private void setSearchCompletedEvent(Event value)
-    {
-        privateSearchCompletedEvent = value;
-    }
 
     private UICommand privateNewDesktopCommand;
 
@@ -208,29 +193,6 @@
     private EntityModel poolGeneralModel;
     private ListModel poolDiskListModel;
     private ListModel poolInterfaceListModel;
-    private ArrayList<VM> privatevms;
-
-    public ArrayList<VM> getvms()
-    {
-        return privatevms;
-    }
-
-    public void setvms(ArrayList<VM> value)
-    {
-        privatevms = value;
-    }
-
-    private ArrayList<vm_pools> privatepools;
-
-    public ArrayList<vm_pools> getpools()
-    {
-        return privatepools;
-    }
-
-    public void setpools(ArrayList<vm_pools> value)
-    {
-        privatepools = value;
-    }
 
     private VM privatetempVm;
 
@@ -273,8 +235,6 @@
 
     public UserPortalListModel()
     {
-        setSearchCompletedEvent(new Event(SearchCompletedEventDefinition));
-
         setNewDesktopCommand(new UICommand("NewDesktop", this)); //$NON-NLS-1$
         setNewServerCommand(new UICommand("NewServer", this)); //$NON-NLS-1$
         setEditCommand(new UICommand("Edit", this)); //$NON-NLS-1$
@@ -336,48 +296,6 @@
             }
             OnSelectedItemChanged();
         }
-    }
-
-    @Override
-    protected void SyncSearch()
-    {
-        super.SyncSearch();
-        Frontend.RunQuery(VdcQueryType.GetAllVmsAndVmPools,
-                new VdcQueryParametersBase(),
-                new AsyncQuery(this, new INewAsyncCallback() {
-
-                    @Override
-                    public void OnSuccess(Object model, Object returnValue) {
-                        UserPortalListModel userPortalListModel = 
(UserPortalListModel) model;
-                        ArrayList<VM> vms = new ArrayList<VM>();
-                        ArrayList<vm_pools> pools = new ArrayList<vm_pools>();
-
-                        VdcQueryReturnValue retValue = (VdcQueryReturnValue) 
returnValue;
-                        if (retValue != null && retValue.getSucceeded()) {
-                            List<Object> list = (ArrayList<Object>) 
retValue.getReturnValue();
-                            if (list != null) {
-                                for (Object object : list) {
-                                    if (object instanceof VM) {
-                                        vms.add((VM) object);
-                                    } else if (object instanceof vm_pools) {
-                                        pools.add((vm_pools) object);
-                                    }
-                                }
-                            }
-                        }
-
-                        userPortalListModel.setvms(vms);
-                        userPortalListModel.setpools(pools);
-                        userPortalListModel.OnVmAndPoolLoad();
-                    }
-                }));
-    }
-
-    @Override
-    protected void AsyncSearch()
-    {
-        super.AsyncSearch();
-        SyncSearch();
     }
 
     @Override
@@ -1699,62 +1617,10 @@
     }
 
     @Override
-    public void OnVmAndPoolLoad()
-    {
-        if (getvms() != null && getpools() != null)
-        {
-            // Complete search.
-
-            // Remove pools that has provided VMs.
-            ArrayList<vm_pools> filteredPools = new ArrayList<vm_pools>();
-            poolMap = new HashMap<Guid, vm_pools>();
-
-            for (vm_pools pool : getpools())
-            {
-                // Add pool to map.
-                poolMap.put(pool.getvm_pool_id(), pool);
-
-                boolean found = false;
-                for (VM vm : getvms())
-                {
-                    if (vm.getVmPoolId() != null && 
vm.getVmPoolId().equals(pool.getvm_pool_id()))
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-
-                if (!found)
-                {
-                    filteredPools.add(pool);
-                }
-            }
-
-            // Merge VMs and Pools, and create item models.
-            List all = Linq.Concat(getvms(), filteredPools);
-            Linq.Sort(all, new Linq.VmAndPoolByNameComparer());
-
-            ArrayList<Model> items = new ArrayList<Model>();
-            for (Object item : all)
-            {
-                UserPortalItemModel model = new UserPortalItemModel(this, 
this);
-                model.setEntity(item);
-                items.add(model);
-
-                updateConsoleModel(model);
-            }
-
-            // In userportal 'Extended View': Set 'CanConnectAutomatically' to 
true if there's one and only one up VM.
-            setCanConnectAutomatically(GetUpVms(items).size() == 1
-                    && 
GetUpVms(items).get(0).getDefaultConsole().getConnectCommand().getIsExecutionAllowed());
-
-            setItems(items);
-
-            setvms(null);
-            setpools(null);
-
-            getSearchCompletedEvent().raise(this, EventArgs.Empty);
-        }
+    protected boolean canConnectAutomatically(ArrayList<Model> items) {
+        // In userportal 'Extended View': Set 'CanConnectAutomatically' to 
true if there's one and only one up VM.
+        return GetUpVms(items).size() == 1
+                && 
GetUpVms(items).get(0).getDefaultConsole().getConnectCommand().getIsExecutionAllowed();
     }
 
     @Override


--
To view, visit http://gerrit.ovirt.org/10740
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifaefb2cffa5fa13bc04cf702abfcc96e485dfad4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vojtech Szocs <vsz...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to