Alexander Wels has uploaded a new change for review.

Change subject: webadmin: detach handlers on hide
......................................................................

webadmin: detach handlers on hide

- Before this patch the change event handlers were detached
  when the object containing them would be detached from the
  DOM, this could happen many times and it would cause the
  handlers to be detached before we wanted them to. This patch
  detaches the handlers when the popup is hidden instead of
  detached from the DOM.

Change-Id: I56de07f80cbb21fe6362d6df488defe7422cebfb
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1164744
Signed-off-by: Alexander Wels <[email protected]>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AssignTagsPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/RolePopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/user/ManageEventsPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/EntityModelCellTree.java
4 files changed, 18 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/49/35349/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AssignTagsPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AssignTagsPopupView.java
index f7cde85..00022ab 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AssignTagsPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AssignTagsPopupView.java
@@ -70,6 +70,12 @@
     }
 
     @Override
+    public void hide() {
+        super.hide();
+        tree.getTreeViewModel().removeHandlers();
+    }
+
+    @Override
     public void edit(TagListModel object) {
         driver.edit(object);
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/RolePopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/RolePopupView.java
index 5cfa5ec..171161b 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/RolePopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/RolePopupView.java
@@ -149,6 +149,12 @@
         tree = new EntityModelCellTree<SelectionTreeNodeModel, 
SimpleSelectionTreeNodeModel>(res);
     }
 
+    @Override
+    public void hide() {
+        super.hide();
+        tree.getTreeViewModel().removeHandlers();
+    }
+
     private void localize(ApplicationConstants constants) {
         nameEditor.setLabel(constants.RoleNameLabel());
         descriptionEditor.setLabel(constants.RoleDescriptionLabel());
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/user/ManageEventsPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/user/ManageEventsPopupView.java
index 35550be..02f57e9 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/user/ManageEventsPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/user/ManageEventsPopupView.java
@@ -103,6 +103,12 @@
         tree = new EntityModelCellTree<SelectionTreeNodeModel, 
SimpleSelectionTreeNodeModel>(res);
     }
 
+    @Override
+    public void hide() {
+        super.hide();
+        tree.getTreeViewModel().removeHandlers();
+    }
+
     private void initExpandButtons() {
         expandAllButton.addClickHandler(new ClickHandler() {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/EntityModelCellTree.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/EntityModelCellTree.java
index f28b634..df7e1cd 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/EntityModelCellTree.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/editor/EntityModelCellTree.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.webadmin.widget.editor;
 
-import com.google.gwt.event.logical.shared.AttachEvent;
 import org.ovirt.engine.ui.common.uicommon.model.TreeNodeModel;
 import org.ovirt.engine.ui.common.widget.tree.ElementIdCellTree;
 import org.ovirt.engine.ui.webadmin.uicommon.model.ModelListTreeViewModel;
@@ -23,14 +22,6 @@
 
     public EntityModelCellTree(CellTree.Resources res) {
         super(new ModelListTreeViewModel<T, M>(), null, res);
-        addAttachHandler(new AttachEvent.Handler() {
-            @Override
-            public void onAttachOrDetach(AttachEvent event) {
-                if (!event.isAttached()) {
-                    getTreeViewModel().removeHandlers();
-                }
-            }
-        });
     }
 
 }


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

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

Reply via email to