Tomas Jelinek has uploaded a new change for review. Change subject: webadmin: new template dialog ......................................................................
webadmin: new template dialog Change-Id: I3415c09306bf09ff848d0e3ed9c6fe9ee0a87b26 Signed-off-by: Tomas Jelinek <[email protected]> --- A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/TemplatePopupWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateNewVmModelBehavior.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/InstanceTypeModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/TemplateModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/TemplatePopupPresenterWidget.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabInstanceTypePresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/TemplatePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabInstanceTypesView.java 13 files changed, 265 insertions(+), 16 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/12440/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/TemplatePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/TemplatePopupWidget.java new file mode 100644 index 0000000..00551ad --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/TemplatePopupWidget.java @@ -0,0 +1,38 @@ +package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; + +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopupWidgetConfig.hiddenField; +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopupWidgetConfig.simpleField; + +import org.ovirt.engine.ui.common.CommonApplicationConstants; +import org.ovirt.engine.ui.common.CommonApplicationMessages; +import org.ovirt.engine.ui.common.CommonApplicationResources; +import org.ovirt.engine.ui.common.CommonApplicationTemplates; +import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractVmPopupWidget; + +public class TemplatePopupWidget extends AbstractVmPopupWidget { + + public TemplatePopupWidget(CommonApplicationConstants constants, + CommonApplicationResources resources, + CommonApplicationMessages messages, CommonApplicationTemplates templates) { + super(constants, resources, messages, templates); + } + + protected VmPopupWidgetConfigMap createWidgetConfiguration() { + VmPopupWidgetConfigMap config = new VmPopupWidgetConfigMap(); + + config.put(hostTab, hiddenField()); + config.put(resourceAllocationTab, hiddenField()); + config.put(templateEditor, hiddenField()); + config.put(poolTab, hiddenField()); + + config.put(quotaEditor, simpleField()); + + return config; + } + + @Override + protected void generateIds() { + // todo + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java index 3a6ffd0..a2407ec 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java @@ -4,6 +4,7 @@ import java.util.Map; import org.ovirt.engine.core.common.VdcActionUtils; +import org.ovirt.engine.core.common.action.AddVmTemplateParameters; import org.ovirt.engine.core.common.action.MoveOrCopyParameters; import org.ovirt.engine.core.common.action.UpdateVmTemplateParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; @@ -14,9 +15,11 @@ import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; +import org.ovirt.engine.core.common.businessentities.TemplateType; import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmTemplateStatus; @@ -35,11 +38,19 @@ import org.ovirt.engine.ui.uicommonweb.Cloner; import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor; +import org.ovirt.engine.ui.uicommonweb.builders.vm.CommonUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationSupportVmToUnitBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUntiToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.VmSpecificUnitToVmBuilder; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.ExportVmModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.TemplateNewVmModelBehavior; import org.ovirt.engine.ui.uicommonweb.models.vms.TemplateVmModelBehavior; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; @@ -591,7 +602,6 @@ .blankTemplateCannotBeEdited()); getEditCommand().setIsExecutionAllowed(false); } - getRemoveCommand().setIsExecutionAllowed(items.size() > 0 && VdcActionUtils.CanExecute(items, VmTemplate.class, VdcActionType.RemoveVmTemplate)); if (getRemoveCommand().getIsExecutionAllowed() && blankSelected) @@ -675,10 +685,78 @@ OnSave(); } else if (StringHelper.stringsEqual(command.getName(), "OnRemove")) {//$NON-NLS-1$ OnRemove(); + } else if (StringHelper.stringsEqual(command.getName(), "onNewTemplateSave")) {//$NON-NLS-1$ + onNewTemplateSave(); } } + @SuppressWarnings("unchecked") + private void onNewTemplateSave() { + UnitVmModel model = (UnitVmModel) getWindow(); + + if (!model.Validate()) { + model.setIsValid(false); + return; + } + + VM newVm = new VM(); + + model.StartProgress(null); + + // TODO copy only what is indeed needed + new BuilderExecutor<UnitVmModel, VM>( + new CommonUnitToVmBuilder(), + new VmSpecificUnitToVmBuilder(), + new MigrationSupportVmToUnitBuilder(), + new KernelParamsUnitToVmBuilder(), + new UsbPolicyUntiToVmBuilder(), + new QuotaUnitToVmBuilder()).build(model, newVm); + + AddVmTemplateParameters addVmTemplateParameters = + new AddVmTemplateParameters(newVm, + (String) model.getName().getEntity(), + (String) model.getDescription().getEntity()); + addVmTemplateParameters.setTemplateType(TemplateType.INSTANCE_TYPE); + + Frontend.RunAction(VdcActionType.AddVmTemplate, addVmTemplateParameters, + new IFrontendActionAsyncCallback() { + @Override + public void Executed(FrontendActionAsyncResult result) { + TemplateListModel templateTypeListModel = (TemplateListModel) result.getState(); + templateTypeListModel.getWindow().StopProgress(); + VdcReturnValueBase returnValueBase = result.getReturnValue(); + if (returnValueBase != null && returnValueBase.getSucceeded()) + { + templateTypeListModel.Cancel(); + } + + } + }, this); + } + private void newTemplate() { + + if (getWindow() != null) { + return; + } + + UnitVmModel model = new UnitVmModel(new TemplateNewVmModelBehavior()); + setWindow(model); + model.setTitle(ConstantsManager.getInstance().getConstants().newTemplateTitle()); + model.setHashName("new_template"); //$NON-NLS-1$ + + model.setCustomPropertiesKeysList(getCustomPropertiesKeysList()); + model.Initialize(this.getSystemTreeSelectedItem()); + + UICommand command = new UICommand("onNewTemplateSave", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().ok()); + command.setIsDefault(true); + model.getCommands().add(command); + + command = new UICommand("Cancel", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().cancel()); + command.setIsCancel(true); + model.getCommands().add(command); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateNewVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateNewVmModelBehavior.java new file mode 100644 index 0000000..26f2b6c --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateNewVmModelBehavior.java @@ -0,0 +1,5 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +public class TemplateNewVmModelBehavior extends NewVmModelBehavior { + +} 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 8a75d72..298e03c 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 @@ -517,6 +517,9 @@ @DefaultStringValue("General") String templateGeneralSubTabLabel(); + @DefaultStringValue("General") + String instanceTypeGeneralSubTabLabel(); + @DefaultStringValue("Virtual Machines") String templateVmSubTabLabel(); @@ -1428,7 +1431,7 @@ @DefaultStringValue("Edit") String editTemplate(); - @DefaultStringValue("New Template") + @DefaultStringValue("New") String newTemplate(); @DefaultStringValue("New") 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 c9a19e9..45a9111 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 @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.businessentities.DbUser; import org.ovirt.engine.core.common.businessentities.Disk; +import org.ovirt.engine.core.common.businessentities.InstanceType; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.QuotaStorage; import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup; @@ -12,12 +13,12 @@ import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.event_subscriber; import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity; @@ -63,6 +64,7 @@ import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostVmListModel; +import org.ovirt.engine.ui.uicommonweb.models.instanceType.InstanceTypeGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.networks.NetworkHostListModel; @@ -91,6 +93,7 @@ import org.ovirt.engine.ui.uicommonweb.models.storage.StorageVmListModel; import org.ovirt.engine.ui.uicommonweb.models.storage.TemplateBackupModel; import org.ovirt.engine.ui.uicommonweb.models.storage.VmBackupModel; +import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateDiskListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateEventListModel; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateGeneralModel; @@ -175,6 +178,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.InstanceTypeSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.SubTabInstanceTypeGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.NetworkSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.SubTabNetworkClusterPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.SubTabNetworkGeneralPresenter; @@ -229,8 +234,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineSnapshotPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.SubTabVirtualMachineVirtualDiskPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.virtualMachine.VirtualMachineSubTabPanelPresenter; -import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; -import org.ovirt.engine.core.common.businessentities.InstanceType; + import com.google.gwt.inject.client.AsyncProvider; import com.google.inject.Provider; @@ -548,6 +552,13 @@ SearchableDetailModelProvider<AuditLog, TemplateListModel, TemplateEventListModel> getSubTabTemplateEventModelProvider(); + // Instance Type + AsyncProvider<InstanceTypeSubTabPanelPresenter> getInstanceTypeSubTabPanelPresenter(); + + AsyncProvider<SubTabInstanceTypeGeneralPresenter> getSubTabInstanceTypeGeneralPresenter(); + + DetailModelProvider<InstanceTypeListModel, InstanceTypeGeneralModel> getSubTabInstanceTypeGeneralModelProvider(); + // User AsyncProvider<UserSubTabPanelPresenter> getUserSubTabPanelPresenter(); 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 a9b9281..93c0756 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 @@ -135,6 +135,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostVmPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.InstanceTypeSubTabPanelPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.instanceType.SubTabInstanceTypeGeneralPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.NetworkSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.SubTabNetworkClusterPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.network.SubTabNetworkGeneralPresenter; @@ -321,6 +323,8 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostInterfaceView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostPermissionView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostVmView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.instanceType.InstanceTypeSubTabPanelView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.instanceType.SubTabInstanceTypeGeneralView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.network.NetworkSubTabPanelView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.network.SubTabNetworkClusterView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.network.SubTabNetworkGeneralView; @@ -727,6 +731,17 @@ SubTabTemplateEventView.class, SubTabTemplateEventPresenter.ProxyDef.class); + // Instance Type + bindPresenter(InstanceTypeSubTabPanelPresenter.class, + InstanceTypeSubTabPanelPresenter.ViewDef.class, + InstanceTypeSubTabPanelView.class, + InstanceTypeSubTabPanelPresenter.ProxyDef.class); + + bindPresenter(SubTabInstanceTypeGeneralPresenter.class, + SubTabInstanceTypeGeneralPresenter.ViewDef.class, + SubTabInstanceTypeGeneralView.class, + SubTabInstanceTypeGeneralPresenter.ProxyDef.class); + // User bindPresenter(UserSubTabPanelPresenter.class, UserSubTabPanelPresenter.ViewDef.class, diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/InstanceTypeModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/InstanceTypeModule.java index b76ea09..94c00d4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/InstanceTypeModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/InstanceTypeModule.java @@ -1,12 +1,20 @@ package org.ovirt.engine.ui.webadmin.gin.uicommon; import org.ovirt.engine.core.common.businessentities.InstanceType; +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +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.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.Model; +import org.ovirt.engine.ui.uicommonweb.models.instanceType.InstanceTypeGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.InstanceTypePopupPresenterWidget; import com.google.gwt.inject.client.AbstractGinModule; +import com.google.inject.Provider; import com.google.inject.Provides; import com.google.inject.Singleton; @@ -14,8 +22,29 @@ @Provides @Singleton - public MainModelProvider<InstanceType, InstanceTypeListModel> getTemplateListProvider(ClientGinjector ginjector) { - return new MainTabModelProvider<InstanceType, InstanceTypeListModel>(ginjector, InstanceTypeListModel.class); + public MainModelProvider<InstanceType, InstanceTypeListModel> getTemplateListProvider(ClientGinjector ginjector, + final Provider<InstanceTypePopupPresenterWidget> instanceTypePopupProvider) { + return new MainTabModelProvider<InstanceType, InstanceTypeListModel>(ginjector, InstanceTypeListModel.class) { + + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(InstanceTypeListModel source, + UICommand lastExecutedCommand, + Model windowModel) { + if (lastExecutedCommand == getModel().getNewInstanceTypeCommand()) { + return instanceTypePopupProvider.get(); + } else { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + } + }; + } + + @Provides + @Singleton + public DetailModelProvider<InstanceTypeListModel, InstanceTypeGeneralModel> getInstanceTypeGeneralProvider(ClientGinjector ginjector) { + return new DetailTabModelProvider<InstanceTypeListModel, InstanceTypeGeneralModel>(ginjector, + InstanceTypeListModel.class, + InstanceTypeGeneralModel.class); } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/TemplateModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/TemplateModule.java index cc695a2..d30566d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/TemplateModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/TemplateModule.java @@ -2,7 +2,6 @@ import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.common.businessentities.StorageDomain; @@ -33,7 +32,6 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.DisksAllocationPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.template.TemplateInterfacePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.template.TemplateNewPresenterWidget; -import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.InstanceTypePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.TemplatePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmExportPopupPresenterWidget; @@ -53,8 +51,7 @@ final Provider<VmExportPopupPresenterWidget> exportPopupProvider, final Provider<DisksAllocationPopupPresenterWidget> copyPopupProvider, final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider, - final Provider<TemplatePopupPresenterWidget> templatePopupProvider, - final Provider<InstanceTypePopupPresenterWidget> instanceTypePopupProvider) { + final Provider<TemplatePopupPresenterWidget> templatePopupProvider) { return new MainTabModelProvider<VmTemplate, TemplateListModel>(ginjector, TemplateListModel.class) { @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(TemplateListModel source, @@ -67,8 +64,6 @@ return exportPopupProvider.get(); } else if (lastExecutedCommand == getModel().getCopyCommand()) { return copyPopupProvider.get(); - } else if (lastExecutedCommand == getModel().getNewInstanceTypeCommand()) { - return instanceTypePopupProvider.get(); } else if (lastExecutedCommand == getModel().getNewTemplateCommand()) { return templatePopupProvider.get(); } else { 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 5ea437d..565b0da 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 @@ -21,7 +21,7 @@ public static final String virtualMachineMainTabPlace = "vms"; //$NON-NLS-1$ - public static final String instanceTypesTabPlace = "instanceTypes"; //$NON-NLS-1$ + public static final String instanceTypesMainTabPlace = "instanceTypes"; //$NON-NLS-1$ public static final String poolMainTabPlace = "pools"; //$NON-NLS-1$ @@ -201,6 +201,10 @@ public static final String templateEventSubTabPlace = templateMainTabPlace + SUB_TAB_PREFIX + "events"; //$NON-NLS-1$ + // Instance Type + public static final String instanceTypeGeneralSubTabPlace = instanceTypesMainTabPlace + SUB_TAB_PREFIX + + "general"; //$NON-NLS-1$ + // User public static final String userGeneralSubTabPlace = userMainTabPlace + SUB_TAB_PREFIX diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/TemplatePopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/TemplatePopupPresenterWidget.java new file mode 100644 index 0000000..47fb73b --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/TemplatePopupPresenterWidget.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm; + +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopup; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + +public class TemplatePopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<UnitVmModel, TemplatePopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<UnitVmModel> { + VmPopup getPopup(); + } + + @Inject + public TemplatePopupPresenterWidget(EventBus eventBus, ViewDef view) { + super(eventBus, view); + } + + @Override + public void init(UnitVmModel model) { + super.init(model); + + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabInstanceTypePresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabInstanceTypePresenter.java index b9aa1b9..4de98a5 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabInstanceTypePresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/MainTabInstanceTypePresenter.java @@ -41,7 +41,7 @@ } @ProxyCodeSplit - @NameToken(ApplicationPlaces.instanceTypesTabPlace) + @NameToken(ApplicationPlaces.instanceTypesMainTabPlace) public interface ProxyDef extends TabContentProxyPlace<MainTabInstanceTypePresenter> { } @@ -61,7 +61,7 @@ @Override protected PlaceRequest getMainTabRequest() { - return new PlaceRequest(ApplicationPlaces.instanceTypesTabPlace); + return new PlaceRequest(ApplicationPlaces.instanceTypesMainTabPlace); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/TemplatePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/TemplatePopupView.java new file mode 100644 index 0000000..ef2e3cf --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/TemplatePopupView.java @@ -0,0 +1,36 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.vm; + +import org.ovirt.engine.ui.common.CommonApplicationMessages; +import org.ovirt.engine.ui.common.CommonApplicationTemplates; +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundWidgetPopupView; +import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.TemplatePopupWidget; +import org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopup; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.TemplatePopupPresenterWidget; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + + +public class TemplatePopupView extends AbstractModelBoundWidgetPopupView<UnitVmModel> implements TemplatePopupPresenterWidget.ViewDef { + + interface ViewIdHandler extends ElementIdHandler<TemplatePopupView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @Inject + public TemplatePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, CommonApplicationMessages messages, CommonApplicationTemplates templates) { + super(eventBus, resources, new TemplatePopupWidget(constants, resources, messages, templates), "670px", "610px"); //$NON-NLS-1$ //$NON-NLS-2$ + ViewIdHandler.idHandler.generateAndSetIds(this); + } + + @Override + public VmPopup getPopup() { + return (VmPopup) getContentWidget(); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabInstanceTypesView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabInstanceTypesView.java index efd764f..8a842d7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabInstanceTypesView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabInstanceTypesView.java @@ -4,11 +4,13 @@ import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip; +import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.templates.InstanceTypeListModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabInstanceTypePresenter; import org.ovirt.engine.ui.webadmin.section.main.view.AbstractMainTabWithDetailsTableView; +import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition; import com.google.gwt.core.client.GWT; import com.google.inject.Inject; @@ -39,6 +41,13 @@ }; getTable().addColumn(nameColumn, constants.namePool(), "150px"); //$NON-NLS-1$ + getTable().addActionButton(new WebAdminButtonDefinition<InstanceType>(constants.newInstanceType()) { + @Override + protected UICommand resolveCommand() { + return getMainModel().getNewInstanceTypeCommand(); + } + }); + // TextColumnWithTooltip<VmTemplate> nameColumn = new TextColumnWithTooltip<VmTemplate>() { // @Override // public String getValue(VmTemplate object) { -- To view, visit http://gerrit.ovirt.org/12440 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3415c09306bf09ff848d0e3ed9c6fe9ee0a87b26 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
