Alexander Wels has uploaded a new change for review.

Change subject: userportal,webadmin: grid refresh improvements
......................................................................

userportal,webadmin: grid refresh improvements

- Minor code cleanup.
- Fixed issue where refresh change was not registered by
  the one of the active models when clicking out and into
  the window. This behavior was shown when you had the refresh
  rate at 5 seconds, then clicked out of the window making
  everything switch to 60, one of the active models would stay
  at 5 seconds.
- Minor speed improvement on how many events where sent when the
  refresh rate was changed.

Change-Id: I6d0a2af533285b4248305db3a5e5851d0d004fa0
Signed-off-by: Alexander Wels <aw...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/GridTimer.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
3 files changed, 20 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/25592/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
index 0a11ac0..214cfcb 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
@@ -135,10 +135,13 @@
         // Change refresh rate only when the model timer is currently active 
and not paused
         if (modelTimer.isActive() && !modelTimer.isPaused()) {
             if (inFocus) {
+                modelTimer.stop();
                 modelTimer.setRefreshRate(readRefreshRate());
             } else {
+                modelTimer.stop();
                 modelTimer.setRefreshRate(OUT_OF_FOCUS_REFRESH_RATE);
             }
+            modelTimer.start();
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/GridTimer.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/GridTimer.java
index 8a15295..909be8e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/GridTimer.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/GridTimer.java
@@ -112,7 +112,7 @@
 
     private final EventBus eventBus;
 
-    private final String name;
+    public final String name;
 
     private boolean active;
 
@@ -200,13 +200,24 @@
      * @param interval in seconds
      */
     public void setRefreshRate(int interval) {
+        setRefreshRate(interval, true);
+    }
+
+    /**
+     * Set the refresh rate and fire an event that the state of the timer has 
changed.
+     *
+     * @param interval in seconds
+     */
+    public void setRefreshRate(int interval, boolean fireEvent) {
         if (getRefreshRate() == interval) {
             return;
         }
         logger.fine("GridTimer[" + name + "]: Refresh Rate set to: " + 
interval); //$NON-NLS-1$ //$NON-NLS-2$
         // set the NORMAL interval
         normalInterval = interval;
-        GridTimerStateChangeEvent.fire(this, getRefreshRate());
+        if (fireEvent) {
+            GridTimerStateChangeEvent.fire(this, getRefreshRate());
+        }
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
index fe27f60..01168a3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
@@ -364,24 +364,22 @@
                     //Immediately adjust timer and restart if it was active.
                     if (newInterval != timer.getRefreshRate()) {
                         timer.stop();
-                        timer.setRefreshRate(newInterval);
+                        timer.setRefreshRate(newInterval, false);
                         timer.start();
                     }
                 } else {
                     //Update the timer interval for inactive timers, so they 
are correct when they become active
-                    timer.setRefreshRate(newInterval);
+                    timer.setRefreshRate(newInterval, false);
                 }
             }
         });
     }
 
     protected void replaceTimerChangeHandler() {
-        if (timerChangeHandler == null) {
-            addTimerChangeHandler();
-        } else {
+        if (timerChangeHandler != null) {
             removeTimerChangeHandler();
-            addTimerChangeHandler();
         }
+        addTimerChangeHandler();
     }
 
     @Override


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

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

Reply via email to