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
