Tomas Jelinek has uploaded a new change for review.

Change subject: frontend: introduced the detachable widgets into the VM dialogs
......................................................................

frontend: introduced the detachable widgets into the VM dialogs

Wrapped the widgets which are supposed to be detachable by the detachable
widgets in the VM dialgos + added the configuration needed to make this widgets
detachable on places where they are supposed to be.

feature page: http://www.ovirt.org/Features/Instance_Types
Change-Id: I990325e4ec554f0cdd84f6a2bb8772f1d71c705f
Signed-off-by: Tomas Jelinek <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolEditPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/template/TemplateNewPopupWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java
6 files changed, 343 insertions(+), 171 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/25576/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
index 78590ef..e081bbf 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
@@ -5,12 +5,14 @@
 import java.util.Arrays;
 import java.util.List;
 
+import static com.google.gwt.dom.client.Style.Unit;
 import org.ovirt.engine.core.common.businessentities.BootSequence;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
+import org.ovirt.engine.core.common.businessentities.InstanceType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
@@ -28,7 +30,9 @@
 import org.ovirt.engine.ui.common.CommonApplicationTemplates;
 import org.ovirt.engine.ui.common.idhandler.WithElementId;
 import org.ovirt.engine.ui.common.widget.Align;
+import org.ovirt.engine.ui.common.widget.EntityModelDetachableWidgetWithInfo;
 import org.ovirt.engine.ui.common.widget.EntityModelWidgetWithInfo;
+import org.ovirt.engine.ui.common.widget.HasDetachable;
 import org.ovirt.engine.ui.common.widget.dialog.AdvancedParametersExpander;
 import org.ovirt.engine.ui.common.widget.dialog.InfoIcon;
 import org.ovirt.engine.ui.common.widget.dialog.tab.DialogTab;
@@ -39,8 +43,11 @@
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxOnlyEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.ListModelTypeAheadListBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.VncKeyMapRenderer;
+import org.ovirt.engine.ui.common.widget.editor.generic.DetachableLabel;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelCheckBoxOnlyEditor;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableWidget;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableWidgetWithLabel;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelRadioButtonEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBoxOnlyEditor;
@@ -122,6 +129,8 @@
 
         String generalTabExtendedRightWidgetWidth();
 
+        String generalTabExtendedRightWidgetWrapperWidth();
+
         String cdImageEditor();
 
         String monitorsStyles();
@@ -192,6 +201,11 @@
     public ListModelListBoxEditor<VmType> vmTypeEditor;
 
     @UiField(provided = true)
+    @Path(value = "instanceTypes.selectedItem")
+    @WithElementId("instanceType")
+    public ListModelTypeAheadListBoxEditor<InstanceType> instanceTypesEditor;
+
+    @UiField(provided = true)
     @Path(value = "isDeleteProtected.entity")
     @WithElementId("isDeleteProtected")
     public EntityModelCheckBoxEditor isDeleteProtectedEditor;
@@ -213,17 +227,19 @@
     protected DialogTab systemTab;
 
     @UiField(provided = true)
+    public EntityModelDetachableWidgetWithLabel detachableMemSizeEditor;
+
     @Path(value = "memSize.entity")
     @WithElementId("memSize")
     public EntityModelTextBoxEditor<Integer> memSizeEditor;
 
-    @UiField(provided = true)
     @Path(value = "totalCPUCores.entity")
     @WithElementId("totalCPUCores")
     public StringEntityModelTextBoxOnlyEditor totalvCPUsEditor;
 
     @UiField(provided = true)
-    InfoIcon totalVCpuInfoIcon;
+    @Ignore
+    public EntityModelDetachableWidgetWithInfo totalvCPUsEditorWithInfoIcon;
 
     @UiField
     @Ignore
@@ -233,15 +249,19 @@
     @Ignore
     Panel vcpusAdvancedParameterExpanderContent;
 
-    @UiField(provided = true)
     @Path(value = "numOfSockets.selectedItem")
     @WithElementId("numOfSockets")
     public ListModelListBoxEditor<Integer> numOfSocketsEditor;
 
-    @UiField(provided = true)
     @Path(value = "coresPerSocket.selectedItem")
     @WithElementId("coresPerSocket")
     public ListModelListBoxEditor<Integer> corePerSocketEditor;
+
+    @UiField(provided = true)
+    public EntityModelDetachableWidgetWithLabel 
numOfSocketsEditorWithDetachable;
+
+    @UiField(provided = true)
+    public EntityModelDetachableWidgetWithLabel 
corePerSocketEditorWithDetachable;
 
     @UiField
     @Ignore
@@ -257,10 +277,13 @@
     @WithElementId("ssoMethodGuestAgent")
     public EntityModelRadioButtonEditor ssoMethodGuestAgent;
 
-    @UiField(provided = true)
     @Path(value = "isSoundcardEnabled.entity")
     @WithElementId("isSoundcardEnabled")
     public EntityModelCheckBoxEditor isSoundcardEnabledEditor;
+
+    @UiField(provided = true)
+    @Ignore
+    public EntityModelDetachableWidget isSoundcardEnabledEditorWithDetachable;
 
     @UiField(provided = true)
     @Path("copyPermissions.entity")
@@ -425,20 +448,26 @@
     @WithElementId("isRunAndPause")
     public EntityModelCheckBoxEditor isRunAndPauseEditor;
 
-    @UiField(provided = true)
     @Path(value = "isSmartcardEnabled.entity")
     @WithElementId("isSmartcardEnabled")
     public EntityModelCheckBoxEditor isSmartcardEnabledEditor;
