Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Changed editor prohibition reason mechanism
......................................................................

webadmin: Changed editor prohibition reason mechanism

The tooltip displayed over disabled editor widgets (change prohibition
reason) is now updated upon call to setChangeProhibitionReason()
rather than setIsChangeable(). This means that the correct tooltip
will be shown even if setChangeProhibitionReason() is called after
setIsChangeable(false), which hasn't been the case up 'til now.

Change-Id: Ifb76b2348922bfebf62c54da4ee2a8ca45ebef31
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
5 files changed, 21 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/16464/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
index 1dc685c..b04d8a2 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/editor/UiCommonEditorVisitor.java
@@ -109,6 +109,11 @@
                             onIsChangablePropertyChange(functionalEditor, 
ownerModel);
                         }
 
+                        // ChangeProhibitionReason
+                        else if ("ChangeProhibitionReason".equals(propName)) { 
//$NON-NLS-1$
+                            onChangeProhibitionReasonChange(functionalEditor, 
ownerModel);
+                        }
+
                         // IsAvailable
                         else if ("IsAvailable".equals(propName)) { 
//$NON-NLS-1$
                             onIsAvailablePropertyChange(functionalEditor, 
ownerModel);
@@ -205,10 +210,14 @@
         if (model.getIsChangable()) {
             editor.setEnabled(true);
         } else {
-            editor.disable(model.getChangeProhibitionReason());
+            editor.setEnabled(false);
         }
     }
 
+    void onChangeProhibitionReasonChange(HasEnabledWithHints editor, 
EntityModel model) {
+        editor.setDisabilityHint(model.getChangeProhibitionReason());
+    }
+
     void onIsAvailablePropertyChange(HasAccess editor, EntityModel model) {
         boolean isAvailable = model.getIsAvailable();
         editor.setAccessible(isAvailable);
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
index 12b1e2b..88ab1db 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AbstractValidatedWidgetWithLabel.java
@@ -195,17 +195,12 @@
         }
 
         if (!keepTitleOnSetEnabled) {
-            updateWidgetTitle(null);
+            setDisabilityHint(null);
         }
     }
 
     @Override
-    public void disable(String disabilityHint) {
-        setEnabled(false);
-        updateWidgetTitle(disabilityHint);
-    }
-
-    private void updateWidgetTitle(String title) {
+    public void setDisabilityHint(String title) {
         contentWidget.asWidget().setTitle(title);
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
index fbf1bfe..b5c7fdc 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/HasEnabledWithHints.java
@@ -9,11 +9,11 @@
 public interface HasEnabledWithHints extends HasEnabled {
 
     /**
-     * Disables this widget, providing an disability hint.
+     * Sets a disability hint for a widget, to be shown if it's disabled.
      *
      * @param disabilityHint
      *            Disability hint describing reason why this widget is 
disabled (can be {@code null}).
      */
-    void disable(String disabilityHint);
+    void setDisabilityHint(String disabilityHint);
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
index 7d1c09d..ea25e54 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/WidgetWithLabelEditor.java
@@ -72,8 +72,8 @@
     }
 
     @Override
-    public void disable(String disabilityHint) {
-        widgetWithLabel.disable(disabilityHint);
+    public void setDisabilityHint(String disabilityHint) {
+        widgetWithLabel.setDisabilityHint(disabilityHint);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
index d183309..7be3598 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/Model.java
@@ -282,7 +282,7 @@
 
             if (isChangable)
             {
-                privateChangeProhibitionReason = null;
+                setChangeProhibitionReason(null);
             }
         }
         return this;
@@ -297,7 +297,10 @@
 
     public void setChangeProhibitionReason(String value)
     {
-        privateChangeProhibitionReason = value;
+        if (privateChangeProhibitionReason != value) {
+            privateChangeProhibitionReason = value;
+            onPropertyChanged(new 
PropertyChangedEventArgs("ChangeProhibitionReason")); //$NON-NLS-1$
+        }
     }
 
     private boolean isSelected;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb76b2348922bfebf62c54da4ee2a8ca45ebef31
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
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