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

Reply via email to