Tomas Jelinek has uploaded a new change for review.

Change subject: WIP detachable text box
......................................................................

WIP detachable text box

Do not review - only a backup of the work on detachable text boxes for instance
types

Change-Id: I5084baefb1cda3d6e9327f24bf0c8bf3b0b76962
Signed-off-by: Tomas Jelinek <tjeli...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.ui.xml
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBoxEditor.java
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/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/instancetypes/InstanceTypeListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewInstanceTypeModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
10 files changed, 267 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/22179/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 f520059..1458b98 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
@@ -463,6 +463,9 @@
     @DefaultStringValue("Based on Template")
     String basedOnTemplateVmPopup();
 
+    @DefaultStringValue("Instance Type")
+    String instanceType();
+
     @DefaultStringValue("Memory Size")
     String memSizeVmPopup();
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.java
new file mode 100644
index 0000000..59419b0
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.java
@@ -0,0 +1,89 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.InputElement;
+import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor;
+import com.google.gwt.event.dom.client.KeyDownHandler;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.event.dom.client.KeyUpHandler;
+import com.google.gwt.event.shared.HandlerRegistration;
+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.UIObject;
+import com.google.gwt.user.client.ui.Widget;
+import org.ovirt.engine.ui.common.widget.editor.EditorWidget;
+
+public class EntityModelDetachableTextBox<T, W extends UIObject & 
EditorWidget<T, ValueBoxEditor<T>>> extends Composite implements 
EditorWidget<T, ValueBoxEditor<T>> {
+
+    interface WidgetUiBinder extends UiBinder<Widget, 
EntityModelDetachableTextBox<?, ?>> {
+        WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
+    }
+
+    @UiField(provided = true)
+    InputElement inputBox;
+
+    private W decorated;
+
+    public EntityModelDetachableTextBox(W decorated) {
+        this.inputBox = InputElement.as(decorated.getElement());
+        this.decorated = decorated;
+
+        initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
+    }
+
+    public W getDecorated() {
+        return decorated;
+    }
+
+    @Override
+    public int getTabIndex() {
+        return decorated.getTabIndex();
+    }
+
+    @Override
+    public void setAccessKey(char key) {
+        decorated.setAccessKey(key);
+    }
+
+    @Override
+    public void setFocus(boolean focused) {
+        decorated.setFocus(focused);
+    }
+
+    @Override
+    public void setTabIndex(int index) {
+        decorated.setTabIndex(index);
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return decorated.isEnabled();
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        decorated.setEnabled(enabled);
+    }
+
+    @Override
+    public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
+        return decorated.addKeyDownHandler(handler);
+    }
+
+    @Override
+    public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
+        return decorated.addKeyPressHandler(handler);
+    }
+
+    @Override
+    public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
+        return decorated.addKeyUpHandler(handler);
+    }
+
+    @Override
+    public ValueBoxEditor<T> asEditor() {
+        return decorated.asEditor();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.ui.xml
new file mode 100644
index 0000000..fe1ad27
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBox.ui.xml
@@ -0,0 +1,18 @@
+<?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>
+         .contentPanel {
+             background-color: red;
+         }
+    </ui:style>
+
+    <g:HTMLPanel addStyleNames="{style.contentPanel}">
+            <input ui:field="inputBox"/>
+            <g:Label text="some text" />
+    </g:HTMLPanel>
+
+</ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBoxEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBoxEditor.java
new file mode 100644
index 0000000..e60a93f
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelDetachableTextBoxEditor.java
@@ -0,0 +1,30 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.editor.client.Editor;
+import com.google.gwt.editor.client.IsEditor;
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
+import com.google.gwt.user.client.ui.Widget;
+import org.ovirt.engine.ui.common.widget.AbstractValidatedWidgetWithLabel;
+import org.ovirt.engine.ui.common.widget.VisibilityRenderer;
+import org.ovirt.engine.ui.common.widget.editor.WidgetWithLabelEditor;
+
+public class EntityModelDetachableTextBoxEditor<T> extends 
AbstractValidatedWidgetWithLabel<T, EntityModelDetachableTextBox<T, 
EntityModelDetachableTextBox<T, EntityModelTextBox<T>>>>
+        implements IsEditor<WidgetWithLabelEditor<T, 
EntityModelDetachableTextBoxEditor<T>>>, Editor<T> {
+
+
+    public EntityModelDetachableTextBoxEditor(Renderer<T> renderer, Parser<T> 
parser, VisibilityRenderer visibilityRenderer) {
+        super(new EntityModelDetachableTextBox(new 
EntityModelTextBox<T>(renderer, parser)), visibilityRenderer);
+    }
+
+    @Override
+    public WidgetWithLabelEditor<T, EntityModelDetachableTextBoxEditor<T>> 
asEditor() {
+        return WidgetWithLabelEditor.of(getContentWidget().asEditor(), this);
+    }
+
+    @Override
+    protected void initWidget(Widget wrapperWidget) {
+        super.initWidget(wrapperWidget);
+
+    }
+}
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 8782425..f764316 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
@@ -32,6 +32,7 @@
 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;
@@ -57,6 +58,7 @@
 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.generic.EntityModelCheckBoxEditor;
+import 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelDetachableTextBoxEditor;
 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;
@@ -177,6 +179,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;
@@ -200,7 +207,7 @@
     @UiField(provided = true)
     @Path(value = "memSize.entity")
     @WithElementId("memSize")
-    public EntityModelTextBoxEditor<Integer> memSizeEditor;
+    public EntityModelDetachableTextBoxEditor<Integer> memSizeEditor;
 
     @UiField(provided = true)
     @Path(value = "totalCPUCores.entity")
@@ -624,7 +631,7 @@
 
         initListBoxEditors();
         // Contains a special parser/renderer
-        memSizeEditor = new EntityModelTextBoxEditor<Integer>(
+        memSizeEditor = new EntityModelDetachableTextBoxEditor<Integer>(
                 new MemorySizeRenderer<Integer>(constants), new 
MemorySizeParser(), new ModeSwitchingVisibilityRenderer());
         minAllocatedMemoryEditor = new EntityModelTextBoxEditor<Integer>(
                 new MemorySizeRenderer<Integer>(constants), new 
MemorySizeParser(), new ModeSwitchingVisibilityRenderer());
@@ -829,6 +836,25 @@
 
         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());
         corePerSocketEditor = new ListModelListBoxEditor<Integer>(new 
ModeSwitchingVisibilityRenderer());
 
@@ -960,6 +986,7 @@
         descriptionEditor.setLabel(constants.descriptionVmPopup());
         commentEditor.setLabel(constants.commentLabel());
         templateEditor.setLabel(constants.basedOnTemplateVmPopup());
+        instanceTypesEditor.setLabel(constants.instanceType());
 
         oSTypeEditor.setLabel(constants.osVmPopup());
         vmTypeEditor.setLabel(constants.optimizedFor());
@@ -1365,6 +1392,7 @@
         nextTabIndex = generalTab.setTabIndexes(nextTabIndex);
         quotaEditor.setTabIndex(nextTabIndex++);
         oSTypeEditor.setTabIndex(nextTabIndex++);
+        instanceTypesEditor.setTabIndexes(nextTabIndex++);
         templateEditor.setTabIndex(nextTabIndex++);
 
         nameEditor.setTabIndex(nextTabIndex++);
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 faf111f..28e41fa 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
@@ -310,16 +310,21 @@
                .migrationSelectorInner {
                        width: 260px;
                }
+
+        .headerCol {
+            float: left;
+        }
        </ui:style>
 
        <t:DialogTabPanel width="100%" height="100%" ui:field="mainTabPanel">
                <t:header>
                        <g:FlowPanel addStyleNames="{style.headerPanel}">
-                               <e:ListModelTypeAheadListBoxEditor 
ui:field="dataCenterWithClusterEditor" />
-                               <e:ListModelTypeAheadListBoxEditor 
ui:field="quotaEditor" />
-                               <e:ListModelTypeAheadListBoxEditor 
ui:field="templateEditor"/>
-                               <e:ListModelListBoxEditor 
ui:field="oSTypeEditor" />
-                               <e:ListModelListBoxEditor 
ui:field="vmTypeEditor" />
+                <e:ListModelTypeAheadListBoxEditor 
ui:field="dataCenterWithClusterEditor" />
+                <e:ListModelTypeAheadListBoxEditor ui:field="quotaEditor" />
+                <e:ListModelTypeAheadListBoxEditor ui:field="templateEditor"/>
+                <e:ListModelListBoxEditor ui:field="oSTypeEditor" />
+                <e:ListModelTypeAheadListBoxEditor 
ui:field="instanceTypesEditor" />
+                <e:ListModelListBoxEditor ui:field="vmTypeEditor" />
                        </g:FlowPanel>
                </t:header>
                <t:tab>
@@ -404,7 +409,7 @@
                        <t:DialogTab ui:field="systemTab">
                                <t:content>
                                        <g:FlowPanel>
-                            <ge:EntityModelTextBoxEditor 
ui:field="memSizeEditor"/>
+                            <ge:EntityModelDetachableTextBoxEditor 
ui:field="memSizeEditor"/>
                             <ge:EntityModelTextBoxEditor 
ui:field="totalvCPUsEditor" />
                                                        <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
                                                                
<d:AdvancedParametersExpander ui:field="vcpusAdvancedParameterExpander"/>
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/instancetypes/InstanceTypeListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/instancetypes/InstanceTypeListModel.java
index 8a3540d..acfea50 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/instancetypes/InstanceTypeListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/configure/instancetypes/InstanceTypeListModel.java
@@ -77,6 +77,8 @@
         VM vm = new VM();
         vm.setName(model.getName().getEntity());
         vm.setSingleQxlPci(false);
+        vm.setVdsGroupId(model.getSelectedCluster().getId());
+        vm.setStoragePoolId(model.getSelectedDataCenter().getId());
 
         AddVmTemplateParameters addInstanceTypeParameters =
                 new AddVmTemplateParameters(vm, model.getName().getEntity(), 
model.getDescription().getEntity());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewInstanceTypeModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewInstanceTypeModelBehavior.java
index 6b0231e..d6f0187 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewInstanceTypeModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewInstanceTypeModelBehavior.java
@@ -1,5 +1,13 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.ArrayList;
+import java.util.List;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
+import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 
 public class NewInstanceTypeModelBehavior extends 
VmModelBehaviorBase<UnitVmModel> {
@@ -7,6 +15,39 @@
     @Override
     public void initialize(SystemTreeItemModel systemTreeSelectedItem) {
         super.initialize(systemTreeSelectedItem);
+        AsyncDataProvider.getDataCenterByClusterServiceList(new 
AsyncQuery(getModel(),
+                new INewAsyncCallback() {
+                    @Override
+                    public void onSuccess(Object target, Object returnValue) {
+
+                        final ArrayList<StoragePool> dataCenters = new 
ArrayList<StoragePool>();
+                        for (StoragePool a : (ArrayList<StoragePool>) 
returnValue) {
+                            if (a.getStatus() == StoragePoolStatus.Up) {
+                                dataCenters.add(a);
+                            }
+                        }
+
+                        if (!dataCenters.isEmpty()) {
+                            AsyncDataProvider.getClusterListByService(
+                                    new AsyncQuery(getModel(), new 
INewAsyncCallback() {
+
+                                        @Override
+                                        public void onSuccess(Object target, 
Object returnValue) {
+                                            UnitVmModel model = (UnitVmModel) 
target;
+                                            
model.setDataCentersAndClusters(model,
+                                                    dataCenters,
+                                                    (List<VDSGroup>) 
returnValue, null);
+
+                                        }
+                                    }, getModel().getHash()),
+                                    true, false);
+                        } else {
+                            getModel().disableEditing();
+                        }
+                    }
+                }, getModel().getHash()),
+                true,
+                false);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
index 8cc0a3f..be9d309 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
+import org.ovirt.engine.core.common.businessentities.InstanceType;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
@@ -11,7 +12,9 @@
 import org.ovirt.engine.core.common.businessentities.VmType;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
+import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.SearchParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
@@ -71,6 +74,25 @@
                 false);
 
         initPriority(0);
+        initInstanceTypes();
+    }
+
+    private void initInstanceTypes() {
+        SearchParameters params = new SearchParameters("Instancetypes:", 
SearchType.InstanceType, true); //$NON-NLS-1$
+        AsyncQuery query = new AsyncQuery();
+        query.setModel(this);
+        query.asyncCallback = new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                if (returnValue != null) {
+                    VdcQueryReturnValue res = (VdcQueryReturnValue) 
returnValue;
+                    
getModel().getInstanceTypes().setItems((Iterable<InstanceType>) 
res.getReturnValue());
+                }
+            }
+        };
+
+        Frontend.RunQuery(VdcQueryType.Search, params, query);
+
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index 0809ccf..ebad3f5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -9,6 +9,7 @@
 
 import org.ovirt.engine.core.common.businessentities.BootSequence;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
