Daniel Erez has uploaded a new change for review. Change subject: webadmin: Events tab - Details dialog [wip] ......................................................................
webadmin: Events tab - Details dialog [wip] Events tab: * Created a new dialog for showing event's details (ID, Time, Message). Event message is displayed in a text-area for easy copy-paste. * Added context menu 'Details' button (invoked on double-click) Change-Id: If9bccd2e8a692dd7f9745ed240de3ebd1b7ff376 Signed-off-by: Daniel Erez <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java 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/events/EventModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.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/section/main/presenter/AbstractMainTabWithDetailsPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/event/EventPopupPresenterWidget.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/view/popup/event/EventPopupView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabEventView.java 13 files changed, 276 insertions(+), 32 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/12913/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index 1fc3d0f..047efa7 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -550,6 +550,9 @@ @DefaultStringValue("Custom Event Id") String customEventIdEvent(); + @DefaultStringValue("ID") + String idEvent(); + @DefaultStringValue("Until") String untilEndTime(); @@ -1144,4 +1147,7 @@ @DefaultStringValue("Gluster") String gluster(); + + @DefaultStringValue("Details") + String details(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java index d1c65ac..f4a506d 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/AbstractModelBoundTableWidget.java @@ -65,7 +65,7 @@ : GWT.<Resources> create(SubTableHeaderlessResources.class); } - protected M getModel() { + public M getModel() { return modelProvider.getModel(); } 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..00badcb 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 @@ -1,9 +1,5 @@ package org.ovirt.engine.ui.uicommonweb.models.events; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.businessentities.IVdcQueryable; import org.ovirt.engine.core.common.interfaces.SearchType; @@ -11,6 +7,7 @@ import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.NotImplementedException; +import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.core.searchbackend.SearchObjects; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; @@ -18,13 +15,17 @@ import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; 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.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 +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class EventListModel extends ListWithDetailsModel { private final GridTimer timer; @@ -38,6 +39,16 @@ private void setRefreshCommand(UICommand value) { privateRefreshCommand = value; + } + + private UICommand detailsCommand; + + public UICommand getDetailsCommand() { + return detailsCommand; + } + + private void setDetailsCommand(UICommand value) { + detailsCommand = value; } private AuditLog lastEvent; @@ -84,6 +95,7 @@ setHashName("events"); //$NON-NLS-1$ setRefreshCommand(new UICommand("Refresh", this)); //$NON-NLS-1$ + setDetailsCommand(new UICommand("Details", this)); //$NON-NLS-1$ setDefaultSearchString("Events:"); //$NON-NLS-1$ setSearchString(getDefaultSearchString()); @@ -172,19 +184,50 @@ Frontend.RunQuery(VdcQueryType.Search, params, query); } + private void details() { + + AuditLog event = (AuditLog) getSelectedItem(); + + if (getWindow() != null || event == null) { + return; + } + + EventModel model = new EventModel(); + model.setEvent(event); + model.setTitle(ConstantsManager.getInstance().getConstants().eventDetailsTitle()); + model.setHashName("event_details"); //$NON-NLS-1$ + setWindow(model); + + UICommand command = new UICommand("Cancel", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().close()); + command.setIsCancel(true); + model.getCommands().add(command); + } + + private void cancel() { + setWindow(null); + } + @Override - public void ExecuteCommand(UICommand command) - { + public void ExecuteCommand(UICommand command) { super.ExecuteCommand(command); - if (command == getRefreshCommand()) - { + if (command == getRefreshCommand()) { refreshModel(); UpdatePagingAvailability(); + } else if (command == getDetailsCommand()) { + details(); + } else if (StringHelper.stringsEqual(command.getName(), "Cancel")) { //$NON-NLS-1$ + cancel(); } } @Override + public UICommand getDefaultCommand() { + return getDetailsCommand(); + } + + @Override public void EnsureAsyncSearchStopped() { super.EnsureAsyncSearchStopped(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventModel.java new file mode 100644 index 0000000..605b8b8 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/events/EventModel.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.ui.uicommonweb.models.events; + +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.uicommonweb.models.Model; + +public class EventModel extends Model { + + private AuditLog event; + + public AuditLog getEvent() { + return event; + } + + public void setEvent(AuditLog event) { + this.event = event; + } + +} diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index 87f2045..791a27f 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -1769,4 +1769,7 @@ @DefaultStringValue("There can be only one bootable disk defined") String onlyOneBootableDisk(); + + @DefaultStringValue("Event Details") + String eventDetailsTitle(); } 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..6b1ae00 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 @@ -30,6 +30,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.NewDataCenterNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.NewNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.RecoveryStoragePopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.AddBrickPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.BrickAdvancedDetailsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget; @@ -210,6 +211,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter.FindSingleStoragePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter.NewDataCenterNetworkPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter.RecoveryStorageConfirmationPopupView; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.event.EventPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.AddBrickPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.BrickAdvancedDetailsPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.DetachGlusterHostsPopupView; @@ -1141,5 +1143,10 @@ bindPresenterWidget(EditNetworkPopupPresenterWidget.class, EditNetworkPopupPresenterWidget.ViewDef.class, EditNetworkPopupView.class); + + // Event + bindPresenterWidget(EventPopupPresenterWidget.class, + EventPopupPresenterWidget.ViewDef.class, + EventPopupView.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..b45a013 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,18 @@ 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.Provider; import com.google.inject.Provides; import com.google.inject.Singleton; +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.uicommon.model.MainTabModelProvider; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.Model; +import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; public class EventModule extends AbstractGinModule { @@ -16,8 +20,19 @@ @Provides @Singleton - public MainModelProvider<AuditLog, EventListModel> getEventListProvider(ClientGinjector ginjector) { - return new MainTabModelProvider<AuditLog, EventListModel>(ginjector, EventListModel.class); + public MainModelProvider<AuditLog, EventListModel> getEventListProvider(ClientGinjector ginjector, + final Provider<EventPopupPresenterWidget> popupProvider) { + return new MainTabModelProvider<AuditLog, EventListModel>(ginjector, EventListModel.class) { + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(EventListModel source, + UICommand lastExecutedCommand, Model windowModel) { + if (lastExecutedCommand == getModel().getDetailsCommand()) { + return popupProvider.get(); + } else { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + } + }; } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java index 7636a88..d60a0f1 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractMainTabWithDetailsPresenter.java @@ -51,19 +51,23 @@ // Let others know that the table selection has changed fireTableSelectionChangeEvent(); - // Update the layout - updateLayout(); - - // Reveal the appropriate place based on selection - if (hasSelection()) { - placeManager.revealPlace(getSubTabRequest()); - } else { - placeManager.revealPlace(getMainTabRequest()); - } + onSelection(); } })); } + protected void onSelection() { + // Update the layout + updateLayout(); + + // Reveal the appropriate place based on selection + if (hasSelection()) { + placeManager.revealPlace(getSubTabRequest()); + } else { + placeManager.revealPlace(getMainTabRequest()); + } + } + @Override protected void onReveal() { super.onReveal(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/event/EventPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/event/EventPopupPresenterWidget.java new file mode 100644 index 0000000..7e38574 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/event/EventPopupPresenterWidget.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.uicommonweb.models.events.EventModel; + +public class EventPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<EventModel, EventPopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<EventModel> { + } + + @Inject + public EventPopupPresenterWidget(EventBus eventBus, ViewDef view) { + super(eventBus, view); + } +} + 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..de1b000 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) @@ -55,4 +64,12 @@ return new PlaceRequest(ApplicationPlaces.eventMainTabPlace); } + @Override + protected void fireTableSelectionChangeEvent() { + EventSelectionChangeEvent.fire(this, getSelectedItems()); + } + + @Override + protected void onSelection() { + } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.java new file mode 100644 index 0000000..cbf4350 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.java @@ -0,0 +1,79 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.event; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.inject.Inject; + +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.common.widget.editor.EntityModelLabelEditor; +import org.ovirt.engine.ui.common.widget.editor.EntityModelTextAreaLabelEditor; +import org.ovirt.engine.ui.common.widget.renderer.FullDateTimeRenderer; +import org.ovirt.engine.ui.uicommonweb.models.events.EventModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; + +public class EventPopupView extends AbstractModelBoundPopupView<EventModel> implements EventPopupPresenterWidget.ViewDef { + + private final Driver driver; + + interface Driver extends SimpleBeanEditorDriver<EventModel, EventPopupView> { + } + + interface ViewUiBinder extends UiBinder<SimpleDialogPanel, EventPopupView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + @UiField + @Ignore + EntityModelLabelEditor eventIdLabel; + + @UiField + @Ignore + EntityModelLabelEditor eventTimeLabel; + + @UiField + @Ignore + EntityModelTextAreaLabelEditor eventMessageTextArea; + + @Inject + public EventPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { + super(eventBus, resources); + initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); + + localize(constants); + driver = GWT.create(Driver.class); + driver.initialize(this); + } + + private void localize(ApplicationConstants constants) { + eventIdLabel.setLabel(constants.idEvent()); + eventTimeLabel.setLabel(constants.timeEvent()); + eventMessageTextArea.setLabel(constants.messageEvent()); + } + + @Override + public void focusInput() { + eventMessageTextArea.setFocus(true); + } + + @Override + public void edit(final EventModel eventModel) { + driver.edit(eventModel); + + AuditLog event = eventModel.getEvent(); + eventIdLabel.asValueBox().setValue(event.getlog_typeValue()); + eventTimeLabel.asValueBox().setValue(new FullDateTimeRenderer().render(event.getlog_time())); + eventMessageTextArea.asValueBox().setValue(event.getmessage()); + } + + @Override + public EventModel flush() { + return driver.flush(); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.ui.xml new file mode 100644 index 0000000..3002a97 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/event/EventPopupView.ui.xml @@ -0,0 +1,23 @@ +<?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:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"> + + <ui:style> + .eventMessage textarea { + resize: none; + height: 100px; + } + </ui:style> + + <d:SimpleDialogPanel width="350px" height="250px"> + <d:content> + <g:FlowPanel> + <e:EntityModelLabelEditor ui:field="eventIdLabel"/> + <e:EntityModelLabelEditor ui:field="eventTimeLabel"/> + <e:EntityModelTextAreaLabelEditor ui:field="eventMessageTextArea" addStyleNames="{style.eventMessage}"/> + </g:FlowPanel> + </d:content> + </d:SimpleDialogPanel> + +</ui:UiBinder> 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 b649c4c..48a1196 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 @@ -5,14 +5,17 @@ import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; +import org.ovirt.engine.ui.common.widget.action.CommandLocation; import org.ovirt.engine.ui.common.widget.table.column.AuditLogSeverityColumn; import org.ovirt.engine.ui.common.widget.table.column.FullDateTimeColumn; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.events.EventListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabTableView; +import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -122,6 +125,14 @@ } }; getTable().addColumn(messageColumn, constants.messageEvent(), "150px"); //$NON-NLS-1$ + + getTable().addActionButton(new WebAdminButtonDefinition<AuditLog>(constants.details(), + CommandLocation.OnlyFromFromContext) { + @Override + protected UICommand resolveCommand() { + return getMainModel().getDetailsCommand(); + } + }); } } -- To view, visit http://gerrit.ovirt.org/12913 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If9bccd2e8a692dd7f9745ed240de3ebd1b7ff376 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
