Tomas Jelinek has uploaded a new change for review. Change subject: webadmin: New Image popup ......................................................................
webadmin: New Image popup Change-Id: Id8854e85093e42efd9262efa3989111b89f55794 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/ImagePopupWidget.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewImageModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.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/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/vm/ImagePopupPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImagePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java 10 files changed, 167 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/12441/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/ImagePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/ImagePopupWidget.java new file mode 100644 index 0000000..dd281b1 --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/ImagePopupWidget.java @@ -0,0 +1,44 @@ +package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; + +import static org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmPopupWidgetConfig.hiddenField; + +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 ImagePopupWidget extends AbstractVmPopupWidget { + + public ImagePopupWidget(CommonApplicationConstants constants, + CommonApplicationResources resources, + CommonApplicationMessages messages, + CommonApplicationTemplates applicationTemplates) { + super(constants, resources, messages, applicationTemplates); + } + + @Override + protected VmPopupWidgetConfigMap createWidgetConfiguration() { + VmPopupWidgetConfigMap config = new VmPopupWidgetConfigMap(); + + config.put(poolTab, hiddenField()); + config.put(initialRunTab, hiddenField()); + config.put(templateEditor, hiddenField()); + config.put(resourceAllocationTab, hiddenField()); + config.put(consoleTab, hiddenField()); + config.put(isStatelessEditor, hiddenField()); + config.put(isDeleteProtectedEditor, hiddenField()); + config.put(generalAdvancedParameterExpander, hiddenField()); + config.put(totalvCPUsEditor, hiddenField()); + config.put(memSizeEditor, hiddenField()); + config.put(templateEditor, hiddenField()); + + return config; + } + + @Override + protected void generateIds() { + // TODO Auto-generated method stub + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewImageModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewImageModelBehavior.java new file mode 100644 index 0000000..c8f234c --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewImageModelBehavior.java @@ -0,0 +1,11 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +import org.ovirt.engine.core.common.businessentities.VM; + +public class NewImageModelBehavior extends NewTemplateVmModelBehavior { + + public NewImageModelBehavior(VM vm) { + super(vm); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 2566870..25082b1 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -90,6 +90,7 @@ import org.ovirt.engine.ui.uicommonweb.models.tags.TagModel; import org.ovirt.engine.ui.uicommonweb.models.templates.VmBaseListModel; import org.ovirt.engine.ui.uicommonweb.models.userportal.AttachCdModel; +import org.ovirt.engine.ui.uicompat.Constants; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -107,6 +108,16 @@ { private UICommand advanedButton = new UICommand("OnAdvanced", this); //$NON-NLS-1$ + + private UICommand newImageCommand; + + public UICommand getNewImageCommand() { + return newImageCommand; + } + + public void setNewImageCommand(UICommand newImageCommand) { + this.newImageCommand = newImageCommand; + } private UICommand newVMCommand; @@ -484,6 +495,7 @@ setRetrieveIsoImagesCommand(new UICommand("RetrieveIsoImages", this)); //$NON-NLS-1$ setChangeCdCommand(new UICommand("ChangeCD", this)); //$NON-NLS-1$ setAssignTagsCommand(new UICommand("AssignTags", this)); //$NON-NLS-1$ + setNewImageCommand(new UICommand("NewImage", this)); //$NON-NLS-1$ setIsoImages(new ObservableCollection<ChangeCDModel>()); ChangeCDModel tempVar = new ChangeCDModel(); @@ -1789,7 +1801,11 @@ UnitVmModel model = new UnitVmModel(new NewTemplateVmModelBehavior(vm)); setWindow(model); - model.setTitle(ConstantsManager.getInstance().getConstants().newTemplateTitle()); + Constants constants = ConstantsManager.getInstance().getConstants(); + String title = + getLastExecutedCommand() == getNewImageCommand() ? constants.newImageTitle() + : constants.newTemplateTitle(); + model.setTitle(title); model.setHashName("new_template"); //$NON-NLS-1$ model.setIsNew(true); model.setVmType(vm.getVmType()); @@ -1860,6 +1876,10 @@ }), name); } + } + + private void newImage() { + NewTemplate(); } @SuppressWarnings("unchecked") @@ -2904,6 +2924,8 @@ && VdcActionUtils.CanExecute(items, VM.class, VdcActionType.CancelMigrateVm)); getNewTemplateCommand().setIsExecutionAllowed(items.size() == 1 && VdcActionUtils.CanExecute(items, VM.class, VdcActionType.AddVmTemplate)); + getNewImageCommand().setIsExecutionAllowed(items.size() == 1 + && VdcActionUtils.CanExecute(items, VM.class, VdcActionType.AddVmTemplate)); getRunOnceCommand().setIsExecutionAllowed(items.size() == 1 && VdcActionUtils.CanExecute(items, VM.class, VdcActionType.RunVmOnce)); getExportCommand().setIsExecutionAllowed(items.size() > 0 @@ -2992,6 +3014,10 @@ { NewTemplate(); } + else if (command == getNewImageCommand()) + { + newImage(); + } else if (command == getRunOnceCommand()) { RunOnce(); 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 48dac8e..5d066b5 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 @@ -559,6 +559,9 @@ @DefaultStringValue("New Template") String newTemplateTitle(); + @DefaultStringValue("New Image") + String newImageTitle(); + @DefaultStringValue("Migrate Virtual Machine(s)") String migrateVirtualMachinesTitle(); 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 298e03c..1dbafbd 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 @@ -1303,6 +1303,9 @@ @DefaultStringValue("New VM") String newVm(); + @DefaultStringValue("Make Image") + String makeImage(); + @DefaultStringValue("New Desktop") String newDesktopVm(); 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 93c0756..5a4fffd 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 @@ -70,6 +70,7 @@ 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.user.ManageEventsPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.ImagePopupPresenterWidget; 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.VmChangeCDPopupPresenterWidget; @@ -256,6 +257,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.popup.template.TemplateInterfacePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.template.TemplateNewPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.user.ManageEventsPopupView; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.ImagePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.InstanceTypePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.TemplatePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.vm.VmChangeCDPopupView; @@ -1047,6 +1049,11 @@ VmMakeTemplatePopupPresenterWidget.ViewDef.class, VmMakeTemplatePopupView.class); + // VM Make Image + bindPresenterWidget(ImagePopupPresenterWidget.class, + ImagePopupPresenterWidget.ViewDef.class, + ImagePopupView.class); + // VM Change CD bindPresenterWidget(VmChangeCDPopupPresenterWidget.class, VmChangeCDPopupPresenterWidget.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 e97e16d..be6a264 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 @@ -39,6 +39,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.quota.ChangeQuotaPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.DisksAllocationPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.StorageForceCreatePopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.ImagePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmChangeCDPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmClonePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmDesktopNewPopupPresenterWidget; @@ -82,7 +83,8 @@ final Provider<VmRemovePopupPresenterWidget> vmRemoveConfirmPopupProvider, final Provider<ReportPresenterWidget> reportWindowProvider, final Provider<VncInfoPopupPresenterWidget> vncWindoProvider, - final Provider<VmPopupPresenterWidget> newVmPopupProvider) { + final Provider<VmPopupPresenterWidget> newVmPopupProvider, + final Provider<ImagePopupPresenterWidget> makeImagePopupProvider) { return new MainTabModelProvider<VM, VmListModel>(ginjector, VmListModel.class) { @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(VmListModel source, @@ -91,6 +93,8 @@ return assignTagsPopupProvider.get(); } else if (lastExecutedCommand == getModel().getNewTemplateCommand()) { return makeTemplatePopupProvider.get(); + } else if (lastExecutedCommand == getModel().getNewImageCommand()) { + return makeImagePopupProvider.get(); } else if (lastExecutedCommand == getModel().getRunOnceCommand()) { return runOncePopupProvider.get(); } else if (lastExecutedCommand == getModel().getChangeCdCommand()) { @@ -168,7 +172,6 @@ VmListModel.class, VmSessionsModel.class); } - // Searchable Detail Models @Provides diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/ImagePopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/ImagePopupPresenterWidget.java new file mode 100644 index 0000000..1164588 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/vm/ImagePopupPresenterWidget.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 ImagePopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<UnitVmModel, ImagePopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<UnitVmModel> { + VmPopup getPopup(); + } + + @Inject + public ImagePopupPresenterWidget(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/view/popup/vm/ImagePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImagePopupView.java new file mode 100644 index 0000000..e2bb092 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImagePopupView.java @@ -0,0 +1,35 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.vm; + +import org.ovirt.engine.ui.common.CommonApplicationMessages; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.ImagePopupPresenterWidget; +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.ImagePopupWidget; +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 com.google.gwt.core.client.GWT; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + +public class ImagePopupView extends AbstractModelBoundWidgetPopupView<UnitVmModel> implements ImagePopupPresenterWidget.ViewDef { + + interface ViewIdHandler extends ElementIdHandler<ImagePopupView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @Inject + public ImagePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, CommonApplicationMessages messages, CommonApplicationTemplates applicationTemplates) { + super(eventBus, resources, new ImagePopupWidget(constants, resources, messages, applicationTemplates), "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/MainTabVirtualMachineView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java index e08c9cc..e325c52 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java @@ -243,6 +243,12 @@ return getMainModel().getNewTemplateCommand(); } }); + getTable().addActionButton(new WebAdminButtonDefinition<VM>(constants.makeImage()) { + @Override + protected UICommand resolveCommand() { + return getMainModel().getNewImageCommand(); + } + }); // TODO: separator getTable().addActionButton(new WebAdminButtonDefinition<VM>(constants.exportVm()) { @Override -- To view, visit http://gerrit.ovirt.org/12441 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id8854e85093e42efd9262efa3989111b89f55794 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
