Daniel Erez has uploaded a new change for review. Change subject: webadmin: Events tab - General sub-tab [wip] ......................................................................
webadmin: Events tab - General sub-tab [wip] Added a General sub-tab under events sub-tab: * Contains ID, Time and Message fields. * Will ease copy-paste message for the user. Change-Id: Ifccb0d0b615952f73844a6abd404b4d7cf268452 Signed-off-by: Daniel Erez <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventListModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/EventGeneralModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.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/place/ApplicationPlaces.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabEventPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/EventSubTabPanelPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/SubTabEventGeneralPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/EventSubTabPanelView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.ui.xml 13 files changed, 358 insertions(+), 19 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/10/13010/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventListModel.java index 56e4fd4..223da53 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventListModel.java @@ -17,14 +17,16 @@ import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.GridTimer; -import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; +import org.ovirt.engine.ui.uicommonweb.models.ListWithDetailsModel; +import org.ovirt.engine.ui.uicommonweb.models.users.EventGeneralModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.ObservableCollection; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; -public class EventListModel extends SearchableListModel +public class EventListModel extends ListWithDetailsModel { private final GridTimer timer; @@ -106,6 +108,16 @@ } @Override + protected void InitDetailModels() + { + super.InitDetailModels(); + + ObservableCollection<EntityModel> list = new ObservableCollection<EntityModel>(); + list.add(new EventGeneralModel()); + setDetailModels(list); + } + + @Override public boolean IsSearchStringMatch(String searchString) { return searchString.trim().toLowerCase().startsWith("event"); //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/EventGeneralModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/EventGeneralModel.java new file mode 100644 index 0000000..ae6a774 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/EventGeneralModel.java @@ -0,0 +1,60 @@ +package org.ovirt.engine.ui.uicommonweb.models.users; + +import java.util.Date; + +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicompat.ConstantsManager; + +public class EventGeneralModel extends EntityModel +{ + public EventGeneralModel() { + setTitle(ConstantsManager.getInstance().getConstants().generalTitle()); + setHashName("general"); //$NON-NLS-1$ + } + + private int eventId; + private Date eventTime; + private String eventMessage; + + public int getEventId() { + return eventId; + } + + public void setEventId(int eventId) { + this.eventId = eventId; + } + + public Date getEventTime() { + return eventTime; + } + + public void setEventTime(Date eventTime) { + this.eventTime = eventTime; + } + + public String getEventMessage() { + return eventMessage; + } + + public void setEventMessage(String eventMessage) { + this.eventMessage = eventMessage; + } + + @Override + protected void OnEntityChanged() { + super.OnEntityChanged(); + + if (getEntity() != null) { + updateProperties(); + } + } + + private void updateProperties() { + AuditLog event = (AuditLog) getEntity(); + + setEventId(event.getlog_typeValue()); + setEventTime(event.getlog_time()); + setEventMessage(event.getmessage()); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index f7d54a5..567f03d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -1818,6 +1818,18 @@ @DefaultStringValue("Custom Event Id") String eventCustomEventId(); + @DefaultStringValue("General") + String eventGeneralSubTabLabel(); + + @DefaultStringValue("ID") + String eventId(); + + @DefaultStringValue("Time") + String eventTime(); + + @DefaultStringValue("Message") + String eventMessage(); + // Host configure local storage @DefaultStringValue("Data Center") String dcLocalStorage(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java index 900ca85..117234d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java @@ -98,6 +98,7 @@ import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateStorageListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateVmListModel; +import org.ovirt.engine.ui.uicommonweb.models.users.EventGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.users.UserEventListModel; import org.ovirt.engine.ui.uicommonweb.models.users.UserEventNotifierListModel; import org.ovirt.engine.ui.uicommonweb.models.users.UserGeneralModel; @@ -160,6 +161,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskStoragePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskTemplatePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.EventSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.SubTabEventGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeBrickPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeGeneralPresenter; @@ -686,4 +689,12 @@ AsyncProvider<SubTabNetworkPermissionPresenter> getSubTabNetworkPermissionPresenter(); SearchableDetailModelProvider<permissions, NetworkListModel, PermissionListModel> getSubTabNetworkPermissionModelProvider(); + + // Events + + AsyncProvider<EventSubTabPanelPresenter> getEventSubTabPanelPresenter(); + + AsyncProvider<SubTabEventGeneralPresenter> getSubTabEventGeneralPresenter(); + + DetailModelProvider<EventListModel, EventGeneralModel> getSubTabEventGeneralModelProvider(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java index 3faf600..65cf0b4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java @@ -117,6 +117,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskStoragePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskTemplatePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.disk.SubTabDiskVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.SubTabEventGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.EventSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeBrickPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeGeneralPresenter; @@ -299,6 +301,8 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.disk.SubTabDiskStorageView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.disk.SubTabDiskTemplateView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.disk.SubTabDiskVmView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.event.SubTabEventGeneralView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.event.EventSubTabPanelView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumeBrickView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumeEventView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumeGeneralView; @@ -1141,5 +1145,15 @@ bindPresenterWidget(EditNetworkPopupPresenterWidget.class, EditNetworkPopupPresenterWidget.ViewDef.class, EditNetworkPopupView.class); + + // Event + bindPresenter(EventSubTabPanelPresenter.class, + EventSubTabPanelPresenter.ViewDef.class, + EventSubTabPanelView.class, + EventSubTabPanelPresenter.ProxyDef.class); + bindPresenter(SubTabEventGeneralPresenter.class, + SubTabEventGeneralPresenter.ViewDef.class, + SubTabEventGeneralView.class, + SubTabEventGeneralPresenter.ProxyDef.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 3388a89..2bd6975 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 @@ -1,14 +1,16 @@ package org.ovirt.engine.ui.webadmin.gin.uicommon; -import org.ovirt.engine.core.common.businessentities.AuditLog; -import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; -import org.ovirt.engine.ui.common.uicommon.model.MainTabModelProvider; -import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; -import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; - import com.google.gwt.inject.client.AbstractGinModule; import com.google.inject.Provides; import com.google.inject.Singleton; +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.DetailTabModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.MainTabModelProvider; +import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; +import org.ovirt.engine.ui.uicommonweb.models.users.EventGeneralModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; public class EventModule extends AbstractGinModule { @@ -20,6 +22,14 @@ return new MainTabModelProvider<AuditLog, EventListModel>(ginjector, EventListModel.class); } + @Provides + @Singleton + public DetailModelProvider<EventListModel, EventGeneralModel> getEventGeneralProvider(ClientGinjector ginjector) { + return new DetailTabModelProvider<EventListModel, EventGeneralModel>(ginjector, + EventListModel.class, + EventGeneralModel.class); + } + @Override protected void configure() { } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java index 0c5f930..8e6968d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java @@ -286,6 +286,9 @@ + "permissions"; //$NON-NLS-1$ + // Event + + public static final String eventGeneralSubTabPlace = eventMainTabPlace + SUB_TAB_PREFIX + "general"; //$NON-NLS-1$ // Default places 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 a23603b..b4dec08 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 @@ -1,5 +1,7 @@ package org.ovirt.engine.ui.webadmin.section.main.presenter.tab; +import java.util.List; + import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.Align; @@ -7,13 +9,13 @@ import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces; -import org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractMainTabPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractMainTabWithDetailsPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.MainTabPanelPresenter; import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; +import com.gwtplatform.dispatch.annotation.GenEvent; import com.gwtplatform.mvp.client.TabData; -import com.gwtplatform.mvp.client.View; import com.gwtplatform.mvp.client.annotations.NameToken; import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; import com.gwtplatform.mvp.client.annotations.TabInfo; @@ -21,14 +23,21 @@ import com.gwtplatform.mvp.client.proxy.PlaceRequest; import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; -public class MainTabEventPresenter extends AbstractMainTabPresenter<AuditLog, EventListModel, MainTabEventPresenter.ViewDef, MainTabEventPresenter.ProxyDef> { +public class MainTabEventPresenter extends AbstractMainTabWithDetailsPresenter<AuditLog, EventListModel, MainTabEventPresenter.ViewDef, MainTabEventPresenter.ProxyDef> { + + @GenEvent + public static class EventSelectionChange { + + List<AuditLog> selectedItems; + + } @ProxyCodeSplit @NameToken(ApplicationPlaces.eventMainTabPlace) public interface ProxyDef extends TabContentProxyPlace<MainTabEventPresenter> { } - public interface ViewDef extends View { + public interface ViewDef extends AbstractMainTabWithDetailsPresenter.ViewDef<AuditLog> { } @TabInfo(container = MainTabPanelPresenter.class) @@ -44,15 +53,12 @@ } @Override - protected void onReveal() { - super.onReveal(); - - setSubTabPanelVisible(false); - } - - @Override protected PlaceRequest getMainTabRequest() { return new PlaceRequest(ApplicationPlaces.eventMainTabPlace); } + @Override + protected void fireTableSelectionChangeEvent() { + EventSelectionChangeEvent.fire(this, getSelectedItems()); + } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/EventSubTabPanelPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/EventSubTabPanelPresenter.java new file mode 100644 index 0000000..18d85c1 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/EventSubTabPanelPresenter.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event; + +import org.ovirt.engine.ui.common.presenter.DynamicTabContainerPresenter.DynamicTabPanel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractSubTabPanelPresenter; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.GwtEvent.Type; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.RequestTabsHandler; +import com.gwtplatform.mvp.client.TabView; +import com.gwtplatform.mvp.client.annotations.ContentSlot; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.annotations.RequestTabs; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealContentHandler; + +public class EventSubTabPanelPresenter extends AbstractSubTabPanelPresenter<EventSubTabPanelPresenter.ViewDef, EventSubTabPanelPresenter.ProxyDef> { + + @ProxyCodeSplit + public interface ProxyDef extends Proxy<EventSubTabPanelPresenter> { + } + + public interface ViewDef extends TabView, DynamicTabPanel { + } + + @RequestTabs + public static final Type<RequestTabsHandler> TYPE_RequestTabs = new Type<RequestTabsHandler>(); + + @ContentSlot + public static final Type<RevealContentHandler<?>> TYPE_SetTabContent = new Type<RevealContentHandler<?>>(); + + @Inject + public EventSubTabPanelPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy) { + super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/SubTabEventGeneralPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/SubTabEventGeneralPresenter.java new file mode 100644 index 0000000..f44b549 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/event/SubTabEventGeneralPresenter.java @@ -0,0 +1,62 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event; + +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; +import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; +import org.ovirt.engine.ui.uicommonweb.models.users.EventGeneralModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.EventSelectionChangeEvent; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.TabData; +import com.gwtplatform.mvp.client.annotations.NameToken; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.annotations.ProxyEvent; +import com.gwtplatform.mvp.client.annotations.TabInfo; +import com.gwtplatform.mvp.client.proxy.PlaceManager; +import com.gwtplatform.mvp.client.proxy.PlaceRequest; +import com.gwtplatform.mvp.client.proxy.RevealContentEvent; +import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; + +public class SubTabEventGeneralPresenter extends AbstractSubTabPresenter<AuditLog, EventListModel, EventGeneralModel, SubTabEventGeneralPresenter.ViewDef, SubTabEventGeneralPresenter.ProxyDef> { + + @ProxyCodeSplit + @NameToken(ApplicationPlaces.eventGeneralSubTabPlace) + public interface ProxyDef extends TabContentProxyPlace<SubTabEventGeneralPresenter> { + } + + public interface ViewDef extends AbstractSubTabPresenter.ViewDef<AuditLog> { + } + + @TabInfo(container = EventSubTabPanelPresenter.class) + static TabData getTabData(ClientGinjector ginjector) { + return new ModelBoundTabData(ginjector.getApplicationConstants().eventGeneralSubTabLabel(), 0, + ginjector.getSubTabEventGeneralModelProvider()); + } + + @Inject + public SubTabEventGeneralPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, + PlaceManager placeManager, DetailModelProvider<EventListModel, EventGeneralModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider); + } + + @Override + protected void revealInParent() { + RevealContentEvent.fire(this, EventSubTabPanelPresenter.TYPE_SetTabContent, this); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return new PlaceRequest(ApplicationPlaces.eventMainTabPlace); + } + + @ProxyEvent + public void onEventSelectionChange(EventSelectionChangeEvent event) { + updateMainTabSelection(event.getSelectedItems()); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/EventSubTabPanelView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/EventSubTabPanelView.java new file mode 100644 index 0000000..d849b90 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/EventSubTabPanelView.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.event; + +import org.ovirt.engine.ui.common.view.AbstractTabPanelView; +import org.ovirt.engine.ui.common.widget.tab.AbstractTabPanel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.EventSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.widget.tab.SimpleTabPanel; + +public class EventSubTabPanelView extends AbstractTabPanelView implements EventSubTabPanelPresenter.ViewDef { + + private final SimpleTabPanel tabPanel = new SimpleTabPanel(); + + public EventSubTabPanelView() { + initWidget(getTabPanel()); + } + + @Override + protected Object getContentSlot() { + return EventSubTabPanelPresenter.TYPE_SetTabContent; + } + + @Override + protected AbstractTabPanel getTabPanel() { + return tabPanel; + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.java new file mode 100644 index 0000000..5cf24ca --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.java @@ -0,0 +1,70 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.event; + +import javax.inject.Inject; + +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; +import org.ovirt.engine.ui.common.view.AbstractSubTabFormView; +import org.ovirt.engine.ui.common.widget.form.FormBuilder; +import org.ovirt.engine.ui.common.widget.form.FormItem; +import org.ovirt.engine.ui.common.widget.form.GeneralFormPanel; +import org.ovirt.engine.ui.common.widget.label.TextBoxLabel; +import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; +import org.ovirt.engine.ui.uicommonweb.models.users.EventGeneralModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.event.SubTabEventGeneralPresenter; +import org.ovirt.engine.ui.webadmin.widget.label.NullableNumberLabel; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.Editor; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.DateLabel; +import com.google.gwt.user.client.ui.Widget; + +public class SubTabEventGeneralView extends AbstractSubTabFormView<AuditLog, EventListModel, EventGeneralModel> implements SubTabEventGeneralPresenter.ViewDef, Editor<EventGeneralModel> { + + private final Driver driver = GWT.create(Driver.class); + + interface ViewUiBinder extends UiBinder<Widget, SubTabEventGeneralView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + interface Driver extends SimpleBeanEditorDriver<EventGeneralModel, SubTabEventGeneralView> { + } + + NullableNumberLabel<Integer> eventId = new NullableNumberLabel<Integer>(); + DateLabel eventTime = new DateLabel(); + TextBoxLabel eventMessage = new TextBoxLabel(); + + @UiField(provided = true) + GeneralFormPanel formPanel; + + FormBuilder formBuilder; + + @Inject + public SubTabEventGeneralView(DetailModelProvider<EventListModel, EventGeneralModel> modelProvider, + ApplicationConstants constants) { + super(modelProvider); + + // Init formPanel + formPanel = new GeneralFormPanel(); + + initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); + driver.initialize(this); + + // Build a form using the FormBuilder + formBuilder = new FormBuilder(formPanel, 1, 3); + formBuilder.addFormItem(new FormItem(constants.eventId(), eventId, 0, 0)); + formBuilder.addFormItem(new FormItem(constants.eventTime(), eventTime, 1, 0)); + formBuilder.addFormItem(new FormItem(constants.eventMessage(), eventMessage, 2, 0)); + } + + @Override + public void setMainTabSelectedItem(AuditLog selectedItem) { + driver.edit(getDetailModel()); + formBuilder.showForm(getDetailModel()); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.ui.xml new file mode 100644 index 0000000..49c3a10 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/event/SubTabEventGeneralView.ui.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:e="urn:import:com.google.gwt.editor.ui.client" + xmlns:f="urn:import:org.ovirt.engine.ui.common.widget.form"> + + <ui:style> + .formPanel { + padding-top: 10px; + } + </ui:style> + + <f:GeneralFormPanel ui:field="formPanel" addStyleNames="{style.formPanel}"/> + +</ui:UiBinder> + \ No newline at end of file -- To view, visit http://gerrit.ovirt.org/13010 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifccb0d0b615952f73844a6abd404b4d7cf268452 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