+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.QuotaEnforcementTypeEnum;
@@ -431,6 +432,16 @@
     private void setTemplate(NotChangableForVmInPoolListModel<VmTemplate> 
value)
     {
         privateTemplate = value;
+    }
+
+    private NotChangableForVmInPoolListModel<InstanceType> instanceTypes;
+
+    public void 
setInstanceTypes(NotChangableForVmInPoolListModel<InstanceType> instanceTypes) {
+        this.instanceTypes = instanceTypes;
+    }
+
+    public ListModel<InstanceType> getInstanceTypes() {
+        return instanceTypes;
     }
 
     private NotChangableForVmInPoolListModel<VmType> vmType;
@@ -1220,6 +1231,9 @@
         setTemplate(new NotChangableForVmInPoolListModel<VmTemplate>());
         getTemplate().getSelectedItemChangedEvent().addListener(this);
 
+        setInstanceTypes(new NotChangableForVmInPoolListModel<InstanceType>());
+        getInstanceTypes().getSelectedItemChangedEvent().addListener(this);
+
         setQuota(new NotChangableForVmInPoolListModel<Quota>());
         getQuota().setIsAvailable(false);
 
@@ -1412,8 +1426,9 @@
             else if (sender == getTemplate())
             {
                 template_SelectedItemChanged(sender, args);
-            }
-            else if (sender == getTimeZone())
+            } else if (sender == getInstanceTypes()) {
+                instanceTypeSelectedItemChanged();
+            } else if (sender == getTimeZone())
             {
                 timeZone_SelectedItemChanged(sender, args);
             }
@@ -1493,6 +1508,10 @@
         }
     }
 
+    private void instanceTypeSelectedItemChanged() {
+        // TODO
+    }
+
     private void vmTypeChanged() {
         behavior.vmTypeChanged(getVmType().getSelectedItem());
     }


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

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

Reply via email to