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

Reply via email to