+
+    @UiField(provided = true)
+    public EntityModelDetachableWidget isSmartcardEnabledEditorWithDetachable;
 
     @UiField(provided = true)
     @Path(value = "allowConsoleReconnect.entity")
     @WithElementId("allowConsoleReconnect")
     public EntityModelCheckBoxEditor allowConsoleReconnectEditor;
 
-    @UiField(provided = true)
+
     @Path(value = "isConsoleDeviceEnabled.entity")
     @WithElementId("isConsoleDeviceEnabled")
     public EntityModelCheckBoxEditor isConsoleDeviceEnabledEditor;
+
+    @UiField(provided = true)
+    @Ignore
+    public EntityModelDetachableWidget 
isConsoleDeviceEnabledEditorWithDetachable;
 
     @UiField
     @Path(value = "spiceProxy.entity")
@@ -462,15 +491,19 @@
     @WithElementId("hostCpu")
     public EntityModelCheckBoxEditor hostCpuEditor;
 
-    @UiField(provided = true)
     @Path(value = "migrationMode.selectedItem")
     @WithElementId("migrationMode")
     public ListModelListBoxEditor<MigrationSupport> migrationModeEditor;
 
     @UiField(provided = true)
+    public EntityModelDetachableWidget migrationModeEditorWithDetachable;
+
     @Path(value = "overrideMigrationDowntime.entity")
     @WithElementId("overrideMigrationDowntime")
     public EntityModelCheckBoxOnlyEditor overrideMigrationDowntimeEditor;
+
+    @UiField(provided = true)
+    public EntityModelDetachableWidget 
overrideMigrationDowntimeEditorWithDetachable;
 
     @UiField(provided = true)
     public InfoIcon migrationDowntimeInfoIcon;
@@ -536,10 +569,13 @@
     @UiField
     protected DialogTab highAvailabilityTab;
 
-    @UiField(provided = true)
     @Path(value = "isHighlyAvailable.entity")
     @WithElementId("isHighlyAvailable")
     public EntityModelCheckBoxEditor isHighlyAvailableEditor;
+
+    @UiField(provided = true)
+    @Ignore
+    public EntityModelDetachableWidget isHighlyAvailableEditorWithDetachable;
 
     // TODO: Priority is a ListModel which is rendered as RadioBox
     @UiField(provided = true)
@@ -549,12 +585,20 @@
 
     @UiField
     @Ignore
+    public DetachableLabel priorityLabelWithDetachable;
+
+    @UiField
+    @Ignore
     public FlowPanel watchdogPanel;
 
     @UiField(provided = true)
     @Path(value = "watchdogModel.selectedItem")
     @WithElementId("watchdogModel")
     public ListModelListBoxEditor<String> watchdogModelEditor;
+
+    @UiField
+    @Ignore
+    public DetachableLabel watchdogLabel;
 
     @UiField(provided = true)
     @Path(value = "watchdogAction.selectedItem")
@@ -579,6 +623,9 @@
     @WithElementId("provisioning")
     public ListModelListBoxEditor provisioningEditor;
 
+    @UiField
+    public DetachableLabel memAllocationLabel;
+
     @UiField(provided = true)
     @Path(value = "minAllocatedMemory.entity")
     @WithElementId("minAllocatedMemory")
@@ -598,9 +645,13 @@
     @WithElementId("provisioningClone")
     public EntityModelRadioButtonEditor provisioningCloneEditor;
 
-    @UiField(provided = true)
     @Path(value = "isVirtioScsiEnabled.entity")
-    EntityModelCheckBoxEditor isVirtioScsiEnabled;
+    @WithElementId("isVirtioScsiEnabled")
+    public EntityModelCheckBoxEditor isVirtioScsiEnabled;
+
+    @UiField(provided = true)
+    @Ignore
+    public EntityModelDetachableWidget isVirtioScsiEnabledWithDetachable;
 
     @UiField(provided = true)
     @Ignore
@@ -709,6 +760,7 @@
         // Contains a special parser/renderer
         memSizeEditor = new EntityModelTextBoxEditor<Integer>(
                 new MemorySizeRenderer<Integer>(constants), new 
MemorySizeParser(), new ModeSwitchingVisibilityRenderer());
+
         minAllocatedMemoryEditor = new EntityModelTextBoxEditor<Integer>(
                 new MemorySizeRenderer<Integer>(constants), new 
MemorySizeParser(), new ModeSwitchingVisibilityRenderer());
 
@@ -750,6 +802,9 @@
         initPoolSpecificWidgets(resources, messages);
         initTextBoxEditors();
         initSpiceProxy();
+        initTotalVcpus();
+
+        initDetachableFields();
 
         initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
 
@@ -777,6 +832,18 @@
         initialize();
     }
 
+    private void initDetachableFields() {
+        detachableMemSizeEditor = new 
EntityModelDetachableWidgetWithLabel(memSizeEditor);
+        isSmartcardEnabledEditorWithDetachable = new 
EntityModelDetachableWidget(isSmartcardEnabledEditor, Align.RIGHT);
+        isSoundcardEnabledEditorWithDetachable = new 
EntityModelDetachableWidget(isSoundcardEnabledEditor, Align.RIGHT);
+        isConsoleDeviceEnabledEditorWithDetachable = new 
EntityModelDetachableWidget(isConsoleDeviceEnabledEditor, Align.RIGHT);
+        isHighlyAvailableEditorWithDetachable = new 
EntityModelDetachableWidget(isHighlyAvailableEditor, Align.RIGHT);
+        overrideMigrationDowntimeEditorWithDetachable = new 
EntityModelDetachableWidget(overrideMigrationDowntimeEditor, Align.RIGHT);
+        
overrideMigrationDowntimeEditor.getContentWidgetContainer().getElement().getStyle().setWidth(20,
 Unit.PX);
+        isVirtioScsiEnabledWithDetachable = new 
EntityModelDetachableWidget(isVirtioScsiEnabled, Align.RIGHT);
+        migrationModeEditorWithDetachable = new 
EntityModelDetachableWidget(migrationModeEditor, Align.RIGHT);
+    }
+
     protected void initialize() {
 
     }
