Alexander Wels has uploaded a new change for review.

Change subject: webadmin: load image refreshing data
......................................................................

webadmin: load image refreshing data

- Fixed when switching main tabs always show 'loading' image
so the user has feedback something is happening.
- Fixed when switching to sub tab with grid always show
loading image so the user has feedback something is happening.
- Added code to give user feedback when manually refreshing grid
using the refresh button.
- Automatic refresh unchanged to simulate 'push' technology while
we are still doing a data pull.

Change-Id: I8be80df57eafc4244c57029f8260d4d67c47b3f4
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=907491
Signed-off-by: Alexander Wels <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/AbstractRefreshManager.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java
4 files changed, 28 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/46/12946/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
index 66db5e9..47ec474 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/AbstractSubTabPresenter.java
@@ -119,6 +119,11 @@
 
         // Notify model provider that the tab has been revealed
         modelProvider.onSubTabSelected();
+
+        ActionTable<?> table = getView().getTable();
+        if(table != null) {
+            table.setLoadingState(LoadingState.LOADING);
+        }
     }
 
     @Override
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 ad5aa1a..2a1272d 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
@@ -24,6 +24,11 @@
  */
 public abstract class AbstractRefreshManager<T extends BaseRefreshPanel> {
 
+    public interface ManualRefreshCallback {
+        //Callback
+        void onManualRefresh();
+    }
+
     // Prefix for keys used to store refresh rates of individual data grids
     private static final String GRID_REFRESH_RATE_PREFIX = "GridRefreshRate"; 
//$NON-NLS-1$
 
@@ -49,6 +54,7 @@
     private final ModelProvider<? extends GridController> modelProvider;
     private final ClientStorage clientStorage;
     private final T refreshPanel;
+    private ManualRefreshCallback manualRefreshCallback;
 
     private GridController controller;
 
@@ -122,6 +128,9 @@
         refreshPanel.addClickHandler(new ClickHandler() {
             @Override
             public void onClick(ClickEvent event) {
+                if(manualRefreshCallback != null) {
+                    manualRefreshCallback.onManualRefresh();
+                }
                 controller.refresh();
             }
         });
@@ -171,4 +180,7 @@
         return DEFAULT_REFRESH_RATE;
     }
 
+    public void setManualRefreshCallback(ManualRefreshCallback 
manualRefreshCallback) {
+        this.manualRefreshCallback = manualRefreshCallback;
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.java
index ebb4c0f..9531aea 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition;
 import org.ovirt.engine.ui.common.widget.action.SimpleActionButton;
 import org.ovirt.engine.ui.common.widget.refresh.AbstractRefreshManager;
+import 
org.ovirt.engine.ui.common.widget.refresh.AbstractRefreshManager.ManualRefreshCallback;
 import org.ovirt.engine.ui.common.widget.refresh.RefreshPanel;
 import org.ovirt.engine.ui.common.widget.refresh.SimpleRefreshManager;
 
@@ -17,6 +18,7 @@
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.CellTable.Resources;
+import 
com.google.gwt.user.cellview.client.LoadingStateChangeEvent.LoadingState;
 import com.google.gwt.user.client.ui.HTMLPanel;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.MenuItem;
@@ -75,6 +77,11 @@
             EventBus eventBus, AbstractRefreshManager<RefreshPanel> 
refreshManager) {
         super(dataProvider, resources, headerResources, eventBus);
         this.refreshPanel = refreshManager.getRefreshPanel();
+        refreshManager.setManualRefreshCallback(new ManualRefreshCallback() {
+            public void onManualRefresh() {
+                setLoadingState(LoadingState.LOADING);
+            }
+        });
         initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
         initStyles();
         refreshPanel.setVisible(false);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java
index 7636a88..fb6e2f2 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java
@@ -8,6 +8,7 @@
 import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces;
 
 import com.google.gwt.event.shared.EventBus;
+import 
com.google.gwt.user.cellview.client.LoadingStateChangeEvent.LoadingState;
 import com.google.gwt.view.client.SelectionChangeEvent;
 import com.gwtplatform.mvp.client.View;
 import com.gwtplatform.mvp.client.proxy.PlaceManager;
@@ -76,6 +77,9 @@
         }
 
         getView().getTable().resetScrollPosition();
+        //Clear the existing data so we get a 'loading' image.
+        getView().getTable().setLoadingState(LoadingState.LOADING);
+        //modelProvider.getModel().setItems(null);
     }
 
     /**


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

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