Arik Hadas has uploaded a new change for review.

Change subject: webadmin: virtio-tools
......................................................................

webadmin: virtio-tools

Change-Id: I7fd184bb4847dd07e1ac6b831c6857eeb8a16fc7
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExternalProviderModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.ui.xml
4 files changed, 114 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/42259/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 1901367..18cb493 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
@@ -775,6 +775,9 @@
     @DefaultStringValue("Attach CD")
     String attachCdVmPopup();
 
+    @DefaultStringValue("Attach VirtIO-Drivers")
+    String attachVirtioDrivers();
+
     @DefaultStringValue("Linux Boot Options:")
     String linuxBootOptionsVmPopup();
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExternalProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExternalProviderModel.java
index f41143b..aba987d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExternalProviderModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmFromExternalProviderModel.java
@@ -41,7 +41,10 @@
 import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
+import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
+import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback;
 
@@ -57,6 +60,8 @@
     private VmImportDiskListModel importDiskListModel;
     private List<Network> networks;
     private List<VnicProfileView> networkProfiles;
+    private ListModel<String> iso;
+    private EntityModel<Boolean> attachDrivers;
 
     private String url;
     private String username;
@@ -71,6 +76,15 @@
         setStorage(new ListModel<StorageDomain>());
         setAllocation(new ListModel<VolumeType>());
         getAllocation().setItems(Arrays.asList(VolumeType.Sparse, 
VolumeType.Preallocated));
+        setIso(new ListModel<String>());
+        getIso().setIsChangeable(false);
+        setAttachDrivers(new EntityModel<Boolean>(false));
+        getAttachDrivers().getEntityChangedEvent().addListener(new 
IEventListener<EventArgs>() {
+            @Override
+            public void eventRaised(Event<? extends EventArgs> ev, Object 
sender, EventArgs args) {
+                getIso().setIsChangeable(getAttachDrivers().getEntity());
+            }
+        });
         getClusterQuota().setIsAvailable(false);
         setDetailList(vmImportGeneralModel, vmImportInterfaceListModel, 
importDiskListModel);
     }
@@ -225,11 +239,35 @@
                         importVmData.getCollapseSnapshots());
             }
         }
+        initIsoImages();
         postInitDisks();
     }
 
     private void postInitDisks() {
         stopProgress();
+    }
+
+    private void initIsoImages() {
+        AsyncDataProvider.getInstance().getIrsImageList(new AsyncQuery(this,
+                new INewAsyncCallback() {
+                    @Override
+                    public void onSuccess(Object target, Object returnValue) {
+                        List<String> images = (List<String>) returnValue;
+                        getIso().setItems(images);
+                        getIso().setSelectedItem(tryToFindVirtioTools(images));
+                    }
+                }),
+                getStoragePool().getId(),
+                false);
+    }
+
+    private String tryToFindVirtioTools(List<String> isos) {
+        for (String iso : isos) {
+            if (iso.startsWith("virtio-win")) { //$NON-NLS-1$
+                return iso;
+            }
+        }
+        return isos.isEmpty() ? null : isos.get(0);
     }
 
     private void initQuotaForStorageDomains() {
@@ -385,4 +423,20 @@
     void setProxyHostId(Guid proxyHostId) {
         this.proxyHostId = proxyHostId;
     }
+
+    public ListModel<String> getIso() {
+        return iso;
+    }
+
+    public void setIso(ListModel<String> iso) {
+        this.iso = iso;
+    }
+
+    public EntityModel<Boolean> getAttachDrivers() {
+        return attachDrivers;
+    }
+
+    public void setAttachDrivers(EntityModel<Boolean> attachTools) {
+        this.attachDrivers = attachTools;
+    }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.java
index fc84740..1f96fc1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.java
@@ -15,14 +15,19 @@
 import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
 import org.ovirt.engine.core.common.businessentities.storage.VolumeType;
 import org.ovirt.engine.ui.common.CommonApplicationTemplates;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
 import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
+import org.ovirt.engine.ui.common.widget.Align;
 import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor;
+import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxOnlyEditor;
 import org.ovirt.engine.ui.common.widget.editor.ListModelObjectCellTable;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor;
 import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
 import 
org.ovirt.engine.ui.common.widget.renderer.StorageDomainFreeSpaceRenderer;
+import org.ovirt.engine.ui.common.widget.renderer.StringRenderer;
 import org.ovirt.engine.ui.common.widget.table.column.AbstractCheckboxColumn;
 import org.ovirt.engine.ui.common.widget.table.column.AbstractDiskSizeColumn;
 import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn;
@@ -105,6 +110,16 @@
     @Path(value = "allocation.selectedItem")
     ListModelListBoxEditor<VolumeType> disksAllocationEditor;
 
+    @UiField(provided = true)
+    @Path(value = "iso.selectedItem")
+    @WithElementId("iso")
+    public ListModelListBoxOnlyEditor<String> cdImageEditor;
+
+    @UiField(provided = true)
+    @Path(value = "attachDrivers.entity")
+    @WithElementId("attachDrivers")
+    public EntityModelCheckBoxEditor attachDriversEditor;
+
     @UiField
     SplitLayoutPanel splitLayoutPanel;
 
@@ -149,10 +164,14 @@
 
         initListBoxEditors();
         initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
-
+        applyStyles();
         localize(constants);
         initTables();
         driver.initialize(this);
+    }
+
+    protected void applyStyles() {
+        
attachDriversEditor.addContentWidgetContainerStyleName(style.cdAttachedLabelWidth());
     }
 
     private void initTables() {
@@ -266,6 +285,7 @@
         destStorageEditor.setLabel(constants.storageDomainDisk());
         cpuProfileEditor.setLabel(constants.cpuProfileLabel());
         disksAllocationEditor.setLabel(constants.allocationDisk());
+        attachDriversEditor.setLabel(constants.attachVirtioDrivers());
     }
 
     private void initListBoxEditors() {
@@ -297,6 +317,9 @@
                 return new EnumRenderer<VolumeType>().render(object);
             }
         });
