Alexander Wels has uploaded a new change for review. Change subject: webadmin: Host interface manual refresh ......................................................................
webadmin: Host interface manual refresh - Fixed issue where the refresh would cause a scrollbar to appear when manually refreshing the HostInterface - Added manual refresh event being fired when the user clicks the refresh button on the top right of the grid. Change-Id: I3e38c077a6eeef335fe1f8e8f468c70a5ca8ad92 Bug-Url: https://bugzilla.redhat.com/?????? 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 A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/ManualRefreshEvent.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostInterfacePresenter.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostInterfaceForm.java 6 files changed, 81 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/19143/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 cf264ee..d69906f 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 @@ -18,11 +18,13 @@ import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HasHandlers; /** * Provides refresh rate management for a {@link GridController}. */ -public abstract class AbstractRefreshManager<T extends BaseRefreshPanel> { +public abstract class AbstractRefreshManager<T extends BaseRefreshPanel> implements HasHandlers { /** * Callback triggered when the user clicks the refresh button. @@ -58,6 +60,7 @@ private final ModelProvider<? extends GridController> modelProvider; private final ClientStorage clientStorage; private final T refreshPanel; + private final EventBus eventBus; private ManualRefreshCallback manualRefreshCallback; private GridController controller; @@ -66,6 +69,7 @@ EventBus eventBus, ClientStorage clientStorage) { this.modelProvider = modelProvider; this.clientStorage = clientStorage; + this.eventBus = eventBus; this.refreshPanel = createRefreshPanel(); listenOnManualRefresh(); @@ -129,12 +133,14 @@ * When the user clicks the refresh button, enforce the refresh without even asking the timer. */ protected void listenOnManualRefresh() { + final AbstractRefreshManager<T> manager = this; refreshPanel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (manualRefreshCallback != null) { manualRefreshCallback.onManualRefresh(); } + ManualRefreshEvent.fire(manager); controller.refresh(); } }); @@ -188,4 +194,8 @@ this.manualRefreshCallback = manualRefreshCallback; } + @Override + public void fireEvent(GwtEvent<?> event) { + eventBus.fireEvent(event); + } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/ManualRefreshEvent.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/ManualRefreshEvent.java new file mode 100644 index 0000000..5ed229c --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/refresh/ManualRefreshEvent.java @@ -0,0 +1,48 @@ +package org.ovirt.engine.ui.common.widget.refresh; + +import org.ovirt.engine.ui.common.widget.refresh.ManualRefreshEvent.ManualRefreshHandler; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HasHandlers; + +public class ManualRefreshEvent extends GwtEvent<ManualRefreshHandler> { + /** + * Manual refresh handler type. + */ + private static final Type<ManualRefreshHandler> TYPE = new Type<ManualRefreshHandler>(); + + /** + * Manual Refresh Event handler interface. + */ + public interface ManualRefreshHandler extends EventHandler { + /** + * Method to call on refresh. + * @param event The associated {@code Event} + */ + void onManualRefresh(ManualRefreshEvent event); + } + + /** + * Fire a {@code ManualRefreshEvent}. + * @param source The source of the event. + */ + public static void fire(HasHandlers source) { + ManualRefreshEvent eventInstance = new ManualRefreshEvent(); + source.fireEvent(eventInstance); + } + + public static Type<ManualRefreshHandler> getType() { + return TYPE; + } + + @Override + public Type<ManualRefreshHandler> getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(ManualRefreshHandler handler) { + handler.onManualRefresh(this); + } +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.ui.xml index cb9f7d1..4d54eb9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/SimpleActionTable.ui.xml @@ -7,7 +7,8 @@ <ui:style type="org.ovirt.engine.ui.common.widget.table.SimpleActionTable.Style"> .panel { - overflow: auto; + overflow-y: auto; + overflow-x: hidden; height: 100%; } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostInterfacePresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostInterfacePresenter.java index db0a622..1aeb77b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostInterfacePresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostInterfacePresenter.java @@ -4,6 +4,8 @@ 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.widget.refresh.ManualRefreshEvent; +import org.ovirt.engine.ui.common.widget.refresh.ManualRefreshEvent.ManualRefreshHandler; import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceLineModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel; @@ -23,7 +25,8 @@ import com.gwtplatform.mvp.client.proxy.PlaceRequest; import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; -public class SubTabHostInterfacePresenter extends AbstractSubTabPresenter<VDS, HostListModel, HostInterfaceListModel, SubTabHostInterfacePresenter.ViewDef, SubTabHostInterfacePresenter.ProxyDef> { +public class SubTabHostInterfacePresenter extends AbstractSubTabPresenter<VDS, HostListModel, HostInterfaceListModel, + SubTabHostInterfacePresenter.ViewDef, SubTabHostInterfacePresenter.ProxyDef> implements ManualRefreshHandler { @ProxyCodeSplit @NameToken(ApplicationPlaces.hostInterfaceSubTabPlace) @@ -31,6 +34,7 @@ } public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDS> { + void removeContent(); } @TabInfo(container = HostSubTabPanelPresenter.class) @@ -57,4 +61,9 @@ updateMainTabSelection(event.getSelectedItems()); } + @ProxyEvent + @Override + public void onManualRefresh(ManualRefreshEvent event) { + getView().removeContent(); + } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java index 7324ace..159e12d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostInterfaceView.java @@ -29,6 +29,7 @@ public class SubTabHostInterfaceView extends AbstractSubTabFormView<VDS, HostListModel, HostInterfaceListModel> implements SubTabHostInterfacePresenter.ViewDef { + HostInterfaceForm hostInterfaceForm = null; interface ViewIdHandler extends ElementIdHandler<SubTabHostInterfaceView> { ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); @@ -131,9 +132,16 @@ } @Override + public void removeContent() { + if (hostInterfaceForm != null) { + hostInterfaceForm.setVisible(false); + } + } + + @Override public void setMainTabSelectedItem(VDS selectedItem) { // TODO(vszocs) possible performance optimization: don't create HostInterfaceForm upon each selection - HostInterfaceForm hostInterfaceForm = new HostInterfaceForm(getDetailModel()); + hostInterfaceForm = new HostInterfaceForm(getDetailModel()); contentPanel.remove(contentPanel.getWidgetCount() - 1); contentPanel.add(hostInterfaceForm); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostInterfaceForm.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostInterfaceForm.java index ced8d66..56b326b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostInterfaceForm.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/host/HostInterfaceForm.java @@ -82,6 +82,7 @@ } void showModels(List<HostInterfaceLineModel> interfaceLineModels) { + this.setVisible(true); grid.resizeRows(interfaceLineModels.size()); int row = 0; -- To view, visit http://gerrit.ovirt.org/19143 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3e38c077a6eeef335fe1f8e8f468c70a5ca8ad92 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