@@ -788,6 +855,14 @@
         spiceProxyEnabledCheckboxWithInfoIcon = new 
EntityModelWidgetWithInfo(label, spiceProxyOverrideEnabledEditor);
     }
 
+    private void initTotalVcpus() {
+        EntityModelLabel label = new EntityModelLabel();
+        label.setText(constants.numOfVCPUs());
+        totalvCPUsEditor = new StringEntityModelTextBoxOnlyEditor(new 
ModeSwitchingVisibilityRenderer());
+        totalvCPUsEditorWithInfoIcon = new 
EntityModelDetachableWidgetWithInfo(label, totalvCPUsEditor);
+        
totalvCPUsEditorWithInfoIcon.setExplanation(applicationTemplates.italicText(messages.hotPlugUnplugCpuWarning()));
+    }
+
     public void setSpiceProxyOverrideExplanation(String explanation) {
         
spiceProxyEnabledCheckboxWithInfoIcon.setExplanation(applicationTemplates.italicText(explanation));
     }
@@ -795,7 +870,6 @@
     private void initTextBoxEditors() {
         descriptionEditor = new StringEntityModelTextBoxEditor(new 
ModeSwitchingVisibilityRenderer());
         commentEditor = new StringEntityModelTextBoxEditor(new 
ModeSwitchingVisibilityRenderer());
-        totalvCPUsEditor = new StringEntityModelTextBoxOnlyEditor(new 
ModeSwitchingVisibilityRenderer());
         numOfVmsEditor = new IntegerEntityModelTextBoxEditor(new 
ModeSwitchingVisibilityRenderer());
         cpuPinning = new StringEntityModelTextBoxOnlyEditor(new 
ModeSwitchingVisibilityRenderer());
         cpuSharesAmountEditor = new IntegerEntityModelTextBoxOnlyEditor(new 
ModeSwitchingVisibilityRenderer());
@@ -840,7 +914,6 @@
 
         });
 
