Daniel Erez has uploaded a new change for review.

Change subject: webadmin: disable disk dialog widgets on error
......................................................................

webadmin: disable disk dialog widgets on error

Disable all the widgets of new disk dialog
when creating a disk is not applicable.
E.g. http://i.imgur.com/kBvem9U.jpg

Change-Id: Ic3c7ea57d203d96e5c3595a4f22c0ce21ffe8136
Bug-Url: https://bugzilla.redhat.com/1141797
Signed-off-by: Daniel Erez <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModelBoundPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmDiskPopupWidget.java
2 files changed, 27 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/38361/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModelBoundPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModelBoundPopupWidget.java
index 1899c36..1d0cddc 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModelBoundPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractModelBoundPopupWidget.java
@@ -1,5 +1,8 @@
 package org.ovirt.engine.ui.common.widget.uicommon.popup;
 
+import com.google.gwt.user.client.ui.HasEnabled;
+import com.google.gwt.user.client.ui.IndexedPanel;
+import com.google.gwt.user.client.ui.Widget;
 import org.ovirt.engine.ui.common.view.popup.FocusableComponentsContainer;
 import org.ovirt.engine.ui.common.widget.HasEditorDriver;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
@@ -23,4 +26,13 @@
         return nextTabIndex;
     }
 
+    public void disableWidget(Widget widget) {
+        if (widget instanceof IndexedPanel) {
+            for (int i = 0; i < ((IndexedPanel) widget).getWidgetCount(); i++) 
{
+                disableWidget(((IndexedPanel) widget).getWidget(i));
+            }
+        } else if (widget instanceof HasEnabled) {
+            ((HasEnabled) widget).setEnabled(false);
+        }
+    }
 }
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 0090a91..670675b 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
@@ -19,6 +19,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile;
+import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
@@ -50,6 +51,7 @@
 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 java.util.ArrayList;
 
@@ -314,6 +316,19 @@
             }
         });
 
+        disk.getPropertyChangedEvent().addListener(new 
IEventListener<PropertyChangedEventArgs>() {
+            @Override
+            public void eventRaised(Event<? extends PropertyChangedEventArgs> 
ev, Object sender, PropertyChangedEventArgs args) {
+                String propName = args.propertyName;
+                if ("Message".equals(propName)) { //$NON-NLS-1$
+                    if (!StringHelper.isNullOrEmpty(disk.getMessage())) {
+                        disableWidget(getWidget());
+                        disk.getDefaultCommand().setIsExecutionAllowed(false);
+                    }
+                }
+            }
+        });
+
         diskTypePanel.addRadioButton(
                 constants.internalDisk(),
                 disk.getIsNew() || disk.getDisk().getDiskStorageType() == 
DiskStorageType.IMAGE,


-- 
To view, visit https://gerrit.ovirt.org/38361
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic3c7ea57d203d96e5c3595a4f22c0ce21ffe8136
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to