+
+        attachDriversEditor = new EntityModelCheckBoxEditor(Align.LEFT);
+        cdImageEditor = new ListModelListBoxOnlyEditor<>(new 
StringRenderer<String>());
     }
 
     @Override
@@ -540,5 +563,7 @@
         String collapseEditor();
 
         String cellSelectBox();
+
+        String cdAttachedLabelWidth();
     }
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.ui.xml
index 2fa6514..4089bc0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/ImportVmFromExternalProviderPopupView.ui.xml
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
 <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
-    xmlns:g="urn:import:com.google.gwt.user.client.ui" 
xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
+    xmlns:g="urn:import:com.google.gwt.user.client.ui"
+    xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
     xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
+    xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
     xmlns:t="urn:import:org.ovirt.engine.ui.common.widget.dialog.tab">
     <ui:with field='resources'
         type='org.ovirt.engine.ui.webadmin.ApplicationResources' />
@@ -70,8 +72,27 @@
         }
 
         .listBoxEditor {
-            width: 515px;
+            width: 450px;
         }
+
+               .cdImagesEditor {
+                  width: 100px;
+               }
+
+               .horizontalPanel {
+            float: left;
+        }
+
+               .cdAttachedLabelWidth {
+            width: 30px;
+            margin-left: 50px;
+        }
+
+               .aaa {
+                       margin-left: 10px;
+                       margin-right: 5px;
+               }
+
     </ui:style>
     <d:SimpleDialogPanel height="575px" width="1000px">
         <d:content>
@@ -79,21 +100,24 @@
                 <g:HorizontalPanel>
                     <g:VerticalPanel>
                         <g:HorizontalPanel>
-                            <g:VerticalPanel>
+                            <g:VerticalPanel addStyleNames="{style.aaa}">
                                 <e:ListModelListBoxEditor 
ui:field="destStorageEditor" addStyleNames="{style.listBoxEditor}"/>
                                 <e:ListModelListBoxEditor 
ui:field="destClusterEditor" addStyleNames="{style.listBoxEditor}"/>
                                 <e:ListModelListBoxEditor 
ui:field="cpuProfileEditor" addStyleNames="{style.listBoxEditor}"/>
                             </g:VerticalPanel>
-                            <g:VerticalPanel>
-                                <e:ListModelListBoxEditor 
ui:field="disksAllocationEditor" />
+                            <g:VerticalPanel verticalAlignment="ALIGN_MIDDLE" 
addStyleNames="{style.aaa}">
+                                <e:ListModelListBoxEditor 
ui:field="disksAllocationEditor" addStyleNames="{style.listBoxEditor}" />
+                                <g:HorizontalPanel>
+                                    <ge:EntityModelCheckBoxEditor 
ui:field="attachDriversEditor" />
+                                    <e:ListModelListBoxOnlyEditor 
ui:field="cdImageEditor" addStyleNames="avmpw_cdImageEditor_pfly_fix" />
+                                </g:HorizontalPanel>
                                 <e:ListModelListBoxEditor 
ui:field="destClusterQuotaEditor" />
                             </g:VerticalPanel>
                         </g:HorizontalPanel>
                     </g:VerticalPanel>
                 </g:HorizontalPanel>
                 <g:Label ui:field="message" addStyleNames="{style.labelStyle}" 
/>
-                <g:SplitLayoutPanel ui:field="splitLayoutPanel"
-                    height="360px" 
addStyleNames="{style.splitLayoutPanelStyle}" />
+                <g:SplitLayoutPanel ui:field="splitLayoutPanel" height="360px" 
addStyleNames="{style.splitLayoutPanelStyle}" />
             </g:VerticalPanel>
         </d:content>
     </d:SimpleDialogPanel>


-- 
To view, visit https://gerrit.ovirt.org/42259
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7fd184bb4847dd07e1ac6b831c6857eeb8a16fc7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Arik Hadas <aha...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to