Alexander Wels has uploaded a new change for review. Change subject: webadmin: Events list ......................................................................
webadmin: Events list - Both the bottom event tab and the events main tab were using the same list model. If you refreshed/paged in the events Main tab it would also page/refresh in the bottom events tab. This patch creates 2 instances of the event list model and properly assigns each to their respective views. - Clean up some generics for the EventListModel. Change-Id: Ib5675f0e67b7f57f1cc7a132bea0d4bb3c091c2f Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1224707 Signed-off-by: Alexander Wels <aw...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/EventModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/MainSectionView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/model/EventModelProvider.java 8 files changed, 41 insertions(+), 21 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/57/42457/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java index 95ffe3a..8853ac1 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java @@ -62,6 +62,7 @@ import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; +import com.google.inject.name.Named; public class CommonModel extends ListModel<SearchableListModel> { @@ -90,7 +91,7 @@ private final PoolListModel poolListModel; private final TemplateListModel templateListModel; private final UserListModel userListModel; - private final EventListModel eventListModel; + private final EventListModel<Void> eventListModel; private final QuotaListModel quotaListModel; private final ReportsListModel reportsListModel; private final VolumeListModel volumeListModel; @@ -120,7 +121,7 @@ final PoolListModel poolListModel, final TemplateListModel templateListModel, final UserListModel userListModel, - final EventListModel eventListModel, + @Named("footer") final EventListModel<Void> eventListModel, final QuotaListModel quotaListModel, final ReportsListModel reportsListModel, final VolumeListModel volumeListModel, diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java index 9183732..bb0b4d5 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ClientGinjectorExtension.java @@ -208,7 +208,7 @@ MainModelProvider<DbUser, UserListModel> getMainTabUserModelProvider(); - MainModelProvider<AuditLog, EventListModel> getMainTabEventModelProvider(); + MainModelProvider<AuditLog, EventListModel<Void>> getMainTabEventModelProvider(); MainModelProvider<Void, ReportsListModel> getMainTabReportsModelProvider(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java index 5d350a5..9972c97 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/UiCommonModule.java @@ -43,7 +43,6 @@ import org.ovirt.engine.ui.webadmin.uicommon.model.ClusterPolicyModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.CpuProfilePermissionModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.DiskProfilePermissionModelProvider; -import org.ovirt.engine.ui.webadmin.uicommon.model.EventModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.InstanceTypeModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.RoleModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.RolePermissionModelProvider; @@ -104,9 +103,6 @@ // TaskListModel bind(TaskModelProvider.class).in(Singleton.class); - - // EventListModel - bind(EventModelProvider.class).in(Singleton.class); // RoleListModel bind(RoleModelProvider.class).in(Singleton.class); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/EventModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/EventModule.java index 16847f2..707f423 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/EventModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/EventModule.java @@ -10,12 +10,16 @@ import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.uicommon.model.EventModelProvider; import com.google.gwt.event.shared.EventBus; import com.google.gwt.inject.client.AbstractGinModule; import com.google.inject.Provider; import com.google.inject.Provides; import com.google.inject.Singleton; +import com.google.inject.TypeLiteral; +import com.google.inject.name.Named; +import com.google.inject.name.Names; public class EventModule extends AbstractGinModule { @@ -23,16 +27,16 @@ @Provides @Singleton - public MainModelProvider<AuditLog, EventListModel> getEventListProvider(EventBus eventBus, + public MainModelProvider<AuditLog, EventListModel<Void>> getEventListProvider(EventBus eventBus, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, final Provider<EventPopupPresenterWidget> popupProvider, - final Provider<EventListModel> modelProvider, + @Named("main") final Provider<EventListModel<Void>> modelProvider, final Provider<CommonModel> commonModelProvider) { - MainTabModelProvider<AuditLog, EventListModel> result = - new MainTabModelProvider<AuditLog, EventListModel>(eventBus, defaultConfirmPopupProvider, + MainTabModelProvider<AuditLog, EventListModel<Void>> result = + new MainTabModelProvider<AuditLog, EventListModel<Void>>(eventBus, defaultConfirmPopupProvider, commonModelProvider) { @Override - public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(EventListModel source, + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(EventListModel<Void> source, UICommand lastExecutedCommand, Model windowModel) { if (lastExecutedCommand == getModel().getDetailsCommand()) { return popupProvider.get(); @@ -45,9 +49,25 @@ return result; } + @Provides + @Singleton + @Named("footer") + public EventModelProvider getEventModelProvider(EventBus eventBus, + Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, + @Named("footer") final Provider<EventListModel<Void>> modelProvider) { + EventModelProvider result = new EventModelProvider(eventBus, defaultConfirmPopupProvider); + result.setModelProvider(modelProvider); + return result; + } + @Override protected void configure() { - bind(EventListModel.class).in(Singleton.class); + bind(new TypeLiteral<EventListModel<Void>>(){}) + .annotatedWith(Names.named("main")).to(new TypeLiteral<EventListModel<Void>>(){}) //$NON-NLS-1$ + .in(Singleton.class); + bind(new TypeLiteral<EventListModel<Void>>(){}) + .annotatedWith(Names.named("footer")).to(new TypeLiteral<EventListModel<Void>>(){}) //$NON-NLS-1$ + .in(Singleton.class); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java index 3b8670c..868d11e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java @@ -25,7 +25,8 @@ import com.gwtplatform.mvp.shared.proxy.PlaceRequest; import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; -public class MainTabEventPresenter extends AbstractMainTabWithDetailsPresenter<AuditLog, EventListModel, MainTabEventPresenter.ViewDef, MainTabEventPresenter.ProxyDef> { +public class MainTabEventPresenter extends AbstractMainTabWithDetailsPresenter<AuditLog, EventListModel<Void>, + MainTabEventPresenter.ViewDef, MainTabEventPresenter.ProxyDef> { private final static ApplicationConstants constants = AssetProvider.getConstants(); @@ -46,13 +47,13 @@ @TabInfo(container = MainTabPanelPresenter.class) static TabData getTabData( - MainModelProvider<AuditLog, EventListModel> modelProvider) { + MainModelProvider<AuditLog, EventListModel<Void>> modelProvider) { return new ModelBoundTabData(constants.eventMainTabLabel(), 14, modelProvider, Align.RIGHT); } @Inject public MainTabEventPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, - PlaceManager placeManager, MainModelProvider<AuditLog, EventListModel> modelProvider) { + PlaceManager placeManager, MainModelProvider<AuditLog, EventListModel<Void>> modelProvider) { super(eventBus, view, proxy, placeManager, modelProvider); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/MainSectionView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/MainSectionView.java index a5dcdbb..7e9263b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/MainSectionView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/MainSectionView.java @@ -40,6 +40,7 @@ import com.google.gwt.user.client.ui.SplitLayoutPanel; import com.google.gwt.user.client.ui.StackLayoutPanel; import com.google.gwt.user.client.ui.Widget; +import com.google.inject.name.Named; public class MainSectionView extends AbstractView implements MainSectionPresenter.ViewDef { @@ -93,7 +94,7 @@ BookmarkModelProvider bookmarkModelProvider, TagModelProvider tagModelProvider, AlertModelProvider alertModelProvider, - EventModelProvider eventModelProvider, + @Named("footer") EventModelProvider eventModelProvider, TaskModelProvider taskModelProvider, EventBus eventBus, ClientStorage clientStorage) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java index 7b9b407..dbae5ac 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java @@ -29,7 +29,8 @@ import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; -public class MainTabEventView extends AbstractMainTabTableView<AuditLog, EventListModel> implements MainTabEventPresenter.ViewDef { +public class MainTabEventView extends AbstractMainTabTableView<AuditLog, EventListModel<Void>> + implements MainTabEventPresenter.ViewDef { interface ViewUiBinder extends UiBinder<Widget, MainTabEventView> { ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); @@ -51,7 +52,7 @@ private AbstractTextColumn<AuditLog> messageColumn; @Inject - public MainTabEventView(MainModelProvider<AuditLog, EventListModel> modelProvider) { + public MainTabEventView(MainModelProvider<AuditLog, EventListModel<Void>> modelProvider) { super(modelProvider); initTable(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/model/EventModelProvider.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/model/EventModelProvider.java index 1bbcb2d..c87990b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/model/EventModelProvider.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/model/EventModelProvider.java @@ -12,7 +12,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; -public class EventModelProvider extends SearchableTabModelProvider<AuditLog, EventListModel> { +public class EventModelProvider extends SearchableTabModelProvider<AuditLog, EventListModel<Void>> { @Inject public EventModelProvider(EventBus eventBus, @@ -21,7 +21,7 @@ } @Override - protected void initializeModelHandlers(final EventListModel model) { + protected void initializeModelHandlers(final EventListModel<Void> model) { super.initializeModelHandlers(model); // Add necessary property change handlers -- To view, visit https://gerrit.ovirt.org/42457 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib5675f0e67b7f57f1cc7a132bea0d4bb3c091c2f 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