Daniel Erez has uploaded a new change for review.

Change subject: webadmin: snapshots sub-tab - ensure model listeners
......................................................................

webadmin: snapshots sub-tab - ensure model listeners

VMs -> Snapshots sub-sub:
Ensure model listeners existence after sign out.
Re-adding the listeners in presenter's onUiCommonInit method
as VmSnapshotListModel is being initialized on sign in
(along with the other list models:  VmListModel -> initDetailModels).

Change-Id: I006023de74150754d8c79f95b79eb9ad0158b055
Bug-Url: https://bugzilla.redhat.com/1058618
Signed-off-by: Daniel Erez <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineSnapshotView.java
4 files changed, 41 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/25536/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java
index f4a506d..5009829 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java
@@ -82,4 +82,5 @@
      */
     public abstract void initTable(CommonApplicationConstants constants);
 
+    public void addModelListeners() { }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
index 5d82132..81ea7b6 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java
@@ -51,6 +51,20 @@
     private final CommonApplicationMessages messages;
     private final CommonApplicationConstants constants;
 
+    private final IEventListener entityChangedEvent = new IEventListener() {
+        @Override
+        public void eventRaised(Event ev, Object sender, EventArgs args) {
+            updateMemoryColumnVisibility();
+        }
+    };
+
+    private final IEventListener selectedItemChangedEvent = new 
IEventListener() {
+        @Override
+        public void eventRaised(Event ev, Object sender, EventArgs args) {
+            updateSnapshotInfo();
+        }
+    };
+
     VmSnapshotInfoPanel vmSnapshotInfoPanel;
 
     public VmSnapshotListModelTable(DataBoundTabModelProvider<Snapshot, L> 
modelProvider,
@@ -85,18 +99,17 @@
         initActionButtons(constants);
 
         // Add event listeners
-        getModel().getEntityChangedEvent().addListener(new IEventListener() {
-            @Override
-            public void eventRaised(Event ev, Object sender, EventArgs args) {
-                updateMemoryColumnVisibility();
-            }
-        });
-        getModel().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
-            @Override
-            public void eventRaised(Event ev, Object sender, EventArgs args) {
-                updateSnapshotInfo();
-            }
-        });
+        addModelListeners();
+    }
+
+    @Override
+    public void addModelListeners() {
+        if 
(!getModel().getEntityChangedEvent().getListeners().contains(entityChangedEvent))
 {
+            getModel().getEntityChangedEvent().addListener(entityChangedEvent);
+        }
+        if 
(!getModel().getSelectedItemChangedEvent().getListeners().contains(selectedItemChangedEvent))
 {
+            
getModel().getSelectedItemChangedEvent().addListener(selectedItemChangedEvent);
+        }
     }
 
     private void updateSnapshotInfo() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
index 7a5302d..064e2e9 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineSnapshotPresenter.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.ui.common.place.PlaceRequestFactory;
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
+import org.ovirt.engine.ui.common.uicommon.model.UiCommonInitEvent;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmSnapshotListModel;
@@ -31,6 +32,9 @@
     }
 
     public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VM> {
+
+        void addModelListeners();
+
     }
 
     @TabInfo(container = VirtualMachineSubTabPanelPresenter.class)
@@ -57,4 +61,11 @@
         updateMainTabSelection(event.getSelectedItems());
     }
 
+    @Override
+    public void onUiCommonInit(UiCommonInitEvent event) {
+        super.onUiCommonInit(event);
+
+        getView().addModelListeners();
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineSnapshotView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineSnapshotView.java
index bf5415f..bdee838 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineSnapshotView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineSnapshotView.java
@@ -41,4 +41,8 @@
         initWidget(getModelBoundTableWidget());
     }
 
+    @Override
+    public void addModelListeners() {
+        getModelBoundTableWidget().addModelListeners();
+    }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I006023de74150754d8c79f95b79eb9ad0158b055
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