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