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

Reply via email to