Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Simplify VnicProfile flow in NetworkModel
......................................................................

webadmin: Simplify VnicProfile flow in NetworkModel

The previous implementation was over-complicated, and allowed users to
perform the same actions from both the Edit Network dialog and the
Network/Profiles subtab. It is now only possible to create profiles
for a newly-created network, or create profiles for a network that
used to be a non-VM network and is turned into a VM network (which
from a profiles point of view is the same as a new network).

Change-Id: I21b632e7625e24a6ecb28e278639805990f6af41
Bug-Url: https://bugzilla.redhat.com/1031558
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
4 files changed, 36 insertions(+), 132 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/22038/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
index d50efac..4bbddba 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
@@ -1,35 +1,18 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
 import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.network.Network;
-import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
-import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
-import org.ovirt.engine.core.compat.Guid;
-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.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.models.profiles.EditVnicProfileModel;
-import org.ovirt.engine.ui.uicommonweb.models.profiles.NewVnicProfileModel;
-import org.ovirt.engine.ui.uicommonweb.models.profiles.VnicProfileModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
-import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
-import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
 public class EditNetworkModel extends NetworkModel {
-
-    private List<VnicProfileModel> originalProfileModels = new 
ArrayList<VnicProfileModel>();
 
     public EditNetworkModel(Network network, ListModel sourceListModel) {
         super(network, sourceListModel);
@@ -85,41 +68,6 @@
     }
 
     @Override
-    protected void initProfiles() {
-        AsyncQuery profilesQuery = new AsyncQuery();
-        profilesQuery.asyncCallback = new INewAsyncCallback() {
-
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-                List<VnicProfileModel> profilesModels = new 
LinkedList<VnicProfileModel>();
-                for (VnicProfileView profileView : (List<VnicProfileView>) 
returnValue) {
-                    VnicProfileModel editModel = new 
EditVnicProfileModel(getSourceListModel(),
-                            getSelectedDc().getcompatibility_version(),
-                            profileView, getSelectedDc().getId(), false);
-
-                    NetworkQoS networkQoS = new NetworkQoS();
-                    networkQoS.setName(profileView.getNetworkQosName() == null
-                            ? 
ConstantsManager.getInstance().getConstants().unlimitedQoSTitle()
-                            : profileView.getNetworkQosName());
-                    editModel.getNetworkQoS().setSelectedItem(networkQoS);
-
-                    editModel.getNetworkQoS().setIsChangable(false);
-                    profilesModels.add(editModel);
-                    editModel.getName().setIsChangable(false);
-                }
-                originalProfileModels.clear();
-                originalProfileModels.addAll(profilesModels);
-
-                if (profilesModels.isEmpty() && !(Boolean) 
getIsVmNetwork().getEntity()) {
-                    profilesModels.add(getDefaultProfile());
-                }
-                getProfiles().setItems(profilesModels);
-            }
-        };
-        AsyncDataProvider.getVnicProfilesByNetworkId(profilesQuery, 
getNetwork().getId());
-    }
-
-    @Override
     protected void onExportChanged() {
         if ((Boolean) getExport().getEntity()) {
             getHasVLanTag().setIsChangable(false);
@@ -145,41 +93,4 @@
                 },
                 null);
     }
-
-    @Override
-    protected void performProfilesActions(final Guid networkGuid) {
-
-        List<VnicProfileModel> profileModels = (List<VnicProfileModel>) 
getProfiles().getItems();
-        List<VnicProfileModel> profileModelsToRemove = new 
ArrayList<VnicProfileModel>(originalProfileModels);
-        profileModelsToRemove.removeAll(profileModels);
-
-        final List<VnicProfileModel> profileModelsToAdd = new 
ArrayList<VnicProfileModel>();
-
-        for (VnicProfileModel profileModel : profileModels) {
-            if (profileModel instanceof NewVnicProfileModel) {
-                profileModelsToAdd.add(profileModel);
-            }
-        }
-        startProgress(null);
-
-        performVnicProfileAction(VdcActionType.RemoveVnicProfile,
-                profileModelsToRemove,
-                new IFrontendMultipleActionAsyncCallback() {
-
-                    @Override
-                    public void executed(FrontendMultipleActionAsyncResult 
result) {
-                        performVnicProfileAction(VdcActionType.AddVnicProfile,
-                                profileModelsToAdd,
-                                new IFrontendMultipleActionAsyncCallback() {
-
-                                    @Override
-                                    public void 
executed(FrontendMultipleActionAsyncResult result) {
-                                        stopProgress();
-                                        cancel();
-                                    }
-                                }, networkGuid);
-                    }
-                }, networkGuid);
-    }
-
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index cc4e1ce..49bf2a8 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
 import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -32,6 +33,7 @@
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
@@ -443,6 +445,21 @@
         initProfiles();
     }
 
