Daniel Erez has uploaded a new change for review.

Change subject: webadmin: fix DirectLUN disk creation
......................................................................

webadmin: fix DirectLUN disk creation

As progress start/stop event is no longer invoked on the model,
external disk panel isn't being displayed on VmDiskPopupWidget
(i.e. New disk popup is missing the LUNs list in DirectLUN view).
Hence,
* Removing progress indication from the inner view (external
  disk panel) and rely on the popup progress.
* Pass proper target to AsyncQuerys on SanStorageModel/SanStorageModelBase
  to ensure progress on Disk and Storage popups.

Change-Id: Ib5f30df2ba2f4591f6daaa6144b1af8a0d09bfd4
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
3 files changed, 26 insertions(+), 52 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/36831/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
index 48f265f..8464412 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
@@ -1,7 +1,15 @@
 package org.ovirt.engine.ui.common.widget.uicommon.popup.vm;
 
-import java.util.ArrayList;
-
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.text.shared.AbstractRenderer;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskInterface;
 import org.ovirt.engine.core.common.businessentities.Quota;
@@ -20,7 +28,6 @@
 import org.ovirt.engine.ui.common.widget.Align;
 import org.ovirt.engine.ui.common.widget.RadioButtonsHorizontalPanel;
 import org.ovirt.engine.ui.common.widget.dialog.InfoIcon;
-import org.ovirt.engine.ui.common.widget.dialog.ProgressPopupContent;
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.IntegerEntityModelTextBoxEditor;
@@ -43,18 +50,8 @@
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
-import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.editor.client.SimpleBeanEditorDriver;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.text.shared.AbstractRenderer;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.VerticalPanel;
+import java.util.ArrayList;
 
 public class VmDiskPopupWidget extends 
AbstractModelBoundPopupWidget<AbstractDiskModel> {
 
@@ -180,9 +177,6 @@
     Label message;
 
     @Ignore
-    ProgressPopupContent progressContent;
-
-    @Ignore
     IscsiStorageView iscsiStorageView;
 
     @Ignore
@@ -207,7 +201,6 @@
                              CommonApplicationTemplates templates,
                              boolean isLunDiskEnabled) {
         this.isNewLunDiskEnabled = isLunDiskEnabled;
-        this.progressContent = createProgressContentWidget();
         this.constants = constants;
         initManualWidgets(constants, resources, templates);
         initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
@@ -288,12 +281,6 @@
         interfaceInfoIcon = new 
InfoIcon(templates.italicText(constants.diskInterfaceInfo()), resources);
     }
 
-    private ProgressPopupContent createProgressContentWidget() {
-        ProgressPopupContent progressPopupContent = new ProgressPopupContent();
-        progressPopupContent.setHeight("100%"); //$NON-NLS-1$
-        return progressPopupContent;
-    }
-
     @Override
     public void focusInput() {
         sizeEditor.setFocus(true);
@@ -357,7 +344,6 @@
         // Create IscsiStorageModel
         iscsiStorageModel = new IscsiStorageModel();
         iscsiStorageModel.setContainer(storageModel);
-        
iscsiStorageModel.getPropertyChangedEvent().addListener(progressEventHandler);
         iscsiStorageModel.setIsGrouppedByTarget(true);
         iscsiStorageModel.setIgnoreGrayedOut(true);
 
@@ -367,7 +353,6 @@
         // Create FcpStorageModel
         fcpStorageModel = new FcpStorageModel();
         fcpStorageModel.setContainer(storageModel);
-        
fcpStorageModel.getPropertyChangedEvent().addListener(progressEventHandler);
         fcpStorageModel.setIsGrouppedByTarget(false);
         fcpStorageModel.setIgnoreGrayedOut(true);
         fcpStorageView = new FcpStorageView(false, 278, 240);
@@ -431,25 +416,15 @@
 
         // Execute 'UpdateCommand' to call 'GetDeviceList'
         sanStorageModel.getUpdateCommand().execute();
+
+        sanStorageModel.setWidgetModel(diskModel);
+        externalDiskPanel.clear();
+        externalDiskPanel.add(storageView);
     }
 
     public boolean handleEnterKeyDisabled() {
         return storageView != null && storageView.isSubViewFocused();
     }
