Martin Betak has uploaded a new change for review. Change subject: frontend: Add VM HostDevice subtab ......................................................................
frontend: Add VM HostDevice subtab Change-Id: I8f2648e3c1073f630b9637aea3a6acc6f800cf6c Signed-off-by: Martin Betak <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmHostDeviceModelTable.java M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceListModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.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/PresenterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/hostdev/VmHostDevicePopupPresenterWidget.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/scheduling/AffinityGroupPopupPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineHostDevicePresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.xml A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineHostDeviceView.java 15 files changed, 303 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/37620/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 8896ffa..76cb2a6 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 @@ -2002,4 +2002,10 @@ @DefaultStringValue("Graphics protocol") String graphicsProtocol(); + + @DefaultStringValue("Add device") + String addVmHostDevice(); + + @DefaultStringValue("Remove device") + String removeVmHostDevice(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmHostDeviceModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmHostDeviceModelTable.java new file mode 100644 index 0000000..70f081b --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmHostDeviceModelTable.java @@ -0,0 +1,34 @@ +package org.ovirt.engine.ui.common.widget.uicommon.vm; + +import com.google.gwt.event.shared.EventBus; +import org.ovirt.engine.core.common.businessentities.VmHostDevice; +import org.ovirt.engine.ui.common.CommonApplicationConstants; +import org.ovirt.engine.ui.common.system.ClientStorage; +import org.ovirt.engine.ui.common.uicommon.model.SearchableTableModelProvider; +import org.ovirt.engine.ui.common.widget.action.UiCommandButtonDefinition; +import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundTableWidget; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmHostDeviceListModel; + +public class VmHostDeviceModelTable extends AbstractModelBoundTableWidget<VmHostDevice, VmHostDeviceListModel> { + + public VmHostDeviceModelTable(SearchableTableModelProvider<VmHostDevice, VmHostDeviceListModel> modelProvider, EventBus eventBus, ClientStorage clientStorage) { + super(modelProvider, eventBus, clientStorage, false); + } + + @Override + public void initTable(CommonApplicationConstants constants) { + getTable().addActionButton(new UiCommandButtonDefinition<VmHostDevice>(getEventBus(), constants.addVmHostDevice()) { + @Override + protected UICommand resolveCommand() { + return getModel().getNewCommand(); + } + }); + getTable().addActionButton(new UiCommandButtonDefinition<VmHostDevice>(getEventBus(), constants.removeVmHostDevice()) { + @Override + protected UICommand resolveCommand() { + return getModel().getRemoveCommand(); + } + }); + } +} diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml index 7dacd4e..fae4693 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml @@ -204,6 +204,7 @@ <include name="common/businessentities/ImageType.java" /> <include name="common/businessentities/SnapshotActionEnum.java"/> <include name="common/businessentities/VmRngDevice.java" /> + <include name="common/businessentities/VmHostDevice.java" /> <include name="common/job/*.java" /> <!-- Profiles --> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceListModel.java new file mode 100644 index 0000000..9e93b8c --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceListModel.java @@ -0,0 +1,30 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; + +public class VmHostDeviceListModel extends SearchableListModel { + private UICommand newCommand; + private UICommand removeCommand; + + @Override + protected String getListName() { + return "VmHostDeviceListModel"; //$NON-NLS-1$ + } + + public UICommand getNewCommand() { + return newCommand; + } + + public void setNewCommand(UICommand newCommand) { + this.newCommand = newCommand; + } + + public UICommand getRemoveCommand() { + return removeCommand; + } + + public void setRemoveCommand(UICommand removeCommand) { + this.removeCommand = removeCommand; + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceModel.java new file mode 100644 index 0000000..7e32c00 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmHostDeviceModel.java @@ -0,0 +1,6 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +import org.ovirt.engine.ui.uicommonweb.models.Model; + +public class VmHostDeviceModel extends Model { +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java index ae94b19..bfe2e45 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java @@ -174,6 +174,9 @@ public static final String virtualMachineVirtualDiskSubTabPlace = virtualMachineMainTabPlace + SUB_TAB_PREFIX + "disks"; //$NON-NLS-1$ + public static final String virtualMachineHostDeviceSubTabPlace = virtualMachineMainTabPlace + SUB_TAB_PREFIX + + "host_devices"; //$NON-NLS-1$ + public static final String virtualMachineSnapshotSubTabPlace = virtualMachineMainTabPlace + SUB_TAB_PREFIX + "snapshots"; //$NON-NLS-1$ 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 c5bdc1d..089f060 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 @@ -491,6 +491,9 @@ @DefaultStringValue("Disks") String virtualMachineVirtualDiskSubTabLabel(); + @DefaultStringValue("Host Devices") + String virtualMachineHostDeviceSubTabLabel(); + @DefaultStringValue("Snapshots") String virtualMachineSnapshotSubTabLabel(); 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 b198f83..5cdd6e6 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 @@ -68,6 +68,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksBondPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksInterfacePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.SetupNetworksManagementPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.hostdev.VmHostDevicePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.instancetypes.InstanceTypesPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.macpool.SharedMacPoolPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.pool.PoolEditPopupPresenterWidget; @@ -243,6 +244,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineApplicationPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineHostDevicePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineNetworkInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachinePermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineSessionsPresenter; @@ -353,6 +355,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmDiskPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmDiskRemovePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmExportPopupView; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmHostDevicePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmInterfacePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmMakeTemplatePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmMigratePopupView; @@ -489,6 +492,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineApplicationView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineEventView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineGeneralView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineHostDeviceView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineNetworkInterfaceView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachinePermissionView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine.SubTabVirtualMachineSessionsView; @@ -868,6 +872,10 @@ SubTabVirtualMachineEventPresenter.ViewDef.class, SubTabVirtualMachineEventView.class, SubTabVirtualMachineEventPresenter.ProxyDef.class); + bindPresenter(SubTabVirtualMachineHostDevicePresenter.class, + SubTabVirtualMachineHostDevicePresenter.ViewDef.class, + SubTabVirtualMachineHostDeviceView.class, + SubTabVirtualMachineHostDevicePresenter.ProxyDef.class); // Pool @@ -1433,6 +1441,11 @@ ImportVmsPopupPresenterWidget.ViewDef.class, ImportVmsPopupView.class); + // Host Devices + bindPresenterWidget(VmHostDevicePopupPresenterWidget.class, + VmHostDevicePopupPresenterWidget.ViewDef.class, + VmHostDevicePopupView.class); + // Volume bindPresenter(VolumeSubTabPanelPresenter.class, VolumeSubTabPanelPresenter.ViewDef.class, diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java index 8bf6fbe..0d3d57d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VirtualMachineModule.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.Permissions; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmHostDevice; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.scheduling.AffinityGroup; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; @@ -32,6 +33,7 @@ import org.ovirt.engine.ui.uicommonweb.models.vms.VmDiskListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmEventListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmHostDeviceListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmInterfaceListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VmSessionsModel; @@ -42,6 +44,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.ImportVmsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.guide.GuidePopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.hostdev.VmHostDevicePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.quota.ChangeQuotaPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.scheduling.AffinityGroupPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.DisksAllocationPopupPresenterWidget; @@ -361,6 +364,37 @@ return result; } + @Provides + @Singleton + public SearchableDetailModelProvider<VmHostDevice, VmListModel, VmHostDeviceListModel> getVmHostDeviceListProvider(EventBus eventBus, + Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, + final Provider<VmHostDevicePopupPresenterWidget> popupProvider, + final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider, + final Provider<VmListModel> mainModelProvider, + final Provider<VmHostDeviceListModel> modelProvider) { + SearchableDetailTabModelProvider<VmHostDevice, VmListModel, VmHostDeviceListModel> result = + new SearchableDetailTabModelProvider<VmHostDevice, VmListModel, VmHostDeviceListModel>(eventBus, defaultConfirmPopupProvider) { + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(VmHostDeviceListModel source, UICommand lastExecutedCommand, Model windowModel) { + if (lastExecutedCommand == getModel().getNewCommand()) { + return popupProvider.get(); + } + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + + @Override + public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(VmHostDeviceListModel source, UICommand lastExecutedCommand) { + if (lastExecutedCommand == getModel().getRemoveCommand()) { + return removeConfirmPopupProvider.get(); + } + return super.getConfirmModelPopup(source, lastExecutedCommand); + } + }; + result.setMainModelProvider(mainModelProvider); + result.setModelProvider(modelProvider); + return result; + } + @Override protected void configure() { bind(VmListModel.class).in(Singleton.class); @@ -372,7 +406,9 @@ bind(VmSnapshotListModel.class).in(Singleton.class); bind(VmAffinityGroupListModel.class).in(Singleton.class); bind(VmAppListModel.class).in(Singleton.class); - bind(new TypeLiteral<PermissionListModel<VmListModel>>(){}).in(Singleton.class); + bind(VmHostDeviceListModel.class).in(Singleton.class); + bind(new TypeLiteral<PermissionListModel<VmListModel>>() { + }).in(Singleton.class); // Form Detail Models bind(new TypeLiteral<DetailModelProvider<VmListModel, VmGeneralModel>>(){}) diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/hostdev/VmHostDevicePopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/hostdev/VmHostDevicePopupPresenterWidget.java new file mode 100644 index 0000000..1bf9bb9 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/hostdev/VmHostDevicePopupPresenterWidget.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.hostdev; + +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.vms.VmHostDeviceModel; + +public class VmHostDevicePopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<VmHostDeviceModel, VmHostDevicePopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<VmHostDeviceModel> { + } + + @Inject + public VmHostDevicePopupPresenterWidget(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/popup/scheduling/AffinityGroupPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/scheduling/AffinityGroupPopupPresenterWidget.java index c8e0980..c1dd2f8 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/scheduling/AffinityGroupPopupPresenterWidget.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/scheduling/AffinityGroupPopupPresenterWidget.java @@ -15,5 +15,5 @@ public AffinityGroupPopupPresenterWidget(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/virtualMachine/SubTabVirtualMachineHostDevicePresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineHostDevicePresenter.java new file mode 100644 index 0000000..96ee3e5 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/virtualMachine/SubTabVirtualMachineHostDevicePresenter.java @@ -0,0 +1,56 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine; + +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.TabContentProxyPlace; +import com.gwtplatform.mvp.shared.proxy.PlaceRequest; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmHostDevice; +import org.ovirt.engine.ui.common.place.PlaceRequestFactory; +import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter; +import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; +import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmHostDeviceListModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel; +import org.ovirt.engine.ui.uicommonweb.place.WebAdminApplicationPlaces; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.VirtualMachineSelectionChangeEvent; + +public class SubTabVirtualMachineHostDevicePresenter extends AbstractSubTabPresenter<VM, VmListModel, VmHostDeviceListModel, + SubTabVirtualMachineHostDevicePresenter.ViewDef, SubTabVirtualMachineHostDevicePresenter.ProxyDef> { + + @ProxyCodeSplit + @NameToken(WebAdminApplicationPlaces.virtualMachineHostDeviceSubTabPlace) + public interface ProxyDef extends TabContentProxyPlace<SubTabVirtualMachineHostDevicePresenter> { + } + + public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VM> { + } + + @TabInfo(container = VirtualMachineSubTabPanelPresenter.class) + static TabData getTabData(ApplicationConstants applicationConstants, SearchableDetailModelProvider<VM, VmListModel, VmHostDeviceListModel> modelProvider) { + return new ModelBoundTabData(applicationConstants.virtualMachineHostDeviceSubTabLabel(), 4, modelProvider); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return PlaceRequestFactory.get(WebAdminApplicationPlaces.virtualMachineHostDeviceSubTabPlace); + } + + @Inject + public SubTabVirtualMachineHostDevicePresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, PlaceManager placeManager, + SearchableDetailModelProvider<VmHostDevice, VmListModel, VmHostDeviceListModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider, VirtualMachineSubTabPanelPresenter.TYPE_SetTabContent); + } + + @ProxyEvent + public void onVirtualMachineSelectionChange(VirtualMachineSelectionChangeEvent event) { + updateMainTabSelection(event.getSelectedItems()); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.java new file mode 100644 index 0000000..a93fea0 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.java @@ -0,0 +1,46 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.vm; + +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.inject.Inject; +import org.ovirt.engine.ui.common.CommonApplicationResources; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmHostDeviceModel; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.hostdev.VmHostDevicePopupPresenterWidget; + +public class VmHostDevicePopupView extends AbstractModelBoundPopupView<VmHostDeviceModel> implements VmHostDevicePopupPresenterWidget.ViewDef { + + interface Driver extends SimpleBeanEditorDriver<VmHostDeviceModel, VmHostDevicePopupView> { + } + + interface ViewUiBinder extends UiBinder<SimpleDialogPanel, VmHostDevicePopupView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + interface ViewIdHandler extends ElementIdHandler<VmHostDevicePopupView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + private final Driver driver = GWT.create(Driver.class); + + @Inject + public VmHostDevicePopupView(EventBus eventBus, CommonApplicationResources resources) { + super(eventBus, resources); + initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); + ViewIdHandler.idHandler.generateAndSetIds(this); + driver.initialize(this); + } + + @Override + public void edit(VmHostDeviceModel object) { + } + + @Override + public VmHostDeviceModel flush() { + return null; + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.xml new file mode 100644 index 0000000..a443527 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmHostDevicePopupView.xml @@ -0,0 +1,15 @@ +<?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"> + + <d:SimpleDialogPanel width="420px" height="345px"> + <d:content> + <g:FlowPanel> + <g:Label text="Hello Dialog" /> + </g:FlowPanel> + </d:content> + </d:SimpleDialogPanel> +</ui:UiBinder> \ No newline at end of file diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineHostDeviceView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineHostDeviceView.java new file mode 100644 index 0000000..f6af40a --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/virtualMachine/SubTabVirtualMachineHostDeviceView.java @@ -0,0 +1,35 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.virtualMachine; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmHostDevice; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.system.ClientStorage; +import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; +import org.ovirt.engine.ui.common.view.AbstractSubTabTableWidgetView; +import org.ovirt.engine.ui.common.widget.uicommon.vm.VmHostDeviceModelTable; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmHostDeviceListModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineHostDevicePresenter; + +public class SubTabVirtualMachineHostDeviceView + extends AbstractSubTabTableWidgetView<VM, VmHostDevice, VmListModel, VmHostDeviceListModel> + implements SubTabVirtualMachineHostDevicePresenter.ViewDef { + + interface ViewIdHandler extends ElementIdHandler<SubTabVirtualMachineHostDeviceView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @Inject + public SubTabVirtualMachineHostDeviceView( + SearchableDetailModelProvider<VmHostDevice, VmListModel, VmHostDeviceListModel> modelProvider, + EventBus eventBus, ClientStorage clientStorage, ApplicationConstants constants) { + super(new VmHostDeviceModelTable(modelProvider, eventBus, clientStorage)); + ViewIdHandler.idHandler.generateAndSetIds(this); + initTable(constants); + initWidget(getModelBoundTableWidget()); + } +} -- To view, visit http://gerrit.ovirt.org/37620 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8f2648e3c1073f630b9637aea3a6acc6f800cf6c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Betak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