+    private void initProfiles() {
+        Iterable<VnicProfileModel> existingProfiles = getProfiles().getItems();
+        if (existingProfiles == null) {
+            // first run (dialog has just been opened and default DC chosen), 
create default entry
+            List<VnicProfileModel> profiles = new 
LinkedList<VnicProfileModel>();
+            profiles.add(getDefaultProfile());
+            getProfiles().setItems(profiles);
+        } else {
+            // not first run (user picked different DC), want to keep existing 
entries and update DC-related properties
+            for (VnicProfileModel profile : existingProfiles) {
+                profile.updateDc(getSelectedDc().getcompatibility_version(), 
getSelectedDc().getId());
+            }
+        }
+    }
+
     protected void addCommands() {
         UICommand tempVar2 = new UICommand("OnSave", this); //$NON-NLS-1$
         tempVar2.setTitle(ConstantsManager.getInstance().getConstants().ok());
@@ -498,13 +515,9 @@
         }
     }
 
-    protected abstract void performProfilesActions(Guid networkGuid);
-
-    protected void performVnicProfileAction(VdcActionType action,
-            List<VnicProfileModel> profileModels,
-            IFrontendMultipleActionAsyncCallback callback, Guid networkGuid) {
+    private void performProfilesActions(Guid networkGuid) {
+        List<VnicProfileModel> profileModels = (List<VnicProfileModel>) 
getProfiles().getItems();
         if (profileModels.isEmpty()) {
-            callback.executed(null);
             return;
         }
 
@@ -521,7 +534,14 @@
             }
         }
 
-        Frontend.RunMultipleAction(action, paramlist, callback, null);
+        IFrontendMultipleActionAsyncCallback callback = new 
IFrontendMultipleActionAsyncCallback() {
+            @Override
+            public void executed(FrontendMultipleActionAsyncResult result) {
+                stopProgress();
+                cancel();
+            }
+        };
+        Frontend.RunMultipleAction(VdcActionType.AddVnicProfile, paramlist, 
callback, null);
     }
 
     void cancel() {
@@ -567,8 +587,6 @@
     protected abstract void initIsVm();
 
     protected abstract void selectExternalProvider();
-
-    protected abstract void initProfiles();
 
     protected abstract void onExportChanged();
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
index cff3faf..2af3281 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NewNetworkModel.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.uicommonweb.models.datacenters;
 
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
 
 import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
@@ -21,12 +20,9 @@
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.models.profiles.VnicProfileModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
-import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
-import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
 public class NewNetworkModel extends NetworkModel {
 
@@ -104,22 +100,6 @@
     @Override
     protected void selectExternalProvider() {
         
getExternalProviders().setSelectedItem(Linq.firstOrDefault(getExternalProviders().getItems()));
-    }
-
-    @Override
-    protected void initProfiles() {
-        Iterable<VnicProfileModel> existingProfiles = getProfiles().getItems();
-        if (existingProfiles == null) {
-            // first run (dialog has just been opened and default DC chosen), 
create default entry
-            List<VnicProfileModel> profiles = new 
LinkedList<VnicProfileModel>();
-            profiles.add(getDefaultProfile());
-            getProfiles().setItems(profiles);
-        } else {
-            // not first run (user picked different DC), want to keep existing 
entries and update DC-related properties
-            for (VnicProfileModel profile : existingProfiles) {
-                profile.updateDc(getSelectedDc().getcompatibility_version(), 
getSelectedDc().getId());
-            }
-        }
     }
 
     @Override
@@ -215,19 +195,5 @@
             }
         }
         return clusterToAttach;
-    }
-
-    @Override
-    protected void performProfilesActions(Guid networkGuid) {
-        performVnicProfileAction(VdcActionType.AddVnicProfile,
-                (List<VnicProfileModel>) getProfiles().getItems(),
-                new IFrontendMultipleActionAsyncCallback() {
-                    @Override
-                    public void executed(FrontendMultipleActionAsyncResult 
result) {
-                        stopProgress();
-                        cancel();
-
-                    }
-                }, networkGuid);
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
index 2597954..3597c1a 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
@@ -1,5 +1,6 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter;
 
+import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.EditNetworkModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
@@ -18,6 +19,8 @@
     }
 
     private final Driver driver = GWT.create(Driver.class);
+
+    private Network network;
 
     @Inject
     public EditNetworkPopupView(EventBus eventBus,
@@ -38,6 +41,7 @@
     @Override
     public void edit(EditNetworkModel object) {
         driver.edit(object);
+        network = object.getNetwork();
     }
 
     @Override
@@ -52,4 +56,9 @@
         return driver.flush();
     }
 
+    @Override
+    public void toggleProfilesVisibility(boolean visible) {
+        super.toggleProfilesVisibility(visible && !network.isVmNetwork());
+    }
+
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I21b632e7625e24a6ecb28e278639805990f6af41
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to