-
-    final IEventListener<PropertyChangedEventArgs> progressEventHandler = new 
IEventListener<PropertyChangedEventArgs>() {
-        @Override
-        public void eventRaised(Event<? extends PropertyChangedEventArgs> ev, 
Object sender, PropertyChangedEventArgs args) {
-            if (PropertyChangedEventArgs.PROGRESS.equals(args.propertyName)) {
-                externalDiskPanel.clear();
-                if (sanStorageModel.getProgress() != null) {
-                    externalDiskPanel.add(progressContent);
-                } else {
-                    externalDiskPanel.add(storageView);
-                }
-            }
-        }
-    };
 
     @Override
     public AbstractDiskModel flush() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
index 1178cec..41f2588 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
@@ -135,10 +135,11 @@
         clearItems();
         initializeItems(null, null);
 
-        AsyncQuery asyncQuery = new AsyncQuery(this, new INewAsyncCallback() {
+        final SanStorageModel model = this;
+        Object target = getWidgetModel() != null ? getWidgetModel() : 
getContainer();
+        AsyncQuery asyncQuery = new AsyncQuery(target, new INewAsyncCallback() 
{
             @Override
             public void onSuccess(Object target, Object returnValue) {
-                SanStorageModel model = (SanStorageModel) target;
                 VdcQueryReturnValue response = (VdcQueryReturnValue) 
returnValue;
                 if (response.getSucceeded()) {
                     model.applyData((ArrayList<LUNs>) 
response.getReturnValue(), false);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
index 9db0554..6224354 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
@@ -287,9 +287,7 @@
         }
     }
 
-    private void postLogin(FrontendActionAsyncResult result) {
-        VdcReturnValueBase returnValue = result.getReturnValue();
-        SanStorageModelBase sanStorageModel = (SanStorageModelBase) 
result.getState();
+    private void postLogin( VdcReturnValueBase returnValue, 
SanStorageModelBase sanStorageModel) {
         SanTargetModel sanTargetModel = 
sanStorageModel.targetsToConnect.remove(0);
         boolean success = returnValue != null && returnValue.getSucceeded();
 
@@ -316,11 +314,11 @@
         ArrayList<VdcActionParametersBase> parameters = new 
ArrayList<VdcActionParametersBase>();
         ArrayList<IFrontendActionAsyncCallback> callbacks = new 
ArrayList<IFrontendActionAsyncCallback>();
 
+        final SanStorageModelBase sanStorageModel = this;
         IFrontendActionAsyncCallback loginCallback = new 
IFrontendActionAsyncCallback() {
             @Override
             public void executed(FrontendActionAsyncResult result) {
-                SanStorageModelBase sanStorageModel = (SanStorageModelBase) 
result.getState();
-                sanStorageModel.postLogin(result);
+                sanStorageModel.postLogin(result.getReturnValue(), 
sanStorageModel);
             }
         };
 
@@ -339,9 +337,8 @@
             callbacks.add(loginCallback);
         }
 
-        getContainer().startProgress(null);
-
-        Frontend.getInstance().runMultipleActions(actionTypes, parameters, 
callbacks, null, this);
+        Object target = getWidgetModel() != null ? getWidgetModel() : 
getContainer();
+        Frontend.getInstance().runMultipleActions(actionTypes, parameters, 
callbacks, null, target);
     }
 
     private void sanTargetModel_LoggedIn(Object sender, EventArgs args)
@@ -394,10 +391,11 @@
 
         setMessage(null);
 
-        AsyncQuery asyncQuery = new AsyncQuery(this, new INewAsyncCallback() {
+        final SanStorageModelBase model = this;
+        Object target = getWidgetModel() != null ? getWidgetModel() : 
getContainer();
+        AsyncQuery asyncQuery = new AsyncQuery(target, new INewAsyncCallback() 
{
             @Override
             public void onSuccess(Object target, Object returnValue) {
-                SanStorageModelBase model = (SanStorageModelBase) target;
                 Object result = ((VdcQueryReturnValue) 
returnValue).getReturnValue();
                 model.postDiscoverTargetsInternal(result != null ? 
(ArrayList<StorageServerConnections>) result
                         : new ArrayList<StorageServerConnections>());


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

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

Reply via email to