Tomas Jelinek has uploaded a new change for review.

Change subject: webadmin: WIP: already merged fix of the fix of the broken 
layout
......................................................................

webadmin: WIP: already merged fix of the fix of the broken layout

Change-Id: If2d5ce42ebec9e6e0be384dd2b4fb84d7abe34be
Signed-off-by: Tomas Jelinek <[email protected]>
---
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelDetachableWidgetWithInfo.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.ui.xml
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/BaseEntityModelDetachableWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.ui.xml
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.ui.xml
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/vm/VmPopupWidget.java
11 files changed, 292 insertions(+), 102 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/24956/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelDetachableWidgetWithInfo.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelDetachableWidgetWithInfo.java
new file mode 100644
index 0000000..41166cd
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelDetachableWidgetWithInfo.java
@@ -0,0 +1,34 @@
+package org.ovirt.engine.ui.common.widget;
+
+import com.google.gwt.user.client.ui.HasEnabled;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelLabel;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableWidget;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableWidgetWithLabel;
+
+public class EntityModelDetachableWidgetWithInfo extends 
EntityModelWidgetWithInfo implements HasDetachable, HasEnabled {
+
+    public EntityModelDetachableWidgetWithInfo(EntityModelLabel label, 
AbstractValidatedWidgetWithLabel contentWidget) {
+        super(label, new EntityModelDetachableWidget(contentWidget));
+    }
+
+    @Override
+    public void setDetachableIconVisible(boolean visible) {
+        ((HasDetachable) contentWidget).setDetachableIconVisible(visible);
+    }
+
+    @Override
+    public void setAttached(boolean attached) {
+        ((HasDetachable) contentWidget).setAttached(attached);
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        ((HasEnabled) contentWidget).setEnabled(enabled);
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return ((HasEnabled) contentWidget).isEnabled();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.java
index cdd5b93..bff9dbe 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.java
@@ -28,10 +28,10 @@
     InfoIcon infoIcon;
 
     @UiField(provided = true)
-    AbstractValidatedWidget contentWidget;
+    Composite contentWidget;
 
     @Inject
-    public EntityModelWidgetWithInfo(EntityModelLabel label, 
AbstractValidatedWidget contentWidget) {
+    public EntityModelWidgetWithInfo(EntityModelLabel label, Composite 
contentWidget) {
 
         this.label = label;
         this.contentWidget = contentWidget;
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.ui.xml
index 7bb4ab1..6279106 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.ui.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/EntityModelWidgetWithInfo.ui.xml
@@ -18,7 +18,7 @@
                        </g:HorizontalPanel>
                </g:cell>
                <g:cell width="230px">
-                       <w:AbstractValidatedWidget ui:field="contentWidget" />
+                       <g:Composite ui:field="contentWidget" />
                </g:cell>
        </g:HorizontalPanel>
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/BaseEntityModelDetachableWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/BaseEntityModelDetachableWidget.java
new file mode 100644
index 0000000..cf9cf13
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/BaseEntityModelDetachableWidget.java
@@ -0,0 +1,70 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Display;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HasEnabled;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.UIObject;
+import com.google.gwt.user.client.ui.Widget;
+import org.ovirt.engine.ui.common.CommonApplicationResources;
+import org.ovirt.engine.ui.common.widget.AbstractValidatedWidget;
+import org.ovirt.engine.ui.common.widget.HasDetachable;
+
+public abstract class BaseEntityModelDetachableWidget extends Composite 
implements HasDetachable {
+
+    private static final CommonApplicationResources resource = 
GWT.create(CommonApplicationResources.class);
+
+    private Image attachedSeparatedImage;
+
+    interface BaseStyle extends CssResource {
+        String contentWidgetWithDetachable();
+
+        String contentWidgetWithoutDetachable();
+    }
+
+    private BaseStyle style;
+
+    private UIObject decoratedWidget;
+
+    // can not be as a constructor because needs to be called after the 
widgets get bind properly in children
+    protected void initialize(UIObject decoratedWidget, Image 
attachedSeparatedImage, BaseStyle style) {
+        this.decoratedWidget = decoratedWidget;
+        this.attachedSeparatedImage = attachedSeparatedImage;
+        this.style = style;
+
+        setAttached(true);
+
+        // by default it is a regular widget - needs to be made detachable 
explicitly
+        setDetachableIconVisible(false);
+    }
+
+    @Override
+    public void setDetachableIconVisible(boolean visible) {
+        if (visible) {
+            
attachedSeparatedImage.getElement().getStyle().setDisplay(Display.INLINE);
+        } else {
+            
attachedSeparatedImage.getElement().getStyle().setDisplay(Display.NONE);
+        }
+
+        changeWidgetStyle(decoratedWidget, visible);
+    }
+
+    protected void changeWidgetStyle(UIObject widget, boolean 
detachableIconVisible) {
+        if (detachableIconVisible) {
+            widget.removeStyleName(style.contentWidgetWithoutDetachable());
+            widget.setStyleName(style.contentWidgetWithDetachable());
+        } else {
+            widget.removeStyleName(style.contentWidgetWithDetachable());
+            widget.setStyleName(style.contentWidgetWithoutDetachable());
+        }
+    }
+
+    @Override
+    public void setAttached(boolean attached) {
+        attachedSeparatedImage.setResource(attached ? resource.joinedIcon() : 
resource.separatedIcon());
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.java
index 1efd63a..f6ca691 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.java
@@ -1,39 +1,26 @@
 package org.ovirt.engine.ui.common.widget.editor.generic;
 
 import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.LabelElement;
-import com.google.gwt.dom.client.Style.Display;
-import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.dom.client.Style.Float;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.HasEnabled;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.Widget;
-import org.ovirt.engine.ui.common.CommonApplicationResources;
 import org.ovirt.engine.ui.common.widget.AbstractValidatedWidgetWithLabel;
-import org.ovirt.engine.ui.common.widget.HasDetachable;
-import org.ovirt.engine.ui.common.widget.HasLabel;
 
-public class EntityModelDetachableWidget extends Composite implements 
HasLabel, HasDetachable, HasEnabled {
+/**
+ * Takes a AbstractValidatedWidgetWithLabel, decorates it with the detachable 
icon but does not render it's label
+ */
+public class EntityModelDetachableWidget extends 
BaseEntityModelDetachableWidget implements HasEnabled {
 
     interface WidgetUiBinder extends UiBinder<Widget, 
EntityModelDetachableWidget> {
         WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
     }
 
-    interface Style extends CssResource {
-        String contentWidget();
-
-        String labelEnabled();
-
-        String labelDisabled();
+    interface Style extends BaseStyle {
     }
-
-    private static final CommonApplicationResources resource = 
GWT.create(CommonApplicationResources.class);
-
-    @UiField
-    LabelElement label;
 
     @UiField
     Image attachedSeparatedImage;
@@ -41,47 +28,19 @@
     @UiField(provided = true)
     SimplePanel contentWidgetContainer;
 
+    private AbstractValidatedWidgetWithLabel decorated;
+
     @UiField
     Style style;
 
-    private AbstractValidatedWidgetWithLabel decorated;
-
     public EntityModelDetachableWidget(AbstractValidatedWidgetWithLabel 
decorated) {
         this.decorated = decorated;
-        contentWidgetContainer = decorated.getContentWidgetContainer();
+        this.contentWidgetContainer = decorated.getContentWidgetContainer();
+        contentWidgetContainer.getElement().getStyle().setFloat(Float.RIGHT);
 
         initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
 
-        setAttached(true);
-
-        // by default it is a regular widget - needs to be made detachable 
explicitly
-        setDetachableIconVisible(false);
-    }
-
-    @Override
-    public void setDetachableIconVisible(boolean visible) {
-        if (visible) {
-            
attachedSeparatedImage.getElement().getStyle().setDisplay(Display.INLINE);
-            contentWidgetContainer.setStyleName(style.contentWidget());
-        } else {
-            contentWidgetContainer.removeStyleName(style.contentWidget());
-            
attachedSeparatedImage.getElement().getStyle().setDisplay(Display.NONE);
-        }
-    }
-
-    @Override
-    public void setAttached(boolean attached) {
-        attachedSeparatedImage.setResource(attached ? resource.joinedIcon() : 
resource.separatedIcon());
-    }
-
-    @Override
-    public String getLabel() {
-        return label.getInnerText();
-    }
-
-    @Override
-    public void setLabel(String label) {
-        this.label.setInnerText(label);
+        initialize(contentWidgetContainer, attachedSeparatedImage, style);
     }
 
     @Override
@@ -92,11 +51,5 @@
     @Override
     public void setEnabled(boolean enabled) {
         decorated.setEnabled(enabled);
-
-        if (enabled) {
-            label.replaceClassName(style.labelDisabled(), 
style.labelEnabled());
-        } else {
-            label.replaceClassName(style.labelEnabled(), 
style.labelDisabled());
-        }
     }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.ui.xml
index 4fe6b44..f34fce2 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.ui.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidget.ui.xml
@@ -1,6 +1,7 @@
 <?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">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui"
+             xmlns:w="urn:import:org.ovirt.engine.ui.common.widget">
 
     <ui:with field='resources' 
type='org.ovirt.engine.ui.common.CommonApplicationResources' />
 
@@ -19,31 +20,21 @@
             padding: 0 5px;
         }
 
-        .contentWidget {
+        .contentWidgetWithoutDetachable, .contentWidgetWithDetachable {
             float: right;
+        }
+        .contentWidgetWithoutDetachable {
             padding: 0 5px;
+            width: 230px;
         }
 
-        .label {
-            font-size: 13px;
-            padding: 0 5px;
-            font-family: Verdana,sans-serif;
-            line-height: 30px;
+        .contentWidgetWithDetachable {
+            padding: 0 0px;
         }
 
-        .labelEnabled {
-            color: #333333;
-        }
-
-        .labelDisabled {
-            color: gray;
-        }
     </ui:style>
 
     <g:HTMLPanel ui:field="wrapperPanel" addStyleNames="{style.wrapper}">
-
-        <label ui:field="label" class="{style.label} {style.labelEnabled}" />
-
         <g:FlowPanel addStyleNames="{style.contentWrapper}">
             <g:Image ui:field="attachedSeparatedImage" 
addStyleNames="{style.image}" />
             <g:SimplePanel ui:field="contentWidgetContainer"  />
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.java
new file mode 100644
index 0000000..abb1047
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.java
@@ -0,0 +1,80 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.LabelElement;
+import com.google.gwt.dom.client.Style.Display;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HasEnabled;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.Widget;
+import org.ovirt.engine.ui.common.CommonApplicationResources;
+import org.ovirt.engine.ui.common.widget.AbstractValidatedWidgetWithLabel;
+import org.ovirt.engine.ui.common.widget.HasDetachable;
+import org.ovirt.engine.ui.common.widget.HasLabel;
+
+public class EntityModelDetachableWidgetWithLabel extends 
BaseEntityModelDetachableWidget implements HasLabel, HasEnabled {
+
+    interface WidgetUiBinder extends UiBinder<Widget, 
EntityModelDetachableWidgetWithLabel> {
+        WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
+    }
+
+    interface Style extends BaseStyle {
+
+        String labelEnabled();
+
+        String labelDisabled();
+    }
+
+    @UiField
+    LabelElement label;
+
+    @UiField(provided = true)
+    SimplePanel contentWidgetContainer;
+
+    @UiField
+    Image attachedSeparatedImage;
+
+    @UiField
+    Style style;
+
+    private AbstractValidatedWidgetWithLabel decorated;
+
+    public 
EntityModelDetachableWidgetWithLabel(AbstractValidatedWidgetWithLabel 
decorated) {
+        this.decorated = decorated;
+        contentWidgetContainer = decorated.getContentWidgetContainer();
+
+        initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
+
+        initialize(contentWidgetContainer, attachedSeparatedImage, style);
+    }
+
+    @Override
+    public String getLabel() {
+        return label.getInnerText();
+    }
+
+    @Override
+    public void setLabel(String label) {
+        this.label.setInnerText(label);
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return decorated.isEnabled();
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        decorated.setEnabled(enabled);
+
+        if (enabled) {
+            label.replaceClassName(style.labelDisabled(), 
style.labelEnabled());
+        } else {
+            label.replaceClassName(style.labelEnabled(), 
style.labelDisabled());
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.ui.xml
new file mode 100644
index 0000000..2189af8
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableWidgetWithLabel.ui.xml
@@ -0,0 +1,60 @@
+<?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">
+
+    <ui:with field='resources' 
type='org.ovirt.engine.ui.common.CommonApplicationResources' />
+
+    <ui:style 
type="org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableWidgetWithLabel.Style">
+        .image {
+            vertical-align: -4px;
+        }
+
+        .wrapper {
+            text-align: left;
+        }
+
+        .contentWrapper {
+            float: right;
+            width: 230px;
+            padding: 0 5px;
+        }
+
+        .contentWidgetWithoutDetachable, .contentWidgetWithDetachable {
+            float: right;
+        }
+        .contentWidgetWithoutDetachable {
+            padding: 0 5px;
+            width: 230px;
+        }
+
+        .contentWidgetWithDetachable {
+            padding: 0 0px;
+        }
+
+        .label {
+            font-size: 13px;
+            padding: 0 5px;
+            font-family: Verdana,sans-serif;
+            line-height: 30px;
+        }
+
+        .labelEnabled {
+            color: #333333;
+        }
+
+        .labelDisabled {
+            color: gray;
+        }
+    </ui:style>
+
+    <g:HTMLPanel ui:field="wrapperPanel" addStyleNames="{style.wrapper}">
+
+        <label ui:field="label" class="{style.label} {style.labelEnabled}" />
+
+        <g:FlowPanel addStyleNames="{style.contentWrapper}">
+            <g:Image ui:field="attachedSeparatedImage" 
addStyleNames="{style.image}" />
+            <g:SimplePanel ui:field="contentWidgetContainer"  />
+        </g:FlowPanel>
+    </g:HTMLPanel>
+
+</ui:UiBinder>
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 59aaa23..f0e5adb 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
@@ -29,6 +29,7 @@
 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;
@@ -44,6 +45,7 @@
 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;
@@ -221,19 +223,19 @@
     protected DialogTab systemTab;
 
     @UiField(provided = true)
-    public EntityModelDetachableWidget detachableMemSizeEditor;
+    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
@@ -761,6 +763,7 @@
         initPoolSpecificWidgets(resources, messages);
         initTextBoxEditors();
         initSpiceProxy();
+        initTotalVcpus();
 
         initDetachableFields();
 
@@ -791,7 +794,7 @@
     }
 
     private void initDetachableFields() {
-        detachableMemSizeEditor = new 
EntityModelDetachableWidget(memSizeEditor);
+        detachableMemSizeEditor = new 
EntityModelDetachableWidgetWithLabel(memSizeEditor);
     }
 
     protected void initialize() {
@@ -805,6 +808,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));
     }
@@ -812,7 +823,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());
@@ -857,7 +867,6 @@
 
         });
 
-        totalVCpuInfoIcon = new 
InfoIcon(applicationTemplates.italicText(messages.hotPlugUnplugCpuWarning()), 
resources);
     }
 
     /**
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 a6a1de1..8258f2f 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
@@ -337,10 +337,6 @@
             padding-left: 5px;
         }
 
-        .totalvcpusTextBox {
-            float: right;
-        }
-
         .cpuSahresValueTextBox {
             padding-left: 5px;
         }
@@ -448,21 +444,17 @@
                        <t:DialogTab ui:field="systemTab">
                                <t:content>
                                        <g:FlowPanel>
-                         <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>
-                            <ge:EntityModelDetachableWidget 
ui:field="detachableMemSizeEditor"/>
-                                                       <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}">
+                                                               
<e:ListModelListBoxEditor ui:field="corePerSocketEditor" />
+                                                               
<e:ListModelListBoxEditor ui:field="numOfSocketsEditor" />
                                                        </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>
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 cf69d61..50d6585 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
@@ -48,6 +48,7 @@
     protected PopupWidgetConfigMap createWidgetConfiguration() {
         return super.createWidgetConfiguration().
                 putAll(poolSpecificFields(), hiddenField()).
+                putOne(totalvCPUsEditorWithInfoIcon, 
simpleField().detachable().visibleInAdvancedModeOnly()).
                 putOne(detachableMemSizeEditor, 
simpleField().detachable().visibleInAdvancedModeOnly());
     }
 }


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

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