-        totalVCpuInfoIcon = new 
InfoIcon(applicationTemplates.italicText(messages.hotPlugUnplugCpuWarning()), 
resources);
     }
 
     /**
@@ -960,8 +1033,29 @@
 
         vmTypeEditor = new ListModelListBoxEditor<VmType>(new EnumRenderer(), 
new ModeSwitchingVisibilityRenderer());
 
+        instanceTypesEditor = new 
ListModelTypeAheadListBoxEditor<InstanceType>(
+                new 
ListModelTypeAheadListBoxEditor.NullSafeSuggestBoxRenderer<InstanceType>() {
+
+                    @Override
+                    public String getReplacementStringNullSafe(InstanceType 
data) {
+                        return data.getName();
+                    }
+
+                    @Override
+                    public String getDisplayStringNullSafe(InstanceType data) {
+                            return typeAheadNameDescriptionTemplateNullSafe(
+                                    data.getName(),
+                                    data.getDescription()
+                            );
+                    }
+                },
+                new ModeSwitchingVisibilityRenderer()
+        );
+
         numOfSocketsEditor = new ListModelListBoxEditor<Integer>(new 
ModeSwitchingVisibilityRenderer());
+        numOfSocketsEditorWithDetachable = new 
EntityModelDetachableWidgetWithLabel(numOfSocketsEditor);
         corePerSocketEditor = new ListModelListBoxEditor<Integer>(new 
ModeSwitchingVisibilityRenderer());
+        corePerSocketEditorWithDetachable = new 
EntityModelDetachableWidgetWithLabel(corePerSocketEditor);
 
         // Pools
         poolTypeEditor = new 
ListModelListBoxEditor<EntityModel<VmPoolType>>(new 
NullSafeRenderer<EntityModel<VmPoolType>>() {
@@ -1080,8 +1174,10 @@
         nameLabel.setText(constants.nameVmPopup());
         descriptionEditor.setLabel(constants.descriptionVmPopup());
         commentEditor.setLabel(constants.commentLabel());
+
         baseTemplateEditor.setLabel(constants.basedOnTemplateVmPopup());
         templateEditor.setLabel(constants.templateSubVersion());
+        instanceTypesEditor.setLabel(constants.instanceType());
 
         oSTypeEditor.setLabel(constants.osVmPopup());
         vmTypeEditor.setLabel(constants.optimizedFor());
@@ -1153,8 +1249,10 @@
 
         // System tab
         memSizeEditor.setLabel(constants.memSizeVmPopup());
-        corePerSocketEditor.setLabel(constants.coresPerSocket());
-        numOfSocketsEditor.setLabel(constants.numOfSockets());
+        detachableMemSizeEditor.setLabel(constants.memSizeVmPopup());
+        totalvCPUsEditor.setLabel(constants.numOfVCPUs());
+        corePerSocketEditorWithDetachable.setLabel(constants.coresPerSocket());
+        numOfSocketsEditorWithDetachable.setLabel(constants.numOfSockets());
     }
 
     protected void applyStyles() {
@@ -1186,6 +1284,7 @@
         initTabAvailabilityListeners(model);
         initListeners(model);
         hideAlwaysHiddenFields();
+        decorateDetachableFields();
     }
 
     @UiHandler("refreshButton")
@@ -1242,7 +1341,7 @@
                 changeApplicationLevelVisibility(disksAllocationPanel, 
isDisksAvailable);
 
                 changeApplicationLevelVisibility(storageAllocationPanel, 
isProvisioningAvailable || isDisksAvailable ||
-                    object.getIsVirtioScsiEnabled().getIsAvailable());
+                        object.getIsVirtioScsiEnabled().getIsAvailable());
             }
         });
 
@@ -1512,6 +1611,7 @@
         quotaEditor.setTabIndex(nextTabIndex++);
         oSTypeEditor.setTabIndex(nextTabIndex++);
         baseTemplateEditor.setTabIndex(nextTabIndex++);
+        instanceTypesEditor.setTabIndexes(nextTabIndex++);
         templateEditor.setTabIndex(nextTabIndex++);
 
         nameEditor.setTabIndex(nextTabIndex++);
@@ -1672,7 +1772,27 @@
                 );
     }
 
+    protected List<Widget> detachableWidgets() {
+        return Arrays.<Widget> asList(
+                totalvCPUsEditorWithInfoIcon,
+                numOfSocketsEditorWithDetachable,
+                corePerSocketEditorWithDetachable,
+                isSmartcardEnabledEditorWithDetachable,
+                isConsoleDeviceEnabledEditorWithDetachable,
+                isSoundcardEnabledEditorWithDetachable,
+                isHighlyAvailableEditorWithDetachable,
+                priorityLabelWithDetachable,
+                migrationModeEditorWithDetachable,
+                memAllocationLabel,
+                isVirtioScsiEnabledWithDetachable,
+                detachableMemSizeEditor,
+                overrideMigrationDowntimeEditorWithDetachable,
+                watchdogLabel
+        );
+    }
+
     protected void disableAllTabs() {
+        generalTab.disableContent();
         generalTab.disableContent();
         poolTab.disableContent();
         initialRunTab.disableContent();
@@ -1689,6 +1809,22 @@
         templateEditor.setEnabled(false);
         baseTemplateEditor.setEnabled(false);
         vmTypeEditor.setEnabled(false);
+        instanceTypesEditor.setEnabled(false);
     }
 
+    protected void decorateDetachableFields() {
+        for (Widget decoratedWidget : 
getWidgetConfiguration().getDetachables().keySet()) {
+            if (decoratedWidget instanceof HasDetachable) {
+                ((HasDetachable) 
decoratedWidget).setDetachableIconVisible(true);
+            }
+        }
+    }
+
+    public void switchAttachToInstanceType(boolean attached) {
+        for (Widget detachable : 
getWidgetConfiguration().getDetachables().keySet()) {
+            if (detachable instanceof HasDetachable) {
+                ((HasDetachable) detachable).setAttached(attached);
+            }
+        }
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml
index 4706a5c..9a405cb 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml
@@ -54,11 +54,16 @@
       .overrideMigrationDowntime {
         display: inline;
         float: left;
-        width: 20px;
+        width: 50px;
       }
 
       .overrideMigrationDowntime div {
         width: 20px;
+        margin-top: 0;
+      }
+
+      .overrideMigrationDowntime>div {
+          width: 50px;
       }
 
       .migrationDowntimeLabel {
@@ -79,44 +84,44 @@
       }
       <!--                     turns off the original styles -->
 
-               .checkboxWithLongLabel,.checkbox {
-                       margin-left: -9px;
-               }
+        .checkboxWithLongLabel, .checkbox {
+            margin-left: -9px;
+        }
 
-               .checkboxWithLongLabel label {
-                       margin-left: 26px;
-                       margin-top: -26px;
-                       display: block;
-                       line-height: 20px;
-               }
+        .checkboxWithLongLabel label {
+            margin-left: 26px;
+            margin-top: -26px;
+            display: block;
+            line-height: 20px;
+        }
 
-               .longCheckboxContent {
-                       width: 90%;
-               }
+        .longCheckboxContent {
+            width: 90%;
+        }
 
-               .provisioningEditor {
-                       padding-right: 25px;
-               }
+        .provisioningEditor {
+            padding-right: 25px;
+        }
 
-               .provisioningEditorContent  {
-                       display: none;
-               }
+        .provisioningEditorContent {
+            display: none;
+        }
 
-               .provisioningRadioContent  {
-                       padding-top: 3px;
-                       width: 100%;
-               }
+        .provisioningRadioContent {
+            padding-top: 3px;
+            width: 100%;
+        }
 
-               .disksAllocation {
-                       padding-left: 5px;
-                       padding-top: 10px;
-               }
+        .disksAllocation {
+            padding-left: 5px;
+            padding-top: 10px;
+        }
 
-               .disksAllocationPanel {
-                       width: 490px;
-                       padding-top: 5px;
-                       padding-bottom: 10px;
-               }
+        .disksAllocationPanel {
+            width: 490px;
+            padding-top: 5px;
+            padding-bottom: 10px;
+        }
 
         .textBox {
             width: 30px;
@@ -138,124 +143,126 @@
             text-align: right;
         }
 
-               .radioButton {
+        .radioButton {
 
-               }
+        }
 
-               .radioButtonSpecificHost {
+        .radioButtonSpecificHost {
             margin-left: 5px;
-               }
+        }
 
-               .label {
-                       width: 350px;
-               }
+        .label {
+            width: 350px;
+        }
 
         .labelDisabled {
             color: gray;
         }
 
-               .runHostPanel {
+        .runHostPanel {
 
-               }
+        }
 
-               .attachCdPanel {
-                       width: 100%;
-               }
+        .attachCdPanel {
+            width: 100%;
+        }
 
         .cdAttachedLabelWidth {
             width: 30px;
         }
 
-               .hostRunMigrationOptions {
-                       margin-left: 6px;
-               }
+        .hostRunMigrationOptions {
+            margin-left: 6px;
+        }
 
-               .warningMessageLabel {
-                       color: #CD2127;
-                       position: absolute;
-                       bottom: 10px;
-               }
+        .warningMessageLabel {
+            color: #CD2127;
+            position: absolute;
+            bottom: 10px;
+        }
 
-
-
-               .cpuPinningStyle {
+        .cpuPinningStyle {
             float: left;
-               }
+        }
 
-               .expanderContent,.generalExpanderContent {
-                       padding-left: 10px;
-               }
-               
-               .monitorsStyles {
-                       width: 40px;
-                       padding-left: 5px;
-               }
+        .expanderContent, .generalExpanderContent {
+            padding-left: 10px;
+        }
 
-               .expanderContent {
-                       float: left;
-               }
+        .monitorsStyles {
+            width: 40px;
+            padding-left: 5px;
+        }
 
-               .warningLabel {
+        .expanderContent {
+            float: left;
+        }
+
+        .warningLabel {
             color: red;
             font-weight: bold;
             margin-bottom: 10px;
         }
-        
+
         .poolEditVms, .name {
-                       line-height: 30px;
-                       padding: 0 5px;
-                       padding-bottom: 35px;
+            line-height: 30px;
+            padding: 0 5px;
+            padding-bottom: 35px;
         }
-        
-        
.prestartedVmsEditorContent,.nameEditorContent,.maxAssignedVmsPerUserEditorContent
 {
-               width: 230px;
+
+        .prestartedVmsEditorContent, .nameEditorContent, 
.maxAssignedVmsPerUserEditorContent {
+            width: 230px;
         }
-        
-        .prestartedVmsEditor,.nameEditor,.maxAssignedVmsPerUserEditor {
-               float: right;
-               width: 230px;
+
+        .prestartedVmsEditor, .nameEditor, .maxAssignedVmsPerUserEditor {
+            float: right;
+            width: 230px;
         }
-        
-        .editPrestartedVmsEditor,.editMaxAssignedVmsPerUserEditor {
-               float: left;
-               padding-right: 10px;
+
+        .editPrestartedVmsEditor, .editMaxAssignedVmsPerUserEditor {
+            float: left;
+            padding-right: 10px;
         }
-        
+
         .infoIcon, .prestartedVmsIcon, .poolNameIcon, 
.maxAssignedVmsPerUserIcon {
-               float: left;
-               padding-top: 5px;
+            float: left;
+            padding-top: 5px;
             padding-left: 2px;
         }
-        
-        
.prestartedLabelWithHelp,.increasePrestartedLabel,.maxAssignedVmsPerUserLabel {
-               float: left;
+
+        .prestartedLabelWithHelp, .increasePrestartedLabel, 
.maxAssignedVmsPerUserLabel {
+            float: left;
         }
 
-        .editPrestartedVms,.editIncreaseVms,.editMaxAssignedVmsPerUser {
+        .editPrestartedVms, .editIncreaseVms, .editMaxAssignedVmsPerUser {
             float: right;
-               width: 250px;
+            width: 250px;
         }
-        
+
         .prestartedLabel, .nameLabel {
-               float: left;
-               color: #333333;
-        }
-        
-        .increaseVmsInPoolVms,.maxAssignedVmsPerUserVms {
-               float: left;
+            float: left;
+            color: #333333;
         }
 
-               .migrationSelect {
-                       margin-right: 7px;
-               }
+        .increaseVmsInPoolVms, .maxAssignedVmsPerUserVms {
+            float: left;
+        }
 
-               .generalTabExtendedRightWidgetWidth {
-                       width: 250px !important;
+        .migrationSelect {
+            margin-right: 7px;
+        }
+
+        .generalTabExtendedRightWidgetWidth {
+            width: 250px !important;
+        }
+
+        .generalTabExtendedRightWidgetWrapperWidth {
+            width: 280px !important;
         }
 
         .headerPanel {
-                       padding-bottom: 6px;
-               }
+            padding-bottom: 6px;
+        }
 
         .refreshButton {
             float: right;
@@ -270,14 +277,14 @@
         }
 
         .cdImageEditor {
-                       width: 197px;
+            width: 197px;
         }
 
         .isVirtioScsiEnabledEditor {
             width: 100%;
         }
 
-               .monitorPanel {
+        .monitorPanel {
             line-height: 30px;
             padding-bottom: 0;
             padding-left: 5px;
@@ -293,9 +300,9 @@
             width: 265px;
         }
 
-               .hostSelector {
-                       width: 416px;
-               }
+        .hostSelector {
+            width: 416px;
+        }
 
         .labelToCouple {
             line-height: 30px;
@@ -306,7 +313,7 @@
 
         .labelToCoupleLabel {
             color: gray;
-            font-family: Verdana,sans-serif;
+            font-family: Verdana, sans-serif;
             font-size: 13px;
             line-height: 30px;
             padding: 0 5px;
@@ -337,19 +344,26 @@
             padding-left: 5px;
         }
 
-        .totalvcpusTextBox {
-            float: right;
-        }
-
         .cpuSahresValueTextBox {
             padding-left: 5px;
         }
 
-               .migrationSelectorInner {
-                       width: 260px;
-               }
+        .migrationSelectorInner {
+            width: 260px;
+        }
 
-       </ui:style>
+        .headerCol {
+            float: left;
+        }
+
+        .floatLeft {
+            float: left;
+        }
+
+        .fullWidth {
+            width: 100%;
+        }
+    </ui:style>
 
        <t:DialogTabPanel width="100%" height="100%" ui:field="mainTabPanel">
                <t:header>
@@ -359,6 +373,7 @@
                                <e:ListModelTypeAheadListBoxEditor 
ui:field="baseTemplateEditor"/>
                                <e:ListModelTypeAheadListBoxEditor 
ui:field="templateEditor" />
                                <e:ListModelListBoxEditor 
ui:field="oSTypeEditor" />
+                <e:ListModelTypeAheadListBoxEditor 
ui:field="instanceTypesEditor" />
                                <e:ListModelListBoxEditor 
ui:field="vmTypeEditor" />
                        </g:FlowPanel>
                </t:header>
@@ -444,21 +459,17 @@
                        <t:DialogTab ui:field="systemTab">
                                <t:content>
                                        <g:FlowPanel>
-                        <ge:EntityModelTextBoxEditor ui:field="memSizeEditor"/>
-                         <g:FlowPanel addStyleNames="{style.labelToCouple}">
-                             <g:Label text="{constants.numOfVCPUs}" 
addStyleNames="{style.labelToCoupleLabel}"/>
-                             <d:InfoIcon ui:field="totalVCpuInfoIcon"/>
-                             <ge:StringEntityModelTextBoxOnlyEditor 
ui:field="totalvCPUsEditor" addStyleNames="{style.totalvcpusTextBox}"/>
-                         </g:FlowPanel>
-                                                       <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
-                                                               
<d:AdvancedParametersExpander ui:field="vcpusAdvancedParameterExpander"/>
-                                                               <g:FlowPanel 
ui:field="vcpusAdvancedParameterExpanderContent" 
addStyleNames="{style.generalExpanderContent}">
-                                                                       
<e:ListModelListBoxEditor ui:field="corePerSocketEditor" />
-                                                                       
<e:ListModelListBoxEditor ui:field="numOfSocketsEditor" />
-                                                               </g:FlowPanel>
+                        <ge:EntityModelDetachableWidgetWithLabel 
ui:field="detachableMemSizeEditor"/>
+                        <w:EntityModelDetachableWidgetWithInfo 
ui:field="totalvCPUsEditorWithInfoIcon" />
+                                               <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
+                                                       
<d:AdvancedParametersExpander ui:field="vcpusAdvancedParameterExpander"/>
+                                                       <g:FlowPanel 
ui:field="vcpusAdvancedParameterExpanderContent" 
addStyleNames="{style.generalExpanderContent}">
+                                                               
<ge:EntityModelDetachableWidgetWithLabel 
ui:field="corePerSocketEditorWithDetachable" />
+                                                               
<ge:EntityModelDetachableWidgetWithLabel 
ui:field="numOfSocketsEditorWithDetachable" />
                                                        </g:FlowPanel>
-                            <g:Label ui:field="generalLabel" 
addStyleNames="{style.sectionLabel}" text="{constants.initialRunGeneral}" />
-                                               <e:ListModelListBoxEditor 
ui:field="timeZoneEditor" />
+                                               </g:FlowPanel>
+                        <g:Label ui:field="generalLabel" 
addStyleNames="{style.sectionLabel}" text="{constants.initialRunGeneral}" />
+                                           <e:ListModelListBoxEditor 
ui:field="timeZoneEditor" />
                                                </g:FlowPanel>
                                </t:content>
                        </t:DialogTab>
@@ -500,9 +511,10 @@
                                  </g:HorizontalPanel>
                               </g:FlowPanel>
                         </g:FlowPanel>
-                                               <ge:EntityModelCheckBoxEditor 
ui:field="isSmartcardEnabledEditor" addStyleNames="{style.checkbox}" />
+                                               <ge:EntityModelDetachableWidget 
ui:field="isSmartcardEnabledEditorWithDetachable" 
addStyleNames="{style.floatLeft}" />
                                                <g:Label 
ui:field="nativeUsbWarningMessage" text="{constants.nativeUsbSupportWarning}" 
addStyleNames="{style.warningMessageLabel}" />
-                        <g:Label ui:field="ssoMethodLabel" 
text="{constants.ssoMethod}" addStyleNames="{style.sectionLabel}" />
+
+                        <g:Label ui:field="ssoMethodLabel" 
text="{constants.ssoMethod}" addStyleNames="{style.sectionLabel} 
{style.floatLeft} {style.fullWidth}" />
                         <g:FlowPanel>
                             <ge:EntityModelRadioButtonEditor 
ui:field="ssoMethodNone"/>
                             <ge:EntityModelRadioButtonEditor 
ui:field="ssoMethodGuestAgent"/>
@@ -512,8 +524,11 @@
                                                        <g:Label 
addStyleNames="{style.warningLabel}" text="{constants.advancedOptionsLabel}" />
                                                        
<ge:EntityModelCheckBoxEditor ui:field="allowConsoleReconnectEditor" 
addStyleNames="{style.checkboxWithLongLabel}" />
                                                </g:FlowPanel>
-                        <ge:EntityModelCheckBoxEditor 
ui:field="isSoundcardEnabledEditor" addStyleNames="{style.checkbox}" />
-                                               <ge:EntityModelCheckBoxEditor 
ui:field="isConsoleDeviceEnabledEditor" addStyleNames="{style.checkbox}" />
+
+                        <g:FlowPanel>
+                            <ge:EntityModelDetachableWidget 
ui:field="isSoundcardEnabledEditorWithDetachable"  />
+                            <ge:EntityModelDetachableWidget 
ui:field="isConsoleDeviceEnabledEditorWithDetachable"  />
+                        </g:FlowPanel>
 
                         <w:EntityModelWidgetWithInfo 
ui:field="spiceProxyEnabledCheckboxWithInfoIcon" />
                         <ge:StringEntityModelTextBoxEditor 
ui:field="spiceProxyEditor"/>
@@ -541,15 +556,14 @@
 
                                                <g:Label 
addStyleNames="{style.sectionLabel}" 
text="{constants.runMigrationOptionsVmPopup}" />
                                                <g:VerticalPanel width="100%" 
addStyleNames="{style.hostRunMigrationOptions}">
-                                                        
<e:ListModelListBoxEditor ui:field="migrationModeEditor" 
addStyleNames="{style.migrationSelect}"/>
-                                                        
<ge:EntityModelCheckBoxEditor ui:field="hostCpuEditor" 
addStyleNames="{style.checkbox}" />
-
+                             <ge:EntityModelDetachableWidget 
ui:field="migrationModeEditorWithDetachable" 
addStyleNames="{style.migrationSelect}"/>
                              <g:FlowPanel 
addStyleNames="{style.migrationDowntimePanel}">
-                               <ge:EntityModelCheckBoxOnlyEditor 
ui:field="overrideMigrationDowntimeEditor" 
addStyleNames="{style.overrideMigrationDowntime}" />
+                               <ge:EntityModelDetachableWidget 
ui:field="overrideMigrationDowntimeEditorWithDetachable" 
addStyleNames="{style.overrideMigrationDowntime}" />
                                <g:Label 
text="{constants.overrideMigrationDowntimeLabel}" 
addStyleNames="{style.migrationDowntimeLabel}" />
                                <d:InfoIcon 
ui:field="migrationDowntimeInfoIcon" 
addStyleNames="{style.migrationDowntimeInfoIcon}" />
                                <ge:IntegerEntityModelTextBoxOnlyEditor 
ui:field="migrationDowntimeEditor" addStyleNames="{style.migrationDowntime}" />
                              </g:FlowPanel>
+                             <ge:EntityModelCheckBoxEditor 
ui:field="hostCpuEditor" addStyleNames="{style.checkbox}"/>
                                                </g:VerticalPanel>
                                        </g:FlowPanel>
                                </t:content>
@@ -560,14 +574,23 @@
                                <t:content>
                                        <g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
-                                                       
<ge:EntityModelCheckBoxEditor ui:field="isHighlyAvailableEditor" 
addStyleNames="{style.checkbox}" />
+                                                       
<ge:EntityModelDetachableWidget 
ui:field="isHighlyAvailableEditorWithDetachable" 
addStyleNames="{style.checkbox}" />
                                                </g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
-                                                       <g:Label 
addStyleNames="{style.sectionLabel}" 
text="{constants.priorForRunMigrationQueueVmPopup}" />
-                                                       <e:EntityModelCellTable 
ui:field="priorityEditor" />
+                            <ge:DetachableLabel 
ui:field="priorityLabelWithDetachable" 
contentWidgetStyleName="{style.sectionLabel}">
+                                <ge:decorated>
+                                    <g:Label 
text="{constants.priorForRunMigrationQueueVmPopup}" />
+                                </ge:decorated>
+                            </ge:DetachableLabel>
+                                                       <e:EntityModelCellTable 
ui:field="priorityEditor" addStyleNames="{style.floatLeft}, {style.fullWidth}"/>
+
                                                </g:FlowPanel>
-                                               <g:FlowPanel 
addStyleNames="{style.sectionPanel}" ui:field="watchdogPanel">
-                                                       <g:Label 
addStyleNames="{style.sectionLabel}" text="{constants.watchdog}" />
+                                               <g:FlowPanel 
addStyleNames="{style.sectionPanel}, {style.floatLeft}" 
ui:field="watchdogPanel">
+                            <ge:DetachableLabel ui:field="watchdogLabel" 
contentWidgetStyleName="{style.sectionLabel}">
+                                <ge:decorated>
+                                    <g:Label text="{constants.watchdog}" />
+                                </ge:decorated>
+                            </ge:DetachableLabel>
                                                        
<e:ListModelListBoxEditor ui:field="watchdogModelEditor" />
                                                        
<e:ListModelListBoxEditor ui:field="watchdogActionEditor" />
                                                </g:FlowPanel>
@@ -580,8 +603,7 @@
                                <t:content>
                                        <g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanelTight}" ui:field="cpuAllocationPanel" >
-                            <g:Label addStyleNames="{style.sectionLabel}" 
text="{constants.cpuAllocVmPopup}"/>
-
+                            <g:Label text="{constants.cpuAllocVmPopup}" 
addStyleNames="{style.sectionLabel}" />
                                                        <g:FlowPanel 
addStyleNames="{style.labelToCouple}">
                                 <g:Label ui:field="cpuSharesEditor" 
text="{constants.cpuShares}" addStyleNames="{style.labelToCoupleLabel}"/>
                                 <g:FlowPanel 
addStyleNames="{style.labelToCoupleCouple}">
@@ -600,7 +622,12 @@
 
                                                </g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanelTight}">
-                                                       <g:Label 
addStyleNames="{style.sectionLabel}" text="{constants.memAllocVmPopup}" />
+                            <ge:DetachableLabel ui:field="memAllocationLabel" 
contentWidgetStyleName="{style.sectionLabel}">
+                                <ge:decorated>
+                                    <g:Label 
text="{constants.memAllocVmPopup}" />
+                                </ge:decorated>
+                            </ge:DetachableLabel>
+
                                                        
<ge:EntityModelTextBoxEditor ui:field="minAllocatedMemoryEditor" />
                                                        
<ge:EntityModelCheckBoxEditor addStyleNames="{style.checkbox}" 
ui:field="isMemoryBalloonDeviceEnabled"/>
                                                </g:FlowPanel>
@@ -616,10 +643,6 @@
                                                                        
<ge:EntityModelRadioButtonEditor ui:field="provisioningCloneEditor"/>
                                                                
</g:VerticalPanel>
                                                        </g:HorizontalPanel>
-                            <g:HorizontalPanel>
-                                <ge:EntityModelCheckBoxEditor 
ui:field="isVirtioScsiEnabled" addStyleNames="{style.checkbox}"/>
-                                <d:InfoIcon 
ui:field="isVirtioScsiEnabledInfoIcon" addStyleNames="{style.infoIcon}" 
visible="false"/>
-                            </g:HorizontalPanel>
                                                        <g:FlowPanel 
ui:field="disksAllocationPanel">
                                                            <g:Label 
ui:field="disksAllocationLabel" text="{constants.disksAllocation}"  
addStyleNames="{style.disksAllocation}" visible="false" />
                                                                
<g:VerticalPanel>
@@ -627,6 +650,10 @@
                                                                
</g:VerticalPanel>
                                                        </g:FlowPanel>
                                                </g:FlowPanel>
+                        <g:HorizontalPanel addStyleNames="{style.floatLeft}">
+                            <ge:EntityModelDetachableWidget 
ui:field="isVirtioScsiEnabledWithDetachable" addStyleNames="{style.checkbox}" />
+                            <d:InfoIcon ui:field="isVirtioScsiEnabledInfoIcon" 
addStyleNames="{style.infoIcon}" visible="false"/>
+                        </g:HorizontalPanel>
                                        </g:FlowPanel>
                                </t:content>
                        </t:DialogTab>
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolEditPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolEditPopupWidget.java
index d90ad5e..6feea3d 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolEditPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolEditPopupWidget.java
@@ -92,12 +92,17 @@
         
dataCenterWithClusterEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
vmTypeEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
quotaEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
+        
instanceTypesEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
descriptionEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
templateEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
memSizeEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
+        
detachableMemSizeEditor.addContentWrapperStypeName(style.generalTabExtendedRightWidgetWrapperWidth());
         
totalvCPUsEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
+        
totalvCPUsEditorWithInfoIcon.getContentWidget().addContentWrapperStypeName(style.generalTabExtendedRightWidgetWrapperWidth());
         
corePerSocketEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
+        
corePerSocketEditorWithDetachable.addContentWrapperStypeName(style.generalTabExtendedRightWidgetWrapperWidth());
         
numOfSocketsEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
+        
numOfSocketsEditorWithDetachable.addContentWrapperStypeName(style.generalTabExtendedRightWidgetWrapperWidth());
         
oSTypeEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
isStatelessEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
         
isRunAndPauseEditor.addContentWidgetStyleName(style.generalTabExtendedRightWidgetWidth());
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java
index 3422905..329c6fc 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java
@@ -90,7 +90,8 @@
                 putOne(editPoolEditVmsPanel, hiddenField()).
                 putOne(editPoolIncraseNumOfVmsPanel, hiddenField()).
                 putOne(logicalNetworksEditorPanel, hiddenField()).
-                putOne(editPoolEditMaxAssignedVmsPerUserPanel, hiddenField());
+                putOne(editPoolEditMaxAssignedVmsPerUserPanel, hiddenField()).
+                putAll(detachableWidgets(), 
simpleField().detachable().visibleInAdvancedModeOnly());
     }
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/template/TemplateNewPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/template/TemplateNewPopupWidget.java
index e268802..24da91e 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/template/TemplateNewPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/template/TemplateNewPopupWidget.java
@@ -36,6 +36,7 @@
                 putOne(logicalNetworksEditorPanel, hiddenField()).
                 putAll(poolSpecificFields(), hiddenField()).
                 putOne(templateEditor, hiddenField()).
+                putOne(instanceTypesEditor, hiddenField()).
                 update(resourceAllocationTab, hiddenField());
     }
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java
index f1744d4..cc854b5 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmPopupWidget.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.common.widget.uicommon.popup.vm;
 
 import static 
org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.hiddenField;
+import static 
org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfig.simpleField;
 
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationMessages;
@@ -46,6 +47,7 @@
     @Override
     protected PopupWidgetConfigMap createWidgetConfiguration() {
         return super.createWidgetConfiguration().
-                putAll(poolSpecificFields(), hiddenField());
+                putAll(poolSpecificFields(), hiddenField()).
+                putAll(detachableWidgets(), 
simpleField().detachable().visibleInAdvancedModeOnly());
     }
 }


-- 
To view, visit http://gerrit.ovirt.org/25576
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I990325e4ec554f0cdd84f6a2bb8772f1d71